linux 777权限_Linux的权限

Linux的权限系统既简单又复杂,简单在于只有读写执行三种权限,只有拥有者、组用户其他用户三种身份。复杂则在于实际使用的时候又不会了,与自己理解的不一样了。 

权限可以用rwx表示也可以用数字表示,r=4,w=2,x=1。所以rwx=7,rw-=6,r-x=5,r--=4,-wx=3,-w-=2,--x=1,---=0。 

f9a71dcba4457a65285e42397a3ceb18.png

权限对于目录和普通文件的作用有所不同。我们创建这样一个目录结构来探究权限的作用。 

657381300c3103dc526d43620e99db74.png

1、目录权限 

目录的读权限表示用户是否可以查看该目录下的内容,没有读权限像ls这种命令就没权执行。 

56d7d5e3f1d668deb4ae59866e1a8f6c.png

目录的写权限表示用户是否可以修改该目录下的内容,没有写权限像mkdir这种命令就没权执行。

2b56a4251582299182378168436eb1f3.png

目录的执行权限表示用户是否可以在该目录下执行命令,没有执行权限像cd这种命令就没权执行。 

b9e3e4d523dc68b83fe397f82e3c1f78.png

由于大部分操作都是通过命令,没有执行权限,对该目录内几乎就无法进行任何操作了。由于读和写都依赖命令,所以没有执行权限会影响到对目录读和写的权限。(这里不知道有没有例外,欢迎大家补充指正) 

父目录不可读不影响子目录和文件的读权限。 

0549d39f9cebff8b02193ac2175ba572.png

父目录不可写不影响其子目录和文件的写权限。 

3f8f94f05e7642a8fbfe30c540cdc7f4.png

2、文件权限 

文件的读权限表示是否可以查看文件的内容。

ec363fc4d44c65e98b3c6a73a2e95233.png

文件的写权限表示是否可以修改文件的内容。 

f0127872ba5554132d3d416efeec8bbf.png

文件的执行权限表示该文件是否可以作为可执行程序执行。 

a27280f7ff2575aa645a836afc2d6df7.png

其实目录也可以看作是特殊的文件,目录的内容就是目录和文件的索引。

理解了以上内容,对于不同用户的权限也就好理解了,这里pi是主用户,grp是同组成员,other是其他成员。 

b5dcddf6b9ab405c779568b8067093da.png

当前test对于组成员有读和执行权限,所以grp用户可以进入和查看test,但是无法创建文件夹。 

33efa779e7e8491e6d675b67e65e3d86.png

test对于其他成员只有执行权限,所以可以进入目录,但是无法查看内容,不能创建文件。 

2dfe47ae1ace43ad91fa43ecb5d281df.png

对于想要保护目录下所有文件内容的情况,设置目录的读写权限是没用的,必须将执行权限去掉才安全。最妥当的方式是直接设置想要保护的文件的权限,从根源上保护文件。 

除了基本的权限,Linux还提供了三种其他特殊的权限,下面随权限的命令一并简要介绍。

3、改变权限的命令 

chmod:这是核心命令,可以修改所有文件的所有权限,执行需要管理员权限。 

setuid:设置命令的owner权限的执行位为s,表示有执行权限的其他用户以该命令owner的权限执行命令。比如passwd命令。

922caf47a0a85ab7898d04f321e7aa19.png

小写s和大写S的区别是前者文件的owner有执行权限,后者表示文件的拥有者没有执行权限。

setgid:设置命令的组权限的执行位为s,表示有执行权限的其他用户以该命令所在组的权限执行命令。比如crontab命令。 

85f6fabb78f609997a11acdb3cc5ed1b.png

这里大S小s的含义跟user一样,小写s表示组用户有执行权限,大写S表示组用户没有执行权限。 

所以,这两个权限位使用有一定的危险性,尤其用户或组是root,会让其他有执行权限的用户拥有root权限,so设置时要格外小心。

还有一种叫限制删除标志或粘性位,设置其他用户的执行位为t,表示目录内的文件只有其所有者或root可以删除移动,多用于共享目录。比如/tmp目录。 

e52cb517988cf05c4ebc92531d8c0112.png

以下是man手册给出的解释:

受限删除标志或粘性位是单个位,其解释取决于文件类型。对于目录,除非用户拥有文件或目录,否则它可以防止非特权用户删除或重命名目录中的文件, 这称为目录的受限删除标志,通常在全局可写目录(例如/ tmp)中找到。对于某些较旧系统上的常规文件,该位将程序的文本图像保存在交换设备上,因此在运行时将更快地加载, 这就是所谓的粘性位。 

59301f0d4ff7ae58047c8eadde8189f8.png

umask权限掩码 

创建目录的默认权限是777和umask异或的结果;

090206baf94c9b9a3d1722648494765e.png

创建文件的默认权限是777与umask异或的结果再去掉所有的执行权限。 

70bc01fdd7901b102a84d1119d43f5b2.png

以上就是目前我所了解的Linux权限,限于个人水平,肯定有错误和遗漏,欢迎大家指正补充。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值