第六节课 用户身份与文件权限
计划任务服务程序
一次性计划任务
- at 时间:创建一次性计划任务,按下 Ctrl+d 来结束编写计划任务
- at -l :查看已创建但未执行的任务
- atrm 任务编号: 删除已创建的计划任务
长期性计划任务
- crontab -e :创建、编辑计划任务
- crontab -l :查看计划任务
- crontab -r :删除计划任务
- crontab -u 用户名 :root 用户编辑其他用户名的计划任务
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AqFK132N-1603283767426)(cron计划任务的参数.png)]
字段 | 说明 |
---|
分钟 | 取值为 0 ~ 59 的整数 |
小时 | 取值为 0 ~ 23 的任意整数 |
日期 | 取值为 1 ~ 31 的任意整数 |
月份 | 取值为 1 ~ 12 的任意整数 |
星期 | 取值为 0 ~ 7 的任意整数,其中 0 与 7 均为星期日 |
命令 | 要执行的命令或程序脚本,命令使用绝对路径(whereis 命令:查找绝以路径) |
用户身份与能力
- UID(User IDentification,root 的 UID 是 0):具有唯一性
- 系统用户 UID 为 1 ~ 999: Linux 系统为了避免因某个服务程序出现漏洞而被黑客提权至整台服务器,默认服务程序会有独立的系统用户负责运行,进而有效控制被破坏范围。
- 普通用户 UID 从 1000 开始:是由管理员创建的用于日常工作的用户。
useradd
-
useradd [选项] 用户名
参数 | 作用 |
---|
-d | 指定用户的家目录(默认为/home/username) |
-e | 账户的到期时间,格式为 YYYY-MM-DD. |
-u | 指定该用户的默认 UID |
-g | 指定一个初始的用户基本组(必须已存在) |
-G | 指定一个或多个扩展用户组 |
-N | 不创建与用户同名的基本用户组 |
-s | 指定该用户的默认 Shell 解释器 |
groupadd
usermod
参数 | 作用 |
---|
-c | 填写用户账户的备注信息 |
-d -m | 参数-m 与参数-d 连用,可重新指定用户的家目录并自动把旧的数据转移过去 |
-e | 账户的到期时间,格式为 YYYY-MM-DD |
-g | 变更所属用户组 |
-G | 变更扩展用户组 |
-L | 锁定用户禁止其登录系统 |
-U | 解锁用户,允许其登录系统 |
-s | 变更默认终端 |
-u | 修改用户的 ID |
passwd
参数 | 作用 |
---|
-l | 锁定用户,禁止其登录 |
-u | 解除锁定,允许用户登录 |
–stdin | 允许通过标准输入修改用户密码,如 echo “NewPassWord” | passwd --stdin | Username |
-d | 使该用户可用空密码登录系统 |
-e | 强制用户在下次登录时修改密码 |
-S | 显示用户的密码是否被锁定,以及密码所采用的加密算法名称 |
userdel
参数 | 作用 |
---|
-f | 强制删除用户 |
-r | 同时删除用户及用户家目录 |
文件权限与归属
-
文件类型
参数 | 作用 |
---|
- | 普通文件 |
d | 目录文件 |
l | 链接文件 |
b | 块设备文件 |
c | 字符设备文件 |
p | 管道文件 |
-
文件权限的字符与数字表示
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/8f4351f3ed0b5918b1d353368e9e4732.png)
文件特殊权限
SUID
- SUID 是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)。
- 所有者位上如果有执行权限,原来的 x 将改写成 s(小写 s);如果没有执行权限,则改成 S(大写 S)。
SGID
- 让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置);
- 在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)。
chmod
chown
- chown [参数] 所有者:所属组 文件或目录名称
SBIT
- SBIT(Sticky Bit)特殊权限位了(也可以称之为特殊权限位之粘滞位)。SBIT 特殊权限位可确保用户只能删除自己的文件,而不能删除其他用户的文件。
chmod -R o+t 文件名或目当
文件的隐藏属性
参数 | 作用 |
---|
i | 无法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件 |
a | 仅允许补充(追加)内容,无法覆盖/删除内容(Append Only) |
S | 文件内容在变更后立即同步到硬盘(sync) |
s | 彻底从硬盘中删除,不可恢复(用 0 填充原文件所在硬盘区域) |
A | 不再修改这个文件或目录的最后访问时间(atime) |
b | 不再修改文件或目录的存取时间 |
D | 检查压缩文件中的错误 |
d | 使用 dump 命令备份时忽略本文件/目录 |
c | 默认将文件或目录进行压缩 |
u | 当删除该文件后依然保留其在硬盘中的数据,方便日后恢复 |
t | 让文件系统支持尾部合并(tail-merging) |
x | 可以直接访问压缩文件中的内容 |
- lsattr [参数] 文件
lsattr 命令用于显示文件的隐藏权限,在 Linux 系统中,文件的隐藏权限必须使用 lsattr 命令来查看,平时使用的 ls 之类的命令则看不出端倪。
文件访问控制列表
- 基于普通文件或目录设置 ACL 其实就是针对指定的用户或用户组设置文件或目录的操作权限。
- 如果针对某个目录设置了 ACL,则目录中的文件会继承其 ACL;若针对文件设置了 ACL,则文件不再继承其所在目录的 ACL。
setfacl
- setfacl [参数] 文件名称
- ls 命令是看不到 ACL 表信息的,但是却可以看到文件的权限最后一个点(.)变成了加号(+),这就意味着该文件已经设置了 ACL 了。
参数 | 作用 |
---|
-m | –modify-acl 更改文件的访问控制列表 |
-M | –modify-file=file 从文件读取访问控制列表条目更改 |
-x | –remove=acl 根据文件中访问控制列表移除条目 |
-X | –remove-file=file 从文件读取访问控制列表条目并删除 |
-b | –remove-all 删除所有扩展访问控制列表条目 |
-k | –remove-default 移除默认访问控制列表 |
-d | –default 应用到默认访问控制列表的操作 |
-P | –physical 依照自然逻辑,不跟随符号链接 |
-v | –version 显示版本并退出 |
-R | –recursive 递归操作子目录 |
getfacl
参数 | 作用 |
---|
-a | 显示文件的 ACL |
-d | 显示默认的 ACL |
-c | 不显示注释标题 |
-e | 显示所有的有效权限 |
-E | 显示没有的有效权限 |
-s | 跳过文件,只具有基本条目 |
-R | 递归到子目录 |
-t | 使用表格输出格式 |
-n | 显示用户的 UID 和组群的 GID |
su 与 sudo
su
- 解决切换用户身份的需求,使得当前用户在不退出登录的情况下,顺畅地切换到其他用户
- su 命令与用户名之间有一个减号(-),这意味着完全切换到新的用户,即把环境变量信息也变更为新用户的相应信息,而不是保留原始的信息。建议在切换用户身份时添加这个减号(-)。
sudo
- sudo [参数] 命令名称
- 限制用户执行指定的命令:
- 记录用户执行的每一条命令;
- 配置文件(/etc/sudoers)提供集中的用户管理、权限与主机等参数;
- 验证密码的后 5 分钟内(默认值)无须再让用户再次验证密码
- 只有 root 管理员才可以使用 visudo 命令编辑 sudo 服务的配置文件
- 添加 NOPASSWD 参数,使得用户执行 sudo 命令时不再需要密码验证
谁可以使用 允许使用的主机=(以谁的身份) 可执行命令的列表
root ALL=(ALL) ALL
linuxprobe ALL=(ALL) ALL
参数 | 作用 |
---|
-h | 列出帮助信息 |
-l | 列出当前用户可执行的命令 |
-u | 用户名或 UID 值 以指定的用户身份执行命令 |
-k | 清空密码的有效时间,下次执行 sudo 时需要再次进行密码验证 |
-b | 在后台执行指定的命令 |
-p | 更改询问密码的提示语 |
拍照
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/2728f7277615ddbe33c2087cd2f36934.jpeg)