用户权限及操作

一、基本权限UGO

1.概述

在多用户(可以不同时)计算机系统的管理中,权限是指某个特定的用户具有特定的系统资源使用权力,像是文件夹、特定系统指令的使用或存储量的限制。

2.设置权限的两个基本元素

权限对象

权限类型

3.权限的三类对象

属主:u,文件所有者
属组:g,文件所属组成员
其他人:o,路人other
那么这三类对象,权限肯定是不一样的。
特殊对象:所有人:a(u+g+o)

4.权限的三种类型

针对文件来说:

读:r=4,read,可以看内容
写:w=2,write,可以修改内容
执行:x=1,excute程序(可能是二进制,也可能是脚本) 可以执行
后面的4,2,1则是权限的数字码,在授权的时候使用。

针对目录文件来说:

读 r=4 read 可以浏览目录内文件列表,但是无法看到文件内容和文件属性。

写 w=2 write 可以删除,新建目录内文件。如果没有w权限,则无法在这个目录内删除或是新建文件。但是如果这个目录只有w写的权限,没有x执行权限,也不能删除新建,因为没有x权限,这个目录都进不去,就无法删除。

执行 x=1 excute cd 可以访问目录中的文件,看到这些文件的具体信息和属性信息,如果没有执行权限,就看不到,也不进去这个目录内的文件。

5.如何文件属性

使用ll,也就是ls -l查看文件的详细信息
文件属性:
在这里插入图片描述

例:
-rw-r–r-- 1 root root 26195 Dec 17 10:42 install.log
权限:引用数(连接数):所有者:所属组:大小:创建时间:文件名
这里我们看权限即可,也就是最前面的一列的权限码。
-rwx r-x r-x
-开头代表文件类型
剩下的权限码,三位一分
rwx 代表这个文件所有者的权限,读写无,r 读;w 写;x 执行。
r-x 代表这个文件的文件所属组成员权限,r 读;- 无;x 执行。
r-x 最后的r-x代表other的文件权限, r 读;- 无;x 执行。

6.设置权限

更改权限

使用符号:

chmod who opt per file
who:u 所有者user用户;g 所属group组;o other其他人;a所有人(a-x 这个文件的用户都没有执行权限 -x 前面默认为a)。
opt:操作权限。+ 增加一个权限;- 去掉一个权限;= 直接赋予(覆盖)什么权限。
per:r read读权限;w write写权限;x excete执行权限。
File就是指的具体文件了。

例如:
Chmod o+w file1.txt
在这里插入图片描述
给other人群对file1.txt文件加一个write权限

Chmod u=,g=r,o=rw file1.txt
在这里插入图片描述
给文件所有者清空权限,所属组读权限,other读写权限
Chmod -R g=r,o=rwx abc
对整个目录及其下的文件都授权,-R,递归。
Ls -d abc 查看目录
在这里插入图片描述
在这里插入图片描述

注意:如果一个用户既是所属组成员(附加组),又是other,那么权限是看组的。
一个用户的权限判断过程,先判断是否所属者,是则不继续判断下去,不是则继续判断是否所属组,是则不继续,不是则判断是other

使用数字:

Chmod 614 file1,权限则是所有者有4+2,也就是读写权限,所属组有1,也就是执行权限,其他人则有4,也就是读权限。
在这里插入图片描述
绿色文件名表示有执行权限了。

Chmod 777 file1,权限就是all所有人有这个文件的所有权限。
在这里插入图片描述

7.更改属主、属组

chown 用户 文件:chown change owner 修改所有者。

例:chown user01 file1:把file1文件的所有者改成user01。
在这里插入图片描述

chgrp 组 文件:chgrp change group 修改所属组。

例:chgrp user02 file1:把file1文件得所属组改成user02组。
在这里插入图片描述

chown和chgrp合二为一:

chown root.user03 file1
把file1文件的所有者改成root,所属组改成user03。
在这里插入图片描述

注意:如果root是所有者,那么所有者的权限对root是没用的。因为权限本身就是给普通用户设置的。
注意:删除一个文件,需要的权限不是看这个文件本身的权限,而是这个文件的上一级目录的权限。因为删除这个文件本身就是在上一级目录中去删除。

二、基本权限ACL

ACL accsee control list 访问 控制 列表

ACL是UGO的补充

区别:
ACL文件权限管理:设置不同用户,不同的基本权限(r、w、x)。对象数量不同。
UGO设置基本权限:只能一个用户,一个组和其他人。

语法:
设置acl权限:
Setfacl -m u:alice:rw /home/test.txt
命令 设置 用户/组:用户名/组名:权限 文件对象
Setfacl -m u:user01:rw /root/file9
Setfacl -m g:user01:r /root/file9
在这里插入图片描述

Setfacl -m o::rw /root/file9
在这里插入图片描述
Setfacl可以设置基础权限。(基本不用,建议还是chmod)

单个删除acl权限

Setfacl -x g:user01 /root/file9
Setfacl -x u:user01 /root/file9
在这里插入图片描述

清除所有acl权限

Setfacl -b /root/file9
在这里插入图片描述

清除所有acl权限

Setfacl -b /root/file9
在这里插入图片描述

查看acl权限:

Getacl /root/file9
在这里插入图片描述
从上到下
文件名;
属主;
属组;
User的UGO权限;
User的ACL权限;
Group的UGO权限;
Group的ACL权限;
Mask权限;这里指的是能给用户授予的ACL最大权限;
Ohter的UGO权限;

三、特殊权限

1.特殊位suid、sgid、Sticky

Suid(setuid)

例如,/usr/bin/passwd 权限码中就有s。
在这里插入图片描述

而这个Suid权限,就是当用户去执行这个命令或者用这个命令工具的时候,临时变更为这个文件的所有者。
注意:这个权限,是在文件所有者的权限中。

添加suid权限:

chmod u+s /bin/cat
给cat文件加一个suid的权限。 sui权限就是使用这个命令时暂时变更成这个文件的所有者。再使用普通用户cat /etc/shadow 就能看到shadow内容了。
在这里插入图片描述
当前直接cat是没有权限查看shadow的。
在这里插入图片描述
设置suid的权限给cat命令,这个/bin/cat就是cat命令的文件
在这里插入图片描述
这时候切换普通用户,直接就能cat到shadow的内容了。

chmod 4755 /usr/bin/nano
4就是Suid的权限。其他权限正常赋予。

删除suid权限

chmod u-s /bin/cat
在这里插入图片描述

chmod 755 /bin/cat
正常赋予权限,也能去除suid权限。

Sgid:

sgid(SetGID):Sgid权限,就是当用户去执行这个命令或者用这个命令工具的时候,临时变更为这个文件的所属组。
注意:这个权限,是在文件所属组的权限中。

添加Sgid权限:

chmod g+s /bin/cat
给cat文件加一个sgid的权限。 这个时候,因为cat的所属组是root,sgid权限就是使用这个命令时暂时变更成这个文件的所属组。

chmod 2755 /usr/bin/nano
2就是Sgid的权限。其他权限正常赋予。

去除sgid权限:

chmod g-s /bin/cat
去掉cat文件所有者的sgid权限。

chmod 755 /bin/cat
正常赋予权限,就能去除sgid权限。

sgid作用于文件夹:

chmod g+s /data
给/data目录一个sgid的权限。/data目录当前已经有了sgid的权限。则在/data下面创建的所有文件,其文件所属组都是/data的文件所属组。

注意:suid、sgid权限只针对二进制文件。
需要所有者对该文件有x权限。
暂时变更为文件拥有者身份只在执行过程中有效。
无法针对脚本程序。

Sticky:
授予目录的权限,一旦目录有了这个权限。那么该目录下的文件只有文件所有者才能删除。

添加Sticky权限:

Chmod o+t /tmp/
在这里插入图片描述

chmod 1777 /data
1 就表示sticky权限。

Sticky权限码:

rwx rwx rwt
t会替代原本other的x。但是x仍然存在的,可以getfacl查看。
在这里插入图片描述

去掉sticky权限:

chmod o-t /data
在这里插入图片描述
在这里插入图片描述

chmod 777 /data

2.文件属性chattr

chattr +i 文件
该文件不能删除,改名,更改。
在这里插入图片描述

lsattr可以查看是否有chattr的权限
在这里插入图片描述

测试chattr的i权限是否成功
在这里插入图片描述

Chattr -i 文件
去掉chattr的i权限
在这里插入图片描述

Chattr +a 文件
只能在文件中追加内容。设置目录则只能给目录内新增文件,没办法删除目录内的其他文件
在这里插入图片描述

chattr -a 文件
去掉chattr的a权限。

3.权限掩码umask

语法:

Umask
直接执行,返回当前用户的umask值,root是0022,普通用户是0002。
在这里插入图片描述

概念:

Umask是控制用户创建一个文件夹或者文件的默认权限

Umask(umask)+default(默认权限)=创建文件最大权限666/创建文件夹最大权限777
文件最大权限如果是777,那么就会有执行权限。而执行权限本身就很危险。基于安全考虑,就限定了创建一个文件最大权限是666。
由上述的公式umask+default=666/777。则可以知道,
一个文件创建出来的默认权限就应该是666-umask值:
普通用户:umask是0002,创建最大文件权限666,则666-0002=664,对位详见。则具体权限是rw- rw- r–。
root用户:umask是0022,创建最大文件权限666,则 666-0022=644 对位相减。则具体权限是 rw- r-- r–。

一个文件夹或者目录创建出来的权限是777-当前用户的umask值:
普通用户:umask是0002,创建最大文件夹权限是777,则 777-0002=775 对位相减。则具体权限是 rwx rwx r-x。
root用户:umask是0022,创建最大文件夹权限是777,则 777-0022=755 对位相减。则具体权限是 rwx r-x r-x。

umask 掩码,真正算法是将umask值和最大的文件权限转换成二进制。让umask对最大文件权限进行对位遮掩。0是不遮,1是遮掩。
但是这样太麻烦。 所以衍生出另外一种算法:
新建file权限是:666-umask,如果所得结果某位存在奇数权限,那么其权限+1.
例:
umask是321。则666-321=345 。 但是奇数权限+1。就是446。
新建dir权限:777-umask。 无论是否奇数,不变。

设置umask

umask 0022
暂时设置当前用户的umask为0022。

永久设置有两种方法:

1.如果需要所有用户的umask的值一直是某个值。则修改/etc/profile文件
在这里插入图片描述
在最后一行直接新增一列即可。
然后source /etc/profile
这里source是重新加载profile文件的。
在这里插入图片描述

2.需要某个用户的umask改变,则在该用户的家目录下,修改.bashrc这个文件,注意是隐藏文件。如果没有,可以新建。
在这里插入图片描述
在这里插入图片描述
然后同样source一下即可。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值