基本权限和归属
权限和归属
权限和归属概述
基本访问权限:
-
读取:允许查看内容[ -read r ]
-
写入:允许修改内容[ -write w ]
-
可执行:允许运行和切换[ -excute x ]
-
三者权限独立存在,共同决定最终权限
对于文本文件:
-
r读取权限:cat、less、grep、head、tail
-
w写入权限:vim、> 、 >>
-
x可执行权限:Shell与Python
对于目录:
-
r读取权限:ls命令查看目录内容。
-
w写入权限:能够创建、删除、修改等目录里的内容。
-
x 执行权限:能够cd切换到此目录下(进入此目录)。
基本归属关系:
-
所有者**(除所有者、所属组以外的用户属主)**:拥有此文件/目录的用户 [ -user u ]
-
所属组**(属组)**:拥有此文件/目录的组 [ -group g ]
-
其他用户:除所有者、所属组以外的用户 [ -other o ]
例 :zhangsan(所有者) zhangsan(所属组) 1.txt
解析文件/目录权限
-
执行 [ ls -l 文件/目录 ]
[ ls -ld /etc/ ]
[ drwxr-xr-x. 141 root root 8192 11月 1 16:11 /etc/ ]
权限位 硬链接 属主 属组 大小 最后修改时间 文件/目录地址
第一位表示文件类型,[ d ] 是目录,[ 1 ] 是链接,[ - ] 是普通文件。
属主[ root ] 的权限是 [ wxr ]。
属组[ root ] 的权限是 [ xr ]。
权限控制
-
查看数据权限 : [ ls -l ] / [ ls -ld ]
-
Linux中判断用户具备的权限:
-
查看用户,对于该数据所处的身份
-
查看相应身份的权限位
-
设置基本权限
[ chmod ]命令
-
修改权限
-
格式:chmod [ u / g / o / a ] [ + / - / = ] [ rwx ] 文件…
-
[ chmod u-w /nsd10 ] #所有者去掉w权限
-
[ chmod u+w /nsd10 ] #所有者加上w权限
-
[ chmod g+w /nsd10 ] #所属组加上w权限
-
[ chmod g=r /nsd10 ] #所属组重新定义权限
-
[ chmod a=rwx /nsd10 ] #a表示所有人
-
[ chmod u=—,g=rx,o=rwx /nsd10 ] #属主,属组,其他人 同时设定对应权限
-
-
[ -R ] : 表示递归修改权限
[ chmod -R o=— /opt/aa ] # /opt/aa 目录下所有文件包括 /aa 的权限被修改。
-
当 [ 目录 ] 没有权限时,目录下文件也相当于没有权限。
-
Linux 系统看重 目录的执行权限 [ x ] ,无执行权限无法进入无法 [ wr ] 。
文件/目录的默认权限
-
权限位的8进制数表示
-
[ r ] = 4
-
[ w ] = 2
-
[ x ] = 1
例:
[ rwx ] = [ 7 ] # 4+2+1
[ -wx ] = [ 3 ] # 0+2+1
[ r-- ] = [ 4 ] # 4+0+0
[ r-x ] = [ 5 ] # 4+0+1
[ rw- ] = [ 6 ] # 4+2+0
[ --x ] = [ 1 ] # 0+0+1
[ — ] = [ 0 ] # 0+0+0[ chmod 700 /nsd14 ] # [ d rwx — — ]
-
归属控制
[ chown ] 命令
-
修改归属关系
- [ chown 属主 文件… ] # 仅修改所有者
- [ chown zhangsan /nsd15 ]
- [ chown 属主:属组 文件… ] # 修改所有者与所属组
- [ chown zhangsan:wudang /nsd15 ]
- [ chown :属组 文件… ] # 仅修改所属组
- [ chown :wudang /nsd15 ]
- [ chown 属主 文件… ] # 仅修改所有者
-
[ -R ] 递归修改
Linux中判断用户具备的权限:
- 首先查看改用户或组是否有ACL策略。
- 查看用户,对于该数据所处的身份,顺序所有所有者 > 所属组 > 其他人,原则是匹配及停止。
- 查看相对应身份的权限位。
ACL策略管理
-
文档归属的局限性:
-
任何人只属于三种角色:属主、属组、其他人。
-
特殊人群未包括。
ACL策略概述
- ACL策略:针对特殊的人(组)实现更精细的控制。(优先级最高)
- 对个别用户、个别组设置独立的权限
设置ACL权限
[ getfacl ]命令
- 查看ACL策略,[ getfacl 文件 ]
[ setfacl ]命令
-
格式:
- setfacl [选项] u:用户名:权限 文件… #单独为文件打造属主权限
- setfacl [选项] g:组名:权限 文件… #单独为文件打造属组权限
- [ ls -ld 文件 ] 显示 [ d—rwx—+ … ] 是掩码 mask 的权限。
-
常用命令选项
- [ -m ]:修改ACL策略
- [ setfacl -m u:bilibili:rwx /opt ]
- [ setfacl -m u:bilibili:— /opt ] #拉黑处理
- [ -x ]:清除指定的ACL策略
- [ setfacl -x u:bilibili /opt ]
- [ -b ]:清除所有已设置的ACL策略
- [ setfacl -b /opt ]
- [ -R ]:递归设置ACL策略
- [ -m ]:修改ACL策略
附加权限
概述
-
[ r,w,x ]无法满足所有情况,基本权限之外的权限被称为附加权限
- Set UID ( 基本不用 )
- Set GID
- Sticky Bit
Set UID
- 仅对可执行程序有意义
- 当其他用户执行SUID标记程序时,具有此程序属主的身份和相应权限。(user变root)
- 显示为 **[ s ]**或 [ S ],占用 属主(user) 的权限[ u:x ]位置。
- [ chmod u+s /nsd26 ]
Sticky Bit
-
粘滞位,Sticky Bit 权限。常叫 T权限 。
-
只适用于目录,用来限制用户滥用写入权
-
在设置了[ t ]权限的目录下,即使用户有写入权限,也不能删除或改名其他用户文档
-
占用 其他人(Other) 的权限[ o:x ]位置。
-
显示为 **[ t ]**或 [ T ],取决于其他人是否有 [ x ] 权限。
- [ rwx ] ==> [ rwt ] #原先有[ o ]的执行权限时, 用 [ t ]
- [ rw- ] ==> [ rwT ] #原先没有[ o ]的执行权限时, 用 [ t ]。无用!!
-
[ chmod o+t /nsd26 ]
Set GID(SGID权限)
-
占用属组(Group)的 [ g :x ] 位。
-
对目录有效
-
在一个具有SGID权限的目录下,新建的文档会自动继承父目录的属组身份
-
影响未来
-
显示为 [ s ]或[ S ],取决于属组是否有 x 权限
-
[ chmod g+s /nsd26 ]
-
[ /nsd26 ] 目录下所有内容的属组都与 [ /nsd26 ] 一样。
-
[ /nsd26 ] 目录下新建的内容的属组都与 [ /nsd26 ] 一样。
-
总结补充内容
实现 lisi 用户可以读取/etc/shadow文件内容
- 利用其他人身份
chmod o+r /etc/shadow # 给 other 以 read 权限 - 利用所属组身份
chown :lisi /etc/shadow # 把 lisi 用户作为属组加进去
chmod g+r /etc/shadow # 给作为属组的 list 以 read 权限 - 利用所有者身份
chown lisi /etc/shadow #
chmod u+r /etc/shadow - 利用ACL策略
setfacl -m u:lisi:r /etc/shadow
[ umask ] 命令
-
[ umask ](用户文件模式创建掩码)可用于定义并分配每个用户的默认权限。
-
用户定义的文件创建掩码。此掩码与默认系统权限相关联并更新它们。
-
设置默认umask值的umask命令 { 0022 } 反值
-
手动建造家用户
- /home 下的家目录有隐藏文件,直接 cp 即可。
- /etc/skel/ 是 家目录的目版目录。
- cp 完以后注意新的家目录[ bilibili ]的权限。
- 用 [ chown -R bilibili:bilibili /home/bilibili ] 递归更改所属关系。