Linux基础知识系统学习.NO11——基本权限、默认权限与特殊权限

5.权限管理

5.1.基本文件权限

使用ls -l命令可以查看文件的详细信息,最前面的一串符号信息就是表示文件权限,第一个字符,如果是‘-’表示这是一个普通文件,如果是‘d’,表示这是一个目录,如果是’l’表示这是一个软链接文件。
一个文件对于不同用户有不同的权限,最前面的是’u’文件的拥有者,第二个是‘g’文件的拥有者的所属组成员,最后是’o’其他人。文件的权限类型有三种‘r’读,’w’写,‘x’执行。权限还有自己对应的权限数,(r->4) ,(w->2),(x->1)使用命令chmod+[功能]+文件可以修改文件权限,功能格式为:对象(u,g,o)+操作符(+,-,=)+权限(r,w,x).如果对象是a,表示所有人,如chmod a=rwx+文件名,表示赋予所有人所有权限,功能格式还可以是三个连续的数字,如755,也就是将对应用户类型的权限数相加。
chmod可以操作目录,不过操作目录要加选项-R(递归算法)该目录下所有文件都有这个权限,需要注意的是如果目录权限限制了某人没有读权限,那么不管目录下文件的权限是什么该用户都不能读取该文件,也就是说目录的权限检查是在文件之前的,对文件有写权限,但不一定能删除文件,有写权限只能修改文件,是否可以删除要看该文件目录是否有写权限,目录也是文件,有写权限表示可以修改该文件内容,而文件名是目录文件的内容,所以想要删改文件名,需要首先获取目录的写权限。任何文件的基本权限对root用户无效。

5.2.默认权限

对于一个文件,默认属性是666,即默认没有执行权利,需要手动赋予,对于一个目录,默认属性是777,即默认有所有权限。但是实际上并不希望创建的目录或文件对所有人都有同样的权限,所有有了umask权限掩码。
设置了umask之后,每创建的文件或目录就是根据umask的值所表示的权限来减去自身的部分权限,如设置umask为0022(第一个0表示特殊权限掩码,第二个0表示拥有者权限掩码,第一个2表示掩盖同组用户的写权限,第二个2表示掩盖其他用户的写权限)。
目录文件默认最大权限是777,而一般文件的默认最大权限是666,这样新创建一个文件的默认权限就是-rw- r-- r–,而创建一个目录默认权限就是drwx r-x r-x其实就是从默认属性中再去掉umask所表示的权限,就是真正的默认属性。

5.3.文件特殊权限

SetUID:只有可执行的二进制程序才能设定SUID权限,命令执行者要对该程序有执行权,命令执行者在执行该程序时获得该程序文件主人的权限,SetUID权限只在该程序执行过程中有效,即身份改变只是发生在程序执行过程中。
最典型的地方在于,一个普通用户对于shadow文件没有任何权利,但是普通用户却可以通过passwd命令来修改密码,其实也就修改了shadow的文件内容,这看起来是很矛盾的,但是实际上,命令/usr/bin/passwd 的权限是4755,是有SetUID权限的,当普通用户在执行该命令时,就会在执行过程中获得root用户的权利,从而修改密码。而比如cat,vi没有SetUID权限,所以普通用户不能通过这两个命令来查看或修改shadow文件。
SetGID:SetGID针对文件的作用类比SetUID原理功能是一致的,只是在执行该程序时,执行这个程序的执行者升级为该程序的所属组的身份。比如mlocate.db文件的权限是640,但是由于locate命令的权限是2711,所以普通用户也可以通过locate命令检索mlocate.db文件。
SetGID还可以作用于目录,普通用户必须对此目录有rx权限,才能进入此目录,普通用户在此目录中的有效组会变成此目录的属组,如果普通用户对此目录有w权,则新建的文件的默认属组是这个目录的属组。
Sticky BIT:SBIT权限仅仅能对目录有效,普通用户需要对该目录有wx权限,如果没有粘着位,普通用户拥有写权限,所以可以删除此目录下的文件,包括其用户建立的文件,一旦给该目录赋予了粘着位,那么就只有root用户可以删除所有文件,普通用户就只能删除自己的文件,而不能删除他人的权限。
原则上管理者一般不会设置这三个权限。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值