跳转至

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 用户创建

useradd [options] LOGIN
常用选项: - -u UID - -g GID - -c "COMMENT" - -d HOME_DIR - -s SHELL - -G GROUP1[,GROUP2,...]

3.2 用户属性修改

usermod [OPTION] login
常用选项: - -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信息

id [OPTION]... [USER]
常用选项: - -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 修改密码策略

chage [OPTION]... LOGIN
常用选项: - -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之外的最大权限

练习

  1. 创建用户gentoo,附加组为bin和root,默认shell为/bin/csh,注释信息为"Gentoo Distribution"
  2. 创建webs组,用户nginx和varnish使用webs作为附加组,用户mysql不可交互登录系统
  3. 复制/etc/fstab到/var/tmp,设置文件所有者为tomcat有读写权限,所属组为apps组有读写权限,其他人无权限
  4. 误删除了用户git的家目录,请重建并恢复该用户家目录及相应的权限属性
回到页面顶部