文章目录
用户和用户组管理
用户
tty
: 查看当前终端whoami
: 显示当前用户正在使用的终端和登录时间who am i
命令
w
: 查看所有终端(详细信息)
- 用户配置文件
/etc/passwd
权限755,/etc/shadow
权限000 /etc/passwd
文件字段含义:- 第1个字段: 用户名称
- 第2个字段: 密码标志
- 第3个字段: UID用户ID号
- 0: 超级用户
- 1-499: 系统用户(伪用户)
- 500+: 普通用户
- 第4个字段: GID(用户初始组ID)
- 第5个字段: 用户说明信息
- 第6个字段: 用户家目录
- 普通用户: /home/用户名
- 超级用户: /root/
- 第7个字段: 登录后使用的Shell命令解释器
/bin/bash
: 默认shell/sbin/nologin
: 禁止登陆
- 初始组和附加组:
- 每个用户默认有与其名称相同的用户组(可以更改但不建议)
- 附加组, 用户可以有多个附加组
- 影子文件
/etc/shadow
- 第1字段: 用户名
- 第2字段; 加密密码
- 加密算法升级为SHA512散列算法
- 如果密码位开头是
!!
或*
表示没有密码, 不能登录
- 第3字段: 密码最后一次修改时间(1970/1/1之后的时间戳, 单位是天)
- 第4字段: 两次密码的修改间隔时间(和3相比)
- 第5字段: 密码有效期(和3相比)
- 第6字段: 密码到期前警告提前提示天数(和5相比)
- 第7字段: 密码到期后的宽限时间(和5相比)
- 0: 表示立即失效
- -1: 表示永远不会失效
- 第8字段: 账号的失效时间点(时间戳表示)
- 第9字段: 保留,未用
组信息文件
/etc/group
- 组名:组密码标志:GID:组中附加用户
/etc/gshadow
- 组名:组密码(不推荐使用, 不常用):组管理员:组中附加用户
用户管理相关文件
- 用户家目录: 用户登录初始目录
- 超级用户:
/root/
, 所有者和所属组都是root, 权限是550- 如果普通用户改为超级用户(UID=0), 家目录不变, 权限改变
- 普通用户:
/home/用户名/
, 所有者和所属组都是此用户, 权限是700
- 超级用户:
- 用户的邮箱
/var/spool/mail/用户名/
- 用户模板目录
/etc/skel/
: 每次添加新用户时, 用户家目录的默认初始目录文件
添加用户命令useradd
useradd [选项] 用户名
: 添加新用户-u UID
: 手动指定UID-d 家目录
: 手动指定家目录-c 用户说明
: 手动指定用户说明-g 组名
: 手动指定用户的初始组-G 组名
: 指定用户的附加组(多组逗号隔开)-s shell
: 手动指定用户登录shell, 默认/bin/bash
- 用户默认配置文件
/etc/default/useradd
GROUP=100
# 用户默认组HOME=/home
# 用户家目录INACTIVE=-1
# 密码过期宽限天数(shadow文件7字段)EXPIRE=
# 密码失效时间SHELL=/bin/bash
# 默认shellSKEL=/etc/skel
# 模板目录CREATE_MAIL_SPOOL=yes
# 是否建立邮箱
etc/login.defs
PASS_MAX_DAYS 99999
# 密码有效时间PASS_MIN_DAYS 0
# 密码有修改间隔PASS_MIN_LEN 8
# 密码最小位数(现已更为PAM)PASS_WAEN_AGE 7
# 密码到期提前警告时间UID_MIN 500
# UID范围UID_MAX 60000
# UID范围ENCRYPT_METHOD SHA512
# 加密模式
用户管理命令
创建用户后, 不设置用户密码则该用户不能登录
passwd 用户名
: 只能root用户使用, 修改指定用户密码passwd
: 修改当前用户密码, 所有用户都可以用passwd [选项] 用户名
-S
: 查看用户信息-l
: 锁定用户(shadow文件密码前!!
)-u
: 解锁用户--stdin
: 接收字符串作为密码, 可以用于批量设置, 可以结合管道符操作
usermod和change
- usermod和useradd的选项大致相同,useradd用于创建用户时指定一些信息, usermod用于修改已存在的用户
- -L:临时锁定用户(密码前加一个
!
) - -U: 解锁用户
- -L:临时锁定用户(密码前加一个
- chage [选项] 用户名
- 修改用户状态信息
- chage命令繁琐, 常常直接用vim修改配置文件
chage -d 0 用户名
: 修改用户上次密码修改时间为0(表示从未修改过)- 系统会在用户登录时强制其修改密码, 然后使用新密码登录
- 该命令常用需要某用户修改密码时
userdel, id和su
- 删除用户
userdel [-r] 用户名
-r
: 连带家目录也删除, 通常带此选项
id 用户名
- 查看用户的id信息(包括组id)
su [选项] 用户名
: 切换用户-
: 带用户环境变量一起切换-c "命令"
: 以目标用户执行一次命令而不切换身份
用户组管理命令
- 添加组
groupadd [选项] 组名
-g GID
: 指定GID
- 修改组
groupmod [选项] 组名
-g GID
: 修改组ID-n 新组名
: 修改组名
- 删除组
groupdel 组名
- 如果组内有初始用户, 则该组不能删除
- 附加用户不影响组删除
- 组添加/删除用户
gpasswd [选项] 组名
-a 用户名
: 把用户加入组-d 用户名
: 把用户从组删除- 注意
gpasswd
管理的是附加组
其它权限管理
ACL权限: 指定其它某用户/组的权限(所有者,所属组和其他人三种权限方式不够,需要赋予独立权限)
setfacl -m u:用户名:权限 [-R] /目录或文件
: 设置acl权限setfacl -m g:组名:权限 /目录或文件
setfacl -m m:最大权限(mask) /目录或文件
: 设置权限掩码- mask掩码, 除了所有者外, 其余权限都受mask影响
-R
选项表示对目录递归操作- 该操作只作用已存在的文件目录, 对之后新建的文件无效
getfacl 目录或文件
: 查看acl权限setfacl -b 文件名
: 删除acl权限setfacl -m d:u:用户名:权限 [-R] /目录或文件
- 该命令针对未来新创建的目录文件设置默认acl权限, 不影响已存在的文件
文件特殊权限
SetUID权限: 用户执行某命令时(需要x权限)临时具有该命令所有者的身份)
4
代表SUID权限(权限以s
显示,S
表示错误的SUID权限(因为没有x权限))- 设置权限:(只能作用于文件)
chmod 4755 文件名
chmod u+s 文件名
- 取消权限:
chmod 755 文件名
chmod u-s 文件名
- SUID权限很危险
- 关键命令文件要严格控制权限
- 一些命令要严格检查setUID权限(如过vim所属root并且拥有SUID权限, 则任意用户可以通过vim修改任意系统文件😱)
- 设置权限:(只能作用于文件)
SetGID权限: 临时具有组成员身份, SGID可以作用于目录和文件, 用2
代表
chmod 2755 文件/目录
chmod g+s 文件/目录
Sticky BIT权限: 只能作用于目录, 用1代表
- 其它用户需要具有目录的wx权限
- 设置SBIT粘着位, 即使有w权限, 普通用户也只能删除修改自己的文件, 不能删除其它人的文件
chomd 1755 目录
chmod o-t 目录
chattr权限: 文件系统属性, 特点:对root用户也有效
chattr [+-=]属性 目录或文件
+-=: 增加/取消/赋予属性权限
i
: 锁定文件/目录, 不允许修改文件(相当于只读)或改变目录结构(可以修改目录下文件)a
: 只能增加修改, 不能删除(相当于锁定现有数据), 目录可以新建和修改, 不能删除
sudo权限
- 把只能root执行的命令赋予普通用户执行
- sudo操作的对象是系统命令
visudo
: 实际修改的是/etc/sudoers
配置文件root ALL=(ALL) ALL
: 系统默认root具有所有权限- 对应格式为
用户名 管理的Linux主机=(可用身份) 权限信息
- 具体信息查看
/etc/sudoers.d
文档
- 对应格式为
- 访问的主机IP只能写ALL或本机IP, 限制的是访问的目标IP, 其它会禁止用户登录
- 可用身份可以不写
- 权限信息尽量写的详细(即最小原则), 否则权限越模糊危险性越大
- 对于一些具有修改权限的命令的sudo要谨慎使用, 否则普通用户可能会滥用修改
其它用户/组命令
chmod [{ugoa}{+-=}{rwx}] [文件或目录]
[mode=421] [文件或目录]
-R
: 递归修改目录下所有文件或目录ugoa
: 对所有者/所属组/其他人/所有人进行权限操作+-=
: 增加/删除/赋予权限- rwx:可读/可写/可执行
- 文件:
r
: 通过cat/more/less/head/tail可获取文件内容w
: vim; 可编辑文件内容x
: script command; 可执行
- 目录:
r
: ls; 可查看目录结构w
: touch/rm/rmdir/cp/mv; 可修改目录结构x
: cd; 可进入目录
- 目录的
rx
权限一般绑定存在
- 文件:
- mode:
r w x -
分别表示4 2 1 0
chown [用户] [文件或目录]
- 将[文件/目录]的所有者更改为[用户]
chown
还可以修改所属组:chown 用户名:组名 文件目录
: 同时修改所属组
chgrp [用户组] [文件或目录]
- 将[文件/目录]的所属组更改为[用户组]
umask
: 管理默认权限-S
: 以ugo格式查看默认权限umask 421
: 表示缺省权限去除, 即实际权限为777-421=356