第六节课 用户身份与文件权限
计划任务服务程序
一次性计划任务
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
groupadd [选项] 群组名
usermod
usermod [选项] 用户名
参数作用
-c填写用户账户的备注信息-d -m参数-m 与参数-d 连用,可重新指定用户的家目录并自动把旧的数据转移过去-e账户的到期时间,格式为 YYYY-MM-DD-g变更所属用户组-G变更扩展用户组-L锁定用户禁止其登录系统-U解锁用户,允许其登录系统-s变更默认终端-u修改用户的 ID
passwd
passwd [选项] [用户名]
参数作用
-l锁定用户,禁止其登录-u解除锁定,允许用户登录–stdin允许通过标准输入修改用户密码,如 echo “NewPassWord” | passwd --stdin | Username-d使该用户可用空密码登录系统-e强制用户在下次登录时修改密码-S显示用户的密码是否被锁定,以及密码所采用的加密算法名称
userdel
userdel [选项] 用户名
参数作用
-f强制删除用户-r同时删除用户及用户家目录
文件权限与归属
文件类型
参数作用
-普通文件d目录文件l链接文件b块设备文件c字符设备文件p管道文件 文件权限的字符与数字表示
文件特殊权限
SUID
SUID 是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)。所有者位上如果有执行权限,原来的 x 将改写成 s(小写 s);如果没有执行权限,则改成 S(大写 S)。
SGID
让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置);在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)。
chmod
chmod [参数] 权限 文件或目录名称
chown
chown [参数] 所有者:所属组 文件或目录名称
SBIT
SBIT(Sticky Bit)特殊权限位了(也可以称之为特殊权限位之粘滞位)。SBIT 特殊权限位可确保用户只能删除自己的文件,而不能删除其他用户的文件。chmod -R o+t 文件名或目当
文件的隐藏属性
chattr [参数] 文件
参数作用
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
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更改询问密码的提示语
拍照