课时16 Linux扩展权限(默认权限和特殊权限)

来源:互联网 发布:mac下载工具推荐 编辑:程序博客网 时间:2024/06/08 04:33

Linux课程学习笔记来源于网易云课堂:Linux 入门基础

1 linux 默认权限

新建文件默认权限:-rw-rw-r--

新建文件夹默认权限:  -rwxrwxr-x

l  每一个终端都拥有一个umask属性,来确定新建文件、文件夹的默认权限

l  umask 使用数字权限方式表示,如:022

l  目录的默认权限:777-umask

l  文件的默认权限:666-umask

l  一般,对于普通用户默认的umask是002,root用户的默认是022

l  即对于普通用户来说:

新建文件的权限是:666-002=664

新建目录的权限是:777-002=775

一般普通用户的umask是002,root用户是022

命令umask用来查看、设置默认的umask值:

       umask022

2 特殊权限

除普通权限外,还有三个特殊权限:(root不受文件权限的限制,权限无穷大)

       权限      对文件的影响                                                                   对目录的影响

l  suid   以文件的所属组用户身份执行,而非执行文件的用户  无

eg:例如,修改用户的密码,/usr/bin/passwd文件在passwd指令运行时,不是以执行文件的用户(普通用户),而是以文件的所属用户(root用户)进行执行的

l  sgid   以文件所属组身份执行                                                在该目录中创建的任意新文件的所属组与该目录的所属组相同

eg:例如,对新建一个文件夹后,有一个默认所属组,对其所属组修改后,在该文件夹创建新的文件后,文件的所属组还是原来的默认所属组,并不是新修改后的所属组。在这种情况下,该命令可以解决该问题。

l  sticky  无                                                                                       对目录拥有写入权限的用户仅可以删除其拥有其拥有的文件,无法删除其他用户的文件

eg:例如,两个用户共用一个目录,都可以对该目录进行读写,但是一般情况下,一个用户进入该目录,可以读取另外一个用户的文件,同时可以删除该文件。从实际来讲,一个用户的文件应当仅可以由该用户删除,其他用户无法删除的。在此情况下,需要使用到该命令。

3 设置特殊权限

l  设置suid:(都是设置给可执行文件的,会用高亮显示)

chmod u+s dirtemp

l  设置sgid:

chmod g+s filetemp   (将group的权限的x位替换为s

l  设置sticky:

chmod o+t filetemp (将others的权限的x位替换为t

l  与普通权限一样,特殊权限也可以使用数字方式表示

- SUID = 4

- SGID = 2

- Sticky = 1

所以可以通过以下命令设置:

chmod 4755 filename

4 练习

[root@localhost liqianzhong]# groupadd testgrp[root@localhost liqianzhong]# useradd -G testgrp user1[root@localhost liqianzhong]# useradd -G testgrp user2[root@localhost liqianzhong]# mkdir /tmp/test[root@localhost test]# cd /tmp[root@localhost tmp]# chgrp testgrp test[root@localhost tmp]# chmod g+rwx test[root@localhost tmp]# su - user1[user1@localhost ~]$ cd /tmp/test[user1@localhost test]$ touch user1[user1@localhost test]$ lsuser1[user1@localhost test]$ exitlogout[root@localhost tmp]# su - user2[user2@localhost ~]$ cd /tmp/test[user2@localhost test]$ ls[user2@localhost test]$ exitlogout[root@localhost tmp]# chmod o+t test[root@localhost tmp]# ls -ld testdrwxrwxr-t. 2 root testgrp 4096 Aug  3 11:12 test[root@localhost tmp]# su - user1[user1@localhost ~]$ cd /tmp/test[user1@localhost test]$ ls[user1@localhost test]$ touch user1[user1@localhost test]$ lsuser1[user1@localhost test]$ exitlogoutuser1[user2@localhost test]$ rm -rf user1[user2@localhost test]$ ls[root@localhost tmp]# su - user2[user2@localhost ~]$ cd /tmp/test[user2@localhost test]$ lsuser1[user2@localhost test]$ rm -rf user1rm: cannot remove `user1': Operation not permitted[user2@localhost test]$ cat user1[user2@localhost test]$