Linux 文件权限

                        

        我们可以通过 ls -l 命令查看文件的属性。总共分为7栏,下面将探索第一栏的详细内容。 第一栏的10个字符又可细分为4组,第一个字符表示的是文件的性质(文件、目录、连接文件等等); 第二到第十个字符表示的是权限 ,他们三个为一组,共分三组 ,第一组表示的是文件的所有者的权限 ,第二组表示的是文件的所属组的权限 ,第三组表示的是其他人的权限

      我们再来看看文件具体权限表示的意思 

r   可读       可以查看文件内容 
w  可写       可以修改文件内容 
x   可执行    可以执行文件 
注:rwx这三个的位置不能改变,没有就用-代替。

                                              

目录权限的概念

对于普通文件的权限不必细说,但是对于目录的权限位则很容易混淆,这里要注意区分

r (read contents in directory):读取目录里面的内容。 
所以当你具有读取(r)一个目录的权限时,表示你可以查询该目录下的文件。

w (modify contents of directory):编辑目录里面的内容。拥有更改该目录结构列表的权限: 
主要包括 
1、创建新的文件与目录 
2、删除目录下面的文件与目录(无论该文件的权限是什么,这一点很重要) 
3、对目录里面的文件与目录重命名 
4、移动目录里面的文件与目录的位置

x (access directory):代表的是用户能否进入该目录成为工作目录。(相当重要的概念)


文件预设权限: umask

默认的情况下:

  • 若用户创建“文件“则默认没有可执行(x)权限,即只有r、w这两个选项,也就是最大为666,默认权限如下:-rw-rw-rw-
  • 若用户新建“目录“,则由于x与是否可以进入此目录有关,因此默认为所有权限均开放,即为777,默认权限如下:drwxrwxrwx

umask的分数指的是“该默认值需要减掉的权限“;  假设umask为022

  • 新建文件时:(-rw-rw-rw-) - (-----w- -w-) = (-rw-r- -r--)
  • 新建目录时:(drwxrwxrwx) - (-----w- -w-) = (drw-r-xr-x)

umask的配置文件为:/etc/profile 或 ~/.profile 或 ~/.bash_profile,可通过修改这些文件里的umask值,改变其默认的 umask。


特殊权限位:

SET UID对文件的作用,set uid只能设置文件

SET UID的限制与功能:

  • SUID权限仅对二进制程序(binaryprogram)有效,不能够用在shell script上面。
  • 执行者对于该程序需要具有x的可执行权限
  • 本权限仅在执行该程序的过程中(run-time)有效
  • 执行者将暂时具有该程序所有者(owner)的权限
  • 对目录无效

         SUID的目的就是:让本来没有相应权限的用户运行这个程序时,可以访问他没有权限访问的资源。在Linux/Unix下,可执行文件可以被setUid,这使得任意使用者在执行该文件时,都绑定了文件拥有者的权限。就好像文件带了一把尚方宝剑一样,默认情况下,用户执行一个指令,会以该用户的身份来运行进程。指令文件上的强制位,可以让用户执行的指令,以指令文件的拥有者或所属组的身份运行进程。注:这个SUID只能运行在二进制的程序上(系统中的一些命令),不能用在脚本上(script),因为脚本还是把很多的程序集合到一起来执行,而不是脚本自身在执行。同样,这个SUID也不能放到目录上,放上也是无效的。setUid文件通常用来提升使用者的权限.最有代表性的su命令.普通用户可以可以执行该命令,使自己升级为root。


SET GID 强制位的作用

        默认情况下,用户建立的文件属于用户所在的组。但是目录设置了setgid,表示在此目录中,任何人建立的文件,都会属于当前目录所属的组。如果用户在此目录下具有w权限的话,若使用者在此目录下建立新文件,则新文件的群组与此目录的群组相同。
对于目录来说:

  • 用户若对于此目录具有r与x的权限时,该用户能够进入此目录
  • 用户在此目录下的有效用户组(effective group)将会变成该目录的用户组
  • 若用户在此目录下具有w的权限(可以新建文件),则用户所创建的新文件的用户组与此目录的用户组相同。

对于文件来说:  

  • SGID对二进制程序有用
  • 程序执行者对于该程序来说,需具备x的权限
  • 执行者在执行的过程中将会获得该程序用户组的支持。

Sticky Bit 只针对目录有效。其作用是

当用户对于此目录有w,x权限时,建立的文件或目录仅有自己与root才有权力删除。

换句话说:当甲用户对于A目录来说具有群组或其他人的身份,并且拥有该目录的w权限,这表示甲用户对该目录内任何人建立的目录或文件均可进行“删除、更名、移动”等操作。不过,如果将A目录加上了 Sticky Bit 权限位时,则甲只能够针对自己建立的文件或目录进行“删除、更名、移动”等操作,而无法改动其他人的。


特殊权限位设置方法

第一种:八进制表示法

4 为 SUID
2 为 SGID
1 为 SBIT

[root@localhost ~]# chmod 4755 /bin/rm

第二种:助记法

u+s
g+s
o+t

[root@localhost ~]# chmod u+s myfile.txt








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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值