Linux 用户、组和权限管理
内容概述
- Linux安全模型
- 用户和组相关文件
- 用户和组管理命令
- 文件权限管理
- 默认权限
- 特殊权限
- 文件访问控制列表
1. Linux安全模型
1.1 用户
- Linux中每个用户通过User Id(UID)唯一标识
- 管理员:root, 0
- 普通用户:1-60000自动分配
- 系统用户:1-499(CentOS 6以前),1-999(CentOS 7以后)
- 登录用户:500+(CentOS6以前),1000+(CentOS7以后)
1.2 用户组
- Linux中通过GroupID(GID)唯一标识
- 管理员组:root, 0
- 普通组:
- 系统组:1-499(CentOS 6以前),1-999(CentOS7以后)
- 普通组:500+(CentOS6以前),1000+(CentOS7以后)
1.3 用户和组的关系
- 主要组(primary group):用户必须属于一个且只有一个主组
- 附加组(supplementary group):用户可以属于零个或多个辅助组
1.4 安全上下文
- 进程以发起者的身份运行
- 进程访问资源的权限取决于运行者的身份
2. 用户和组配置文件
2.1 主要配置文件
- /etc/passwd:用户及其属性信息
- /etc/shadow:用户密码及其相关属性
- /etc/group:组及其属性信息
- /etc/gshadow:组密码及其相关属性
2.2 passwd文件格式
- login name:登录用户名
- passwd:密码(x)
- UID:用户身份编号
- GID:登录默认所在组编号
- GECOS:用户全名或注释
- home directory:用户主目录
- shell:用户默认使用shell
2.3 shadow文件格式
- 登录用户名
- 用户密码:一般用sha512加密
- 密码相关时间信息
- 密码策略设置
2.4 group文件格式
- 群组名称
- 群组密码
- GID
- 以当前组为附加组的用户列表
2.5 gshadow文件格式
- 群组名称
- 群组密码
- 组管理员列表
- 以当前组为附加组的用户列表
3. 用户和组管理命令
3.1 用户创建
常用选项:
- -u UID
- -g GID
- -c "COMMENT"
- -d HOME_DIR
- -s SHELL
- -G GROUP1[,GROUP2,...]
3.2 用户属性修改
常用选项:
- -u UID
- -g GID
- -G GROUP1[,GROUP2,...]
- -s SHELL
- -c "COMMENT"
- -d HOME
- -l login_name
- -L:锁定用户
- -U:解锁用户
3.3 删除用户
userdel [OPTION]... Login
常用选项:
- -f:强制
- -r:删除用户家目录和邮箱
3.4 查看用户ID信息
常用选项:
- -u:显示UID
- -g:显示GID
- -G:显示用户所属的组的ID
- -n:显示名称
3.5 切换用户
su [options...] [-] [user [args...]]
常用选项:
- -l:登录式切换
- -c:执行单个命令
3.6 设置密码
passwd [OPTIONS] UserName
常用选项:
- -d:删除密码
- -l:锁定用户
- -u:解锁用户
- -e:强制下次登录修改密码
- -n mindays:最短使用期限
- -x maxdays:最大使用期限
- -w warndays:提前警告天数
- -i inactivedays:非活动期限
3.7 修改密码策略
常用选项:
- -d LAST_DAY
- -m MIN_DAYS
- -M MAX_DAYS
- -W WARN_DAYS
- -I INACTIVE
- -E EXPIRE_DATE
- -l:显示密码策略
3.8 其他用户相关命令
- chfn:指定个人信息
- chsh:指定shell
- finger:查看用户个人信息
3.9 组管理命令
- groupadd:创建组
- groupmod:修改组
- groupdel:删除组
- gpasswd:更改组密码
- newgrp:临时切换主组
- groupmems:管理组成员
4. 文件权限管理
4.1 文件所有者和属组
- chown:修改文件属主和属组
- chgrp:修改文件属组
4.2 文件权限
- r:读权限
- w:写权限
- x:执行权限
- chmod:修改文件权限
4.3 默认权限
- umask:设置默认权限掩码
- 新建文件默认权限:666-umask
- 新建目录默认权限:777-umask
4.4 特殊权限
- SUID:作用于二进制可执行文件
- SGID:作用于二进制可执行文件或目录
- Sticky:作用于目录
4.5 文件特殊属性
- chattr:设置文件特殊属性
- lsattr:显示文件特殊属性
4.6 访问控制列表(ACL)
- setfacl:设置ACL权限
- getfacl:查看ACL权限
- mask:影响除所有者和other之外的最大权限
练习
- 创建用户gentoo,附加组为bin和root,默认shell为/bin/csh,注释信息为"Gentoo Distribution"
- 创建webs组,用户nginx和varnish使用webs作为附加组,用户mysql不可交互登录系统
- 复制/etc/fstab到/var/tmp,设置文件所有者为tomcat有读写权限,所属组为apps组有读写权限,其他人无权限
- 误删除了用户git的家目录,请重建并恢复该用户家目录及相应的权限属性