目录
一、Linux用户及组管理的用途
Linux用户及组管理主要用于系统资源分派,主要分为:
认证(Authentication)、授权(Authorization)和审计(Accouting)
二、Linux用户
Linux用户主要类型:
管理员:root,0
普通用户:1-65535
系统用户:1-499,1-999(不同发行版,管理方式有所不同)
登录用户:500+,1000+
三、Linux组
Linux组的类型
Linux组:Groupname/GID,主要类型有:
管理员组:root,0
普通组:
系统组:1-499,1-999(不同发行版,管理方式有所不同)
普通组:500+,1000+
Linux组的类别
linux组的类别有:
用户的基本组(主组) :
私有组:组名同用户名,且仅包含一个用户。
用户的附加组(额外组):
四、Linux安全上下文:
运行中的程序:进程。是以进程发起者的身份运行的,一个进程能够访问哪些资源(访问的所有资源的权限),取决于该进程的发起者的身份。
五、Linux用户和组相关的配置文件:
/etc/passwd:保存用户及其属性信息(名称、UID、基本组ID等);
每一行都有7个由“:”分割开来的字段组成。
主要格式为:name:password:UID:GID:GECOS:directory:shell
用户名:密码:UID:GID(用户基本组ID):用户基本信息描述(地址、电话等信息):主目录:默认shell
/etc/group:组及其属性信息;
每一行都有4个由“:”分割开来的字段组成。
主要格式为:group_name:password:GID:user_list
组名:组密码:GID:以当前组为附加组的用户列表(如果有多个,以“,”分割)
/etc/shadow:用户密码及其相关属性;
此文件每行包括9个字段,使用半角冒号(“:")分隔,顺序如下:
主要格式为:登录名:加密了的密码:最后一次更改密码的日期:密码的最小使用期限:密码的最大使用期限:密码警告时间段:密码禁用期:帐户的过期日期:保留字段
加密机制:
加密:明文-->密文
解密:密文-->明文
单向加密:提取数据指纹(只要数据相同,单项加密的结果就应该一样)
md5:message digest,128bits
sha1: secure hash algorithm,160bits
sha224:224bits
sha256:256bits
sha384:384bits
sha512:512bits
雪崩效应:初始的条件的微小改变,将会引起结果的巨大改变
定长输出:
密码的复杂性策略:
1.使用数字、大写字母、小写字母及特殊字符中至少3种;
2.足够长;
3.使用随机密码;
4.定期更换;不要使用最近曾经使用过的密码;
/etc/gshadow:组密码及其相关属性;
六、用户和组相关的管理命令
用户创建:useradd
useradd [选项] 用户登录名
-u UID:[UID_MIN,UID_MAX],定义在/etc/login.defs文件中
-g GID:指明用户所属的基本组,可为组名,也可以为GID,给出的组必须存在,并且数字GID必须有一个已经存在的项。
-c "COMMENT",用户的注释信息
-d /path/to/home_dir:以指定的路径为家目录,如果指定的目录已经存在
-s 新用户的登录shell名,指明用户的默认shell,可用列表在/etc/shells文件中
-G 指明用户的附加组,可以有多个,用逗号隔开,组必须事先存在
-r 创建系统用户(CentOS 6: ID<500;CentOS 7: ID<1000)
默认值设定:/etc/default/useradd文件中
也可以使用: useradd -D 命令修改相应的默认值
例:useradd -D -s /bin/zsh
组创建:groupadd
groupadd [选项] 组名
-g 指明GID号 :[GID_MIN,GID_MAX]
-r 创建系统组:(CentOS 6: ID<500;CentOS 7: ID<1000)
查看用户相关的ID信息:id
id [选项] 用户名
-u 只显示用户UID
-g 只显示基本组ID
-G 显示附加组ID
-n 显示名称而不是ID号
切换用户或以其他用户身份执行命令:su
su [选项] [-] [user [args...]]
切换用户的方式:
su 用户名 :非登录式切换,不会读取目标用户的配置文件;
su - 用户名:登陆式切换,读取目标用户的配置文件,完全切换;
注意:root su切换至其他用户无需密码,非root用户切换时需要密码;
以其他用户的身份执行命令:
su [-] 用户名 -c 命令
选项:
-l:“su -l 用户名”相当于“su - 用户名”
用户属性修改命令:usermod
usermod [选项] 用户名
-u 新UID
-g 新的GID
-G 新附加组,原来的附加组将会被覆盖,若保留原有,则要同时使用-a选项,表示追加附加组
-s 新的默认shell
-c 新的注释信息
-d 新的家目录,原有家目录中的文件不会同时移动至新的家目录,若要移动,则同时使用-m选项;
-l 修改新的登录名
-L 锁定指定用户
-U: 解锁指定用户
-e YYYY-MM-DD:指明用户帐号过期日期;
-f:设定非活动期限
给用户添加(修改)密码:passwd
passwd [选项] 用户名: 修改指定用户的密码,仅root用户有权限修改其他用户密码
passwd 修改当前用户自己的密码
常用选项:
-L 锁定指定用户
-U: 解锁指定用户
-n:设定最短使用期限
-x:设定最大使用期限
-w:提前多少天开始警告
-i:非活动期限
--stdin:从标准输入接收用户密码
echo "password" | passwd --stdin username
Linux的两个特殊设备:
/dev/null:数据黑洞
/dev/zero:输出“0”
删除用户:userdel
userdel [选项] 用户名
-r:删除用户家目录
组属性修改:groupmod
groupmod [选项] 组名
-n group_name:新名字
-g GID:新的GID
组删除:groupdel
groupdel 组名
组密码:gpasswd
gpasswd [选项] 组名
-a user:将user添加至指定组中
-d user:删除用户user以当前组为组名的附加组
-A user1,user2,... 组名 :设置有管理权限的用户
newgrp:临时切换基本组
如果用户本不属于此组,则需要组密码
修改用户属性:chage
chage [选项] 用户名
-d,-E,-I,-m,-M,-W
其他命令:chfn 修改用户信息
chsh 修改默认shell