Linux权限与用户管理

Linux权限与用户管理

权限与用户类别

rwx分别代表 读/写/执行 (权限) ugoa分别代表 属主/属组/其他人/所有人 (用户类别) MODE代表0000-7777的权限(数字表示)

文件与目录权限

默认权限 umask命令查看默认权限掩码(/etc/umask) umask改变默认权限的2种方式 umask MODE umask [ugoa][+-=][rwx]

类型 默认权限
文件 0666-umask
目录 0777-umask

文件和目录权限的不同含义

权限名 文件 目录
r 读取文件内容 列出目录文件
w 修改文件内容 创建/删除文件
x 执行文件 进入目录/显示文件详细信息

权限和用户类别命令

  • chmod [ogoa] [+-=] [rwx] FILE/DIR (chmod MODE FILE/DIR)
  • chown USER[:GRP] FILE/DIR 修改属主/属组
  • chgrp FILE/DIR 修改属组 chmod chown chgrp 命令通用选项
    • -R 递归修改目录 权限/属主/属组
    • -v 显示详细的处理信息
    • -c 显示改变的信息
    • --reference=path/file path/file 将前者 权限/属主/属组 赋给 后者
    • --deference 作用于软链接指向的文件 (chmod不支持)

特殊权限

SUID: 运行程序时, 相应进程的属主是程序文件自身的属主, 而不是启动者. chmod u+s FILE 如果FILE原有属主执行权限, 则显示为s, 否则显示为S

SGID: 运行程序时, 相应进程的属组是程序文件自身的属组, 而不是启动者的属组. chmod g+s FILE 如果FILE原有属组执行权限, 则显示为s, 否则显示为S. chmod g+s DIR 在目录下创建的文件不是自己的基本组, 而是目录的属组.

Sticky: 给目录设置Sticky特殊权限. chmod o+t DIR 在这个目录下可以创建文件, 删除自己的文件, 不能删除别人的文件.

访问控制列表

  • getfacl FILE/DIR 查看ACL信息
  • setfacl -[m|x] [D:]T:N:P FILE/DIR 设定/取消ACL信息
    • m: 设定ACL
    • x: 取消ACL
    • D: 是否为目录(目录中文件递归继承ACL)
    • T: [u|g] 用户或者组
    • N: UID|GID|用户名|组名
    • P: 权限[rwx]

setfacl --mask PERM FILE 设置facl中的mask(不能超过umask的权限)

隐藏属性

  • chattr [+-=][ia] FILE/DIR 修改隐藏属性
    • a: 文件只能增加数据, 不能删除和修改.
    • i: 不能对此文件使用 重命名/删除/链接/修改 等操作.
  • lsattr FILE/DIR 显示隐藏属性
    • -a 显示隐藏文件
    • -d 显示目录属性
    • -R 递归显示

用户管理

用户/组 配置

  • 用户类别(组类别: 管理员组/系统组/一般组)
    • 管理员(root) UID=0
    • 系统用户 UID=[1, 499]
    • 一般用户 UID=[500, 65535]

私有组: 创建用户时, 系统自动为其创建的一个与用户名相同的组. 附加组: 为用户添加额外的组, 用户可以切换到附加组内.

  • 用户和组信息文件

    • /etc/passwd
    • /etc/group
  • 用户和组影子口令文件

    • /etc/shadow
    • /etc/gshadow
  • /etc/passwd中的信息 用户名:密码:UID:GID:注释:家目录:默认SHELL

  • /etc/group中的信息 组名:密码:GID:以此组为其附加组的用户列表

  • /etc/shadow中的信息 用户名:密码:最近一次修改密码时间:最短使用期限:最长使用期限:警告时间:非活动时间:过期时间:保留 最短使用期限: 最短再次修改密码的时间 最长使用期限: 必须在这个时间内修改密码, 否则国企的时间 警告时间: 账号超过时间没有修改密码被警告的时间 非活动时间: 账号修改密码才能继续使用的时间 过期时间: 账号的过期的时间

/etc/login.defs 用户登录默认信息(优先级低于/etc/shadow) /etc/shells 系统所提供的所有SHELL

用户管理命令

  • useradd USER 添加用户
    • -r 创建系统帐号
    • -p PASSWD 为用户账户指定默认密码
    • -m 创建家目录
    • -M 不创建家目录
    • -b HOME_DIR 指定家目录位置
    • -k 必须与-m一起使用, 将/etc/skel目录的内容复制到用户的家目录.
  • usermod USER 修改用户信息
    • -l NAME 修改用户帐号名
    • -L 锁定用户密码(无法登陆/密码无效)
    • -U 解除密码锁定 useradd/usermod通用选项
    • -u UID 指定UID
    • -g INITIAL_GROUP 指定用GID或组名
    • -d NAME 指定家目录名
    • -c COMMENT 新增/修改 用户备注
    • -s SHELL 指定默认登录shell
    • -G GROUP... 指定用户附加组
    • -e EXPIRE_DATE 指定账户过期时间
    • -f INACTIVE_DAYS 指定帐户非活动时间 立即(0), 永不(-1)
  • userdel USER 删除用户
    • -r 同时删除用户的家目录
    • -f 强制删除 即使用户在线

  • **id USER ** 显示用户信息
    • -u UID
    • -g GID
    • -G 附加组
    • -n 对于 -ugG 显示名字而不是数值
    • -r 显示名字而不是用户名
  • chsh USER 修改用户默认登陆shell (同usermod -s)
  • chfn USER 修改用户备注信息 (同usermod -c)
  • passwd USER 给用户添加密码
    • --stdin 从标准输入中输入密码
    • -d 删除密码(用户登录可不输入密码)
    • -S 显示用户密码信息
    • -l 同(usermod -L) 锁定用户
    • -u 同(usermod -U) 解锁用户
    • -g 同(gpasswd GROUP) 设定组密码
  • chage USER 更新用户密码信息
    • -l 列出当前chage的设置
    • -m MIN_DATE 最短使用期限 不限制(0)
    • -M MAX_DATE 最长使用期限
    • -w WARN_DATE 警告时间
    • -E EXPIRE_DATE 过期时间
    • -d LAST_PSWD_DATE修改上一次更改密码时间
    • -i INACTIVE_DATE 非活动时间
  • pwck 检查用户帐号完整性 -q 仅报告错误信息 -s 以用户ID排序文件 -r 只读方式运行指令

  • groupadd GROUP 创建组
    • -g GID 指定GID
    • -r 设定为系统组
  • groupmod GROUP 修改组信息
    • -g GID 指定GID
    • -n NAME 修改组名
  • groupdel GROUP 删除组
  • gpasswd GROUP 设定组密码
    • -a USER 添加用户到组
    • -d USER 从组删除用户
    • -A USER... 指定组管理员
    • -M USER... 指定组成员
    • -r 删除组密码
    • -R 限制用户组 (只有组中成员能使用newgrap加入该组)
  • newgrp GROUP 切换到一个新组

猜你喜欢

转载自my.oschina.net/u/3655970/blog/1536065