您的位置:首页 > 其它

第5天学习 用户身份与文件权限。

2018-10-13 14:40 211 查看

管理员UID为0:系统的管理员用户。
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 修改用户的UID
passwd命令用于修改用户密码、过期时间、认证信息等,格式为“passwd [选项] [用户名]”。
userdel命令用于删除用户,格式为“userdel [选项] 用户名”。
-:普通文件。
尽管在Linux系统中一切都是文件,但是每个文件的类型不尽相同,因此Linux系统使用了不同的字符来加以区分,常见的字符如下所示。
d:目录文件。

l:链接文件。

b:块设备文件。

c:字符设备文件。

p:管道文件。
所有组以及其他人对文件所拥有的可读(r)、可写(w)、可执行(x)等权限。

文件权限的数字法表示基于字符表示(rwx)的权限计算而来,其目的是简化权限的表示。例如,若某个文件的权限为7则代表可读、可写、可执行(4+2+1);若权限为6则代表可读、可写(4+2)。我们来看这样一个例子。现在有这样一个文件,其所有者拥有可读、可写、可执行的权限,其文件所属组拥有可读、可写的权限;而且其他人只有可读的权限。那么,这个文件的权限就是rwxrw-r–,数字法表示即为764。不过大家千万别再将这三个数字相加,计算出7+6+4=17的结果,这是小学的数学加减法,不是Linux系统的权限数字表示法,三者之间没有互通关系。
Linux系统的文件权限相当复杂,但是用途很广泛,建议大家把它彻底搞清楚之后再学习下一节的内容。现在来练习一下。请各位读者分别计算数字表示法764、642、153、731所对应的字符表示法,然后再把rwxrw-r–、rw–w--wx、rw-r–r--转换成数字表示法
所有者权限为可读、可写(rw-),所属组权限为可读(r–),除此以外的其他人也只有可读权限(r–)
chmod 快速设置文件权限
chown 修改文件所有者和所有组的

SUID是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)。-rwsr-xr-x. 1 root root 27832 Jan 29 2017 /bin/passwd
SGID的第一种功能是参考SUID而设计的,不同点在于执行程序的用户获取的不再是文件所有者的临时权限,而是获取到文件所属组的权限
SBIT特殊权限位可确保用户只能删除自己的文件,而不能删除其他用户的文件。换句话说,当对某个目录设置了SBIT粘滞位权限后,那么该目录中的文件就只能被其所有者执行删除操作了。
SUID: u+s 文件名 临时拥有 有权限 x→ s t 让命令的执行者临时获取所有者的身份 4

SGID: 递归操作 -R g+s 文件名 永久 没有权限→ S T 2
-R g+s 文件名 让目录中新的文件的所有组归属上级目录
SBIT:o+t 7 654 rw-r-xr-- 7654 rwSr-sr-T chomd -R o+t 文件名 1
chomd -R o+t 文件名 让目录内的文件只能被文件所有者删除
chattr命令用于设置文件的隐藏权限,格式为“chattr [参数] 文件”
参数 作用
i 无法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件
a 仅允许补充(追加)内容,无法覆盖/删除内容(Append Only)
S 文件内容在变更后立即同步到硬盘(sync)
s 彻底从硬盘中删除,不可恢复(用0填充原文件所在硬盘区域)
A 不再修改这个文件或目录的最后访问时间(atime)
b 不再修改文件或目录的存取时间
D 检查压缩文件中的错误
d 使用dump命令备份时忽略本文件/目录
c 默认将文件或目录进行压缩
u 当删除该文件后依然保留其在硬盘中的数据,方便日后恢复
t 让文件系统支持尾部合并(tail-merging)
x 可以直接访问压缩文件中的内容
lsattr命令用于显示文件的隐藏权限,格式为“lsattr [参数] 文件”。
setfacl命令用于管理文件的ACL规则,格式为“setfacl [参数] 文件名称 设置
getfacl命令用于显示文件上设置的ACL信息,格式为“getfacl 文件名称” 查看
setfacl 对目录用-R 对文件用-m 对用户用-u 对用户组用-g 删除的话用-b操作
.变+ 该加粗样式文件有了facl权限
su命令可以解决切换用户身份的需求,使得当前用户在不退出登录的情况下,顺畅地切换到其他用户,比如从root管理员切换至普通用户:**su-**完全变成新用户,
sudo命令用于给普通用户提供额外的权限来完成原本root管理员才能完成的任务,格式为“sudo [参数] 命令名称”。sudo服务中可用的参数以及相应的作用如表5-7所示。
管理员→普通用户 不需要密码 普通用户→管理员 需要密码
表5-7 sudo服务中的可用参数以及作用

参数 作用
-h 列出帮助信息
-l 列出当前用户可执行的命令
-u 用户名或UID值 以指定的用户身份执行命令
-k 清空密码的有效时间,下次执行sudo时需要再次进行密码验证
-b 在后台执行指定的命令
-p 更改询问密码的提示语
使用visudo命令配置sudo命令的配置文件时,其操作方法与Vim编辑器中用到的方法一致,因此在编写完成后记得在末行模式下保存并退出。在sudo命令的配置文件中,按照下面的格式将第99行(大约)填写上指定的信息:

谁可以使用 允许使用的主机=(以谁的身份) 可执行命令的列表
[root@linuxprobe ~]# visudo
96 ##
97 ## Allow root to run any commands anywhere
98 root ALL=(ALL) ALL
99 linuxprobe ALL=(ALL) ALL
本章节的复习作业

1.在RHEL 7系统中,root管理员是谁?

答:是UID为0的用户,默认是root管理员。

2.如何使用Linux系统的命令行来添加或删除用户?

答:添加和删除用户的命令分别是useradd与userdel。

3.若某个文件的所有者具有文件的读/写/执行权限,其余人仅有读权限,那么用数字法表示应该是什么?

答:所有者权限为rwx,所属组和其他人的权限为r–,因此数字法表示应该是744。

4.某链接文件的权限用数字法表示为755,那么相应的字符法表示是什么呢?

答:在Linux系统中,不同文件具有不同的类型,因此这里应写成lrwxr-xr-x。

5.如果希望用户执行某命令时临时拥有该命令所有者的权限,应该设置什么特殊权限?

答:特殊权限中的SUID。

6.若对文件设置了隐藏权限+i,则意味着什么?

答:无法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件。

7.使用访问控制列表(ACL)来限制linuxprobe用户组,使得该组中的所有成员不得在/tmp目录中写入内容。

答:想要设置用户组的ACL,则需要把u改成g,即setfacl -Rm g:linuxprobe:r-x /tmp。

8.当普通用户使用sudo命令时是否需要验证密码?

答:系统在默认情况下需要验证当前登录用户的密码,若不想要验证,可添加NOPASSWD参数。

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: