用户、组和权限管理
一、用户
1、用户类型:
在Linux中,用户类型可分为管理员root和普通用户,普通用户又可分为系统用户和登录用户。
- 管理员root
- 普通用户
- 系统用户
- 登录用户
2、用户标识:UID
Linux采用2字节的二进制数作为用户的UID,可标识范围从0~65535。管理员root的UID为0。普通用户的UID范围为1~65535。
其中,在CentOS 6中,系统用户的UID范围为1~499,登录用户的UID范围为500~60000。而在CentOS 7中,系统用户的UID范围为1~999,登录用户UID范围为1000~60000。
3、用户相关配置文件:/etc/passwd、/etc/shadow
/etc/passwd:用户信息库
/etc/passwd 文件存储着用户的基本信息,存储格式为:①name : ②passwd : ③UID : ④GID : ⑤GECOS : ⑥home_directory : ⑦shell
其中各字段代表的含义分别是:
① name:用户名
② passwd:用户密码,此处用x代替,真正的密码经加密后已存放于/etc/shadow文件中
③ UID:用户的用户标识
④ GID:用户的基本组标识
⑤ GECOS:注释信息
⑥ home_directory:用户的家目录
⑦ shell:用户的默认shell/etc/shadow:用户密码文件
文件中存储着用户密码的相关信息,格式如下:①登录名:②加了密的密码:③最近一次修改密码的时间:④密码最短使用期限:⑤密码最长使用期限:⑥警告期限:⑦过期期限:⑧账号失效日期:⑨保留字段
①登录名:
②加了密的密码:
③最近一次修改密码的时间:相对于1970年1月1日算起的天数
④密码最短使用期限:与第三字段相比
⑤密码最长使用期限:与第三字段相比
⑥警告期限:与第5字段相比
⑦过期期限:与第5字段相比
⑧账号失效日期:相对于1970年1月1日算起的天数
⑨保留字段
二、用户组
1、组类别:
- 分类一:
- 管理员组
- 普通用户组
- 系统用户组
- 登录用户组
- 分类二:
- 用户的基本组:每个用户又一个基本组,为/etc/passwd文件中指定的GID那个组。
- 用户的附加组:一个用户可属于多个组,除基本组外的,都是该用户的附加组
- 分类三:
- 私有组:组名同用户名相同,且只包含一个用户
- 公共组:组内包含多个用户
2、组标识:GID
组标识GID与用户标识UID相同,采用2字节的二进制数表示,可标识范围从0~65535。管理员组的GID为0。普通用户组GID范围为1~65535。
其中,在CentOS 6中,系统用户组的GID范围为1~499,登录用户的GID范围为500~60000。而在CentOS 7中,系统用户组的GID范围为1~999,登录用户组GID范围为1000~60000。
3、用户相关配置文件:/etc/group、/etc/gshadow
/etc/group:组的信息库
文件内容格式:①group_name : ②password : ③GID : ④user_list
其中各字段代表的含义分别是:
①group_name:用户组名
②password:组密码,一般用x代替,真正的密码加密后存放在/etc/gshadow文件中
③GID:组标识
④user_list:组成员列表/etc/gshadow:组密码文件
①组名:②加密了的密码:③组管理员:④组成员
这个配置文件使用得少,后三个字段常为空
三、认证与加密
1、密码的使用策略(四点):
- 使用随机密码
- 最短长度不要低于8位
- 应该使用大写字母、小写字母、数字和标点符号四类字符中至少三类
- 定期更换密码
2、加密方式
常见的加密方式有单对称加密,非对称加密和单向加密,Linux使用的是单向加密。单向加密有定长输出和雪崩效应的特点。不同长度的密码加密后得到的字符串是等长度的,且密码一个字符的变化,也会使得到的字符串千差万别。算法在加密时,通过通过添加随机数,使得即便相同的密码经过加密后得到的字符串也不相同。常见的单向加密算法有:md5、sha、sha224、sha256、sha384、sha512。(注:md:message digest,sha:secure hash algorithm)
3、登录时密码的认证过程
四、用户、组管理命令:
- useradd命令:创建新用户 。
- usermod:修改用户属性 。
- userdel:删除用户。
- groupadd:添加组。
- groupmod:修改组属性。
- groupdel:删除组。
- passwd:修改用户密码;root可以通过此命令修改所有人的密码,普通用户只能修改自己的密码。
- gpasswd:修改组密码。
- newgrp:临时切换基本组。
- chage:更爱用户密码过期信息。
- id:显示用户正在的有效ID。
- su:切换用户。
- chsh:修改登录默认shell。
- finger:显示登录中的熊使用者信息。
- chfn:改变finger命令系那是的信息,信息存储在/et/passwd文件注释字段。
- whoami:打印当前有效用户。
- pwck:passwork check,用于验证系统认证文件/etc/passwd和/etc/shadow的内容和格式的完整性。
- grpck:用于验证组文件的完整性,在认证之前,需要先锁定(lock)组文件/etc/group和/etc/shaow。
五、权限
在Linux系统中,用户拥有的权限分别为写r(read)、w(write)、x(execute)。对于普通文件而言,r权限代表用户可以获取文件的数据,w权限代表用户能够修改文件的数据,x权限代表用户可以将文件运行为进程;对于目录文件而言,r权限代表用户可使用ls命令获取其下的文件列表,w权限代表用户可以修改目录下的文件列表,即可以在该目录下创建或者删除文件,x权限代表用户可以使用cd命令进入目录下,且可使用“ls -l”来获取所有文件的详细信息。
Linux通过三位八进制数分别表示文件所有者、所有组和其他人的权限。
权限 | 二进制表示 | 八进制 |
---|---|---|
-.-x | 001 | 1 |
-w- | 010 | 2 |
-wx | 011 | 3 |
r- - | 100 | 4 |
r-x | 101 | 5 |
rw- | 110 | 6 |
rwx | 111 | 7 |
通过bash内嵌命令umask可得到四维八进制的权限掩码。后三位从左到右分别代表该用户创建文件时不被允许获得的权限。
[root@localhost ~]# umask
0022
以此为例,可通过八进制减法777-022,得到用户创建文件或目录时的默认权限为755。此外,无论umask设置为何值,创建文件时都默认不给予任何执行权限x。系统默认umask值为0022,即创建目录时,系统默认给予目录755权限;创建文件时,系统默认给予文件644权限
六、权限管理命令
- chmod:修改权限。
- chown:修改所有者和所有组。
- chgrp:修改所有组。
- umask:显示或设定文件的权限掩码。
- install:复制文件的同时可以设置文件的权限、所有者和所有组。