Linux系列之——用户身份与文件权限
前言
用户管理相关文件
家目录
- 普通用户 /home/用户名/ 权限:700
- 超级用户 /root/ 权限:550
用户的邮箱
- /var/spool/mail/用户名
用户模板文件
- /etc/skel/
用户管理命令
useradd
释义:添加用户
格式:useradd [选项] [用户名]
选项:
-u 指定UID
-d 指定用户家目录,默认/home/用户名
-c 用户说明
-g [组名] 指定初始组,默认与用户名同名的基本用户组
-G [组名] 指定附加组
-s 指定shell,默认/bin/bash
-e 用户到期时间
-N 不创建与用户名相同的基本用户组
groupadd
释义:创建用户组
格式:groupadd [选项] [组名]
选项:
-g [GID] 指定组 GID
usermod
释义:修改用户信息
格式:usermod [选项] [用户名]
选项:
-u 修改UID
-c 修改用户说明
-G 修改组名
-L 临时锁定用户
-U 解锁用户锁定
groupmod
释义:修改用户组
格式:groupmod [选项] [组名]
选项:
-g [GID] 修改组GID
-n [新组名] 修改组名
gpasswd
释义:把用户加入组或者从组中移除
格式:gpasswd [选项] [用户名]
选项:
-a [用户名] 加入
-d [用户名] 移除
passwd
释义:修改用户密码
格式:passwd [选项] [用户名]
选项:
-l 锁定用户,禁止登录
-u 解除锁定,允许用户登录
--stdin 允许通过标准输入修改用户密码
-d 使该用户可以空密码登录系统
-e 强制用户在下次登录的时候必须修改密码
-S 显示用户的密码是否被锁定,以及密码所采用的加密算法名称
chage
释义:修改用户密码状态
格式:chage [选项] [用户名]
选项:
-l 列出用户的详细密码状态
-d [日期] 修改密码最后一次更改日期
-m [天数] 两次密码修改时间间隔
-M [天数] 密码有效期
-W [天数] 密码过期警告天数
-I [天数] 密码过期后宽限天数
-E [天数] 账户实效时间
userdel
释义:删除用户
格式:userdel [选项] [用户名]
选项:
-r 删除用户的同时删除用户的家目录
-f 强制删除用户
groupdel
释义:删除组
su
释义:切换用户身份
格式:su [选项] [用户名]
选项:
-
代表连带用户的环境变量一起切换
-c
仅执行一次命令,而不切换用户身份
sudo
释义:用于给普通用户提供额外的权限来完成本来需要root管理员才能完成的任务
格式:sudo [参数] [命令]
选项:
-h 列出帮助信息
-l 列出当前用户可执行的权限
-u [用户名或UID] 以指定的用户身份执行命令
-k 清空密码的有效时间,下次执行sudo时需要再次进行密码验证
-b 在后台执行指定的命令
-p 更改询问密码的提示语
sudo 具有功能
- 限制用户执行指定的命令
- 记录用户执行的每一条命令
- 配置文件(/etc/sudoers)提供集中的用户管理、权限与主机等参数
- 验证密码的后5分钟内(默认值)无需让用户再次验证密码
visudo
释义:仅root用户可以执行,该命令用来编辑sudo服务的配置文件
格式:配置文件内
#谁可以使用 允许使用的主机=(以谁的身份) 可执行命令的列表
#Allow root to run any commands anywhere
root ALL=(ALL) ALL
//用户 被管理主机=(可使用的身份) 授权命令(绝对路径)
%where ALL=(ALL) ALL
//组名 被管理主机=(可使用的身份) 授权命令(绝对路径)
#username ALL=NOPASSWD: /usr/sbin/poweroff
//不需要验证密码
文件权限
文件类型
-
普通文件
d 目录文件
l 链接文件
b 块设备文件
c 字符设备文件
p 管道文件
普通权限
权限更改
chown 更改所属用户所属组
格式:chown [选项] [所属用户:所属组] [文件或目录名称]
选项:
-R 递归更改
chgrp 更改用户所属组
格式:chgrp [权限] [文件或目录名称]
chmod 更改用户权限
格式:chmod [选项] [权限] [文件或目录名称]
选项:
-R 递归更改
文件特殊权限
SetUID
SUID是一种对二进制程序设置的普通权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)
SUID,必须满足普通用户可执行的文件,其他人必须有可执行权限
- other 变成拥有这个文件的最高权限
- passwd 文件去掉s位普通用户不能配置密码
数字表示为4,字符表示为文件所有者的执行权限位为s,如果该文件没有执行权限则为S
SetGID
SGID功能
让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置)
在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)
- 文件不管谁创建,都属于当前文件夹的所属组
- 数字表示为2,字符表示为文件所属组的执行权限位为s,如果该文件没有执行权限则为S
SetBit
- SBIT,粘滞位。谁创建,谁删除。
- 数字表示位1,字符表示为其他用户的执行权限位为t,如果该文件没有执行权限则为T
ACL权限
setfacl
释义:管理文件的ACL规则
格式:setgacl [参数] [文件名]
参数:
-R 针对目录递归
-m 针对普通文件使用
-b 删除所有ACL权限
-x 删除指定的ACL权限
-d 设置默认ACL权限
getfacl
释义:查看设置的ACL信息
格式:getfacl [文件名]
最大有效权限
- umask
隐藏权限
chattr
释义:设置文件的隐藏权限
格式:chattr [+/-][选项] [文件]
选项:
i 无法对文件进行修改
a 仅允许追加内容,无法覆盖删除内容
S 文件内容在变更后立即同步到硬盘
s 彻底从硬盘中删除,不可恢复
A 不再修改这个文件或目录的最后访问时间
b 不再修改文件或目录的存取时间
D 检查压缩文件中的错误
d 使用dump命令备份时忽略本文件/目录
c 默认将文件或者目录进行压缩
u 当删除该文件后依然保留其在硬盘中的数据,方便日后恢复
t 让文件系统支持尾部合并
X 可以直接访问压缩文件中的内容
lsattr
释义:用于显示文件的隐藏权限
格式:lsattr [选项] [文件]

用户管理相关文件
家目录
用户的邮箱
用户模板文件
用户管理命令
useradd
groupadd
usermod
groupmod
gpasswd
passwd
chage
userdel
groupdel
su
sudo
visudo
文件权限
文件类型
普通权限
权限更改
文件特殊权限
SetUID
SetGID
SetBit
ACL权限
setfacl
getfacl
最大有效权限
隐藏权限
chattr
lsattr
共有 0 条评论