05 Linux系统下的用户以及用户权限管理(权限管理介绍、用户管理、常见命令介绍)

这一节我们介绍Linux的用户以及权限管理的前半段,包括:1、权限管理介绍; 2、用户管理; 3、常见命令
权限管理介绍
权限管理:
为了访问计算机资源,我们需要对其进行授权才能访问,根据什么东西来进行授权呢?这样就有了用户的概念;一般情况下我们都是基于用户来进行计算机资源的授权,而为了更好的管理这些用户,具有同一属性的用户我们归为同一组,这就是用户组;对于一个文件而言,它有自己的属主(也就是某一个用户),也有它自己的属组(也就是该用户所在的用户组),也有即不是他的属主也不是属组的其他用户的权限,这段权限我们统称为其他用户;
属主、属组和其他用户就是我们Linux系统下文件的三个权限段;
而用户与用户组的概念则是为了方便人类识别而取名的,对于计算机而言,则是查看用户与用户组对应的UID以及GID来识别用户与用户组;
安全上下文关系(secure context):
进程启动是依托于用户的!!!每个进程启动是要借助于这个用户,而这个用户启动的这个进程的权限也来源于这个用户的权限!!!;
而对应进程调用的文件而言,文件又有它自己本身的权限,这个权限;
整个任务是否能完成,就取决于两点:(对上)启动该进程用户的权限,(对下)程序调用的文件的权限。而这两点就是我们所说的安全上下文关系(secure context);
权限:
到底什么是权限呢?常见的权限有rwx,读写执行(还有一些特殊权限位在之后介绍);
rwx对于文件而言:可读,代表可以使用类似于cat等命令查看文件内容;可写,代表可以通过vi或者echo编辑以及rm删除此文件;可执行,exacutable,表示可以将该文件当做命令提交给kernel执行;
rwx对于目录而言:可读,代表可以对此目录执行ls来列出内部的所有文件;可写,代表可以在此目录下创建子目录;可执行,表示可以使用cd来切换进此目录,也可以使用ls -l查看文件内部子目录以及子文件的详细信息;

文件权限分为三段:在介绍ls命令的时候我们提到过,如上图:查看a这个目录的权限--rwx代表属主,中间r-x代表属组,最后r-x代表其他用户;
其中,这些权限位可以通过8进制表示显示显示出来:
| 000 | 0 | --- | 无权限 |
| 001 | 1 | --x | 仅能执行 |
| 010 | 2 | -w- | 仅能写 |
| 011 | 3 | -wx | 可写可执行 |
| 100 | 4 | r-- | 仅能读 |
| 101 | 5 | r-x | 读执行权限 |
| 110 | 6 | rw- | 读写权限 |
| 111 | 7 | rwx | 读写执行权限 |
上图中a的权限则为:对于属主有读写执行权限,对于属组有读和执行权限,对于其他用户也是读和执行权限;
用户管理
用户
用户分为两类:管理员与普通用户,管理员则是root用户,而普通用户又分为系统用户和一般用户,root这里我们不用过多介绍,只需要知道root的UID为0不能修改,它具有最大的权限即可,我们重点介绍普通用户;
1、系统用户:系统用户的UID一般为1-499(linux6到了7版本为1-999),这些用户时系统后台进程运行的时候所需要的用户,这类用户不用来登录系统,所以我们看到的shell程序定义为了/bin/nologin;
2、一般用户:这类用户的UID一般为500-60000,这类用户就是用来做系统管理,做计算机资源的分配;
用户组
用户一般属于用户组!而每一个用户都会属于一个组或者多个组,而这些组对于用户而言,则分为基本组和额外组(额外组也叫做附加组),一般创建用户的时候,如果没有指定组,则会自动为这个用户创建一个同名的组,我们叫这个组为私有组;
常见文件
/etc/passwd、/etc/group、/etc/shadow、/etc/gshadow
/etc/passwd:用来存放用户的相关信息;:为分割符(cut -d指定分割符)

第一列:用户名
第二列:密码,而这里用x代替,这里叫做填充符,真正的密码存放于/etc/shadow文件中
第三列:UID,用户ID号(0为root用户,1-499为系统用户,500-60000为一般用户)
第四列:GID,组ID号
第五列:描述,如果一个用户又多个描述内容,用 “,”隔开
第六列:用户的家目录
第七列:用户使用的shell程序,一般为/bin/bash,如果是/sbin/nologin,则这个用户时不能登录的
/etc/shadow:“影子文件”,用来存放密码相关内容,重点为密码本身以及密码的过期时间的定义,它同样是以“:”作为分割符;同时,通过man shadow文件可以查看相关文档说明;

第一列:用户名
第二列:密码,密码列又以$符号做为分割,分为几个内容(以hive用户为例)
这里的6代表md5的hash方式
/toyUKZI 则为随机产生的“盐”,用来使相同的密码在做hash后能得到不同的128位字符;
最后一段乱码为“密码+盐”进行md5 hash后的结果存放在这里;
md5sum 文件名 #生成一段MD5的hash码
(从第三列开始则是对密码一系列的时间定义)
第三列:(date of last password change)从系统元年(1970-01-01)到最近一次修改密码的时间;
第四列:(minimum password age)密码的最短使用期限,让你的密码先用两天才能去改;
第五列:(maximum password age)密码使用的最长期限,这个密码用了多少天以后必须修改;
第六列:(password warning period)密码过期警告时间,还有多少天密码就要过期了,警告用户需要修改密码了;
第七列:(password inactivity period)在密码过期以后,还宽限几天,而这几天以登录就必须修改密码,无法做其他的操作;
第八列:(account expiration date)从1970-01-01开始算起,到达目标时间以后就直接过期,不能再使用;
其中99999表示永不过期;
【reserved field,在文件的最后还有一列保留位】

/etc/group:组文件,里面存放了Linux系统下组信息;包括组名、组密码(占位符)、GID、和存放在这个组中的用户(如果对于用户而言,这个组时它的私有组,则不会显示在这里,只有是附加组的时候才会显示);

/etc/gshadow:组密码文件,在用户需要临时组权限的时候,这时,我们就需要切换组(newgrp 组名),这时就需要为组设置密码;

常见命令
用户管理:useradd、userdel、usermod、passwd、chsh、chfn、finger、id、chage
组管理:groupadd、groupdel、groupmod、gpasswd
权限管理:chown、chgrp、chmod、umask
05 Linux系统下的用户以及用户权限管理(权限管理介绍、用户管理、常见命令介绍)的更多相关文章
- ***Linux系统下如何查看及修改文件读写权限
查看文件权限的语句: 在终端输入:ls -l xxx.xxx (xxx.xxx是文件名) 那么就会出现相类似的信息,主要都是这些:-rw-rw-r-- 一共有10位数 其中: 最前面那个 - 代表的是 ...
- [转]Linux系统下如何查看及修改文件读写权限
转自 :http://www.cnblogs.com/CgenJ/archive/2011/07/28/2119454.html 查看文件权限的语句: 在终端输入:ls -l xxx.xxx (xxx ...
- linux系统下mysql跳过密码验证登录和创建新用户
修改MySQL的登录设置: # vi /etc/my.cnf 在[mysqld]的段中加上一句:skip-grant-tables 例如: [mysqld] datadir=/var/lib/mysq ...
- 编译Linux系统下的jrtplib3.9和jthread1.3(arm和ubuntu)
最近由于学习需要,需要编译jrtplib,网上的资料基本上都是关于3.9以前的版本,而以前的版本基本上都是通过confiugre来配置生成Makefile,而最近的版本却没有这一项,而是使用cmake ...
- 在Linux系统下制作系统启动盘(Ubuntu Linux)
在Linux系统下制作系统启动盘有两种方法: 1.用dd命令 2.用Linux自带的图形界面工具 Startup Disk Creator 本教程使用第2种方式,用Linux自带的图形界面工具制作系统 ...
- Linux系统下给非root用户添加sudo权限
Linux系统下给非root用户添加sudo权限 有时,在linux系统中非root用户运行sudo命令,会提示类似信息: xxx is not in the sudoers file. This ...
- Linux系统下用户与组的管理
Linux系统下用户与组的管理 一.用户及组基本概述 Linux 系统上,用户管理是基于用户名和密码的方式进行资源的分配. 1.uid(用户身份标识) (1)root用户 uid为0 (2)普通用户: ...
- linux系统下的用户文件句柄数限制
linux系统下的用户文件句柄数限制 文章来源:企鹅号 为什么要修改用户打开的文件数 系统默认单个进程可以打开1024个文件,对于一些应用如tomcat.oracle等,运行时经常open成千上万个文 ...
- 【转】Linux系统下的ssh使用
Linux系统下的ssh使用(依据个人经验总结) 对于linux运维工作者而言,使用ssh远程远程服务器是再熟悉不过的了!对于ssh的一些严格设置也关系到服务器的安全维护,今天在此,就本人工作中使 ...
随机推荐
- [转]Proxy代理详解
一.代理的概念 动态代理技术是整个java技术中最重要的一个技术,它是学习java框架的基础,不会动态代理技术,那么在学习Spring这些框架时是学不明白的. 动态代理技术就是用来产生一个对象的代理对 ...
- 怎么检测浏览器有没有flash播放器
虽然现在大多浏览器都支持了HTML5的新特性,可以直接在网页上播放视频,通过<video>标签即可,但是大多数的浏览器对H5支持还是不够完整,或者很多用户还没有把浏览器升级到最新的版本,尤 ...
- 阿里云 qW3xT.4 挖矿病毒问题
查了一下.是个挖矿病毒,cpu 占用巨高 .杀了又有守护进程启动.网上有些杀死这个病毒的办法,大家可以试试.但是不确定能杀死. 建议直接重装系统. 然后,说说这货怎么传播的. 他通过redis .目前 ...
- Python Scrapy环境搭建(一)
本来是以学习的目的添加了几个QQ群,但是发现群内有着很多的小白都在咨询如何搭建环境的问题,所以我这里把自己搭建的方法分享下 1.首先我们需要查看下自己安装的python的版本; 最简单的版本就是在命令 ...
- C语言 二维数组(指针)动态分配和释放(转)
C 二维数组(指针)动态分配和释放 先明确下概念: 所谓32位处理器就是一次只能处理32位,也就是4个字节的数据,而64位处理器一次就能处理64位,即8个字节的数据.如果我们将总长128位的指令分别按 ...
- dojo:如何为表格添加从数据库获得存储的下拉框
为表格添加下拉框的例子官网上就有,但如果下拉框的数据是从数据库请求的.需要有一些注意的地方. 首先希望实现的效果如下图所示: 表格初始数据为空,点击查询后获得表格表格数据,但下拉框的数据是在对应的fo ...
- MySQL体系架构
MySQL体系架构 学习一门数据库系统首先得了解它的架构,明白它的架构原理对于后期的分析问题和性能调优都有很大的帮助,接下来就通过分析架构图来认识它. 数据库:物理操作系统文件或者其它文件的集合,在m ...
- Linux tee命令详解
Linux tee命令 Linux tee命令用于读取标准输入的数据,并将其内容输出成文件.如果文件指定为"-",则将输入内容复制到标准输出 tee指令会从标准输入设备读取数据,将 ...
- Linux patch命令详解
Linux patch命令 Linux patch命令用于修补文件. patch指令让用户利用设置修补文件的方式,修改,更新原始文件.倘若一次仅修改一个文件,可直接在指令列中下达指令依序执行.如果配合 ...
- RTB业务知识之1-原生广告
一.背景 Native Advertising (Native Ads), 又称为原生广告, 是2013全球媒体界爆红的关键词,从2012年年底,就有人开始提了这个名词,接着到处都可以看到这个名词,再 ...