第四章 用户身份与文件权限

前言

每天更新一点 Linux 系统操作的命令,巩固自己的 Linux 的基础操作命令,学习 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 管道文件

普通权限

image-20201203222304186

权限更改

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 [选项] [文件]


THE END