linux(九)文件权限


 1 类型和权限

 dr-xr-x---. 

第一位:

d(目录)

l(链接)

b(设备文件里可供存储的接口设备)

c(设备文件串行端口设备,如键盘鼠标)

brw-rw----.  1 root disk      8,   0 Jul 31 11:25 sda
brw-rw----.  1 root disk      8,   1 Jul 31 11:25 sda1
brw-rw----.  1 root disk      8,   2 Jul 31 11:25 sda2
crw-rw-rw-.  1 root tty       5,   0 Jul 31 11:25 tty
crw--w----.  1 root tty       4,   0 Jul 31 11:25 tty0
crw--w----.  1 root tty       4,   1 Jul 31 16:40 tty1
crw--w----.  1 root tty       4,  10 Jul 31 11:25 tty10

2 修改权限

修改群组: chgrp 

修改所有者: chown 

修改权限: chmod 

 chmod 770 aaa 

 chmod +x aaa 

  u(user),g(group),o(other),a(all) 

 chmod u=rwx,go=rx .bashrc 

 chmod a-x .bashrc 

3 文件默认权限umask

[root@localhost ~]# umask
0022
[root@localhost ~]# umask -S
u=rwx,g=rx,o=rx
[root@localhost ~]#

对于root用户来说,umask默认是0022,第一位表示特殊权限,后三位表示user,group,other的权限,但是要注意的是umask是默认要拿掉的权限。即我们创建一个目录时,默认拿掉022权限,也就是创建后的目录权限为user=rwx,group=rx,other=rx,w被拿掉了。(2对应的二进制010,即rwx=010,即剔除w权限)

3.1 修改默认权限

[root@localhost ~]# umask 002
[root@localhost ~]# touch test1
[root@localhost ~]# mkdir test2
[root@localhost ~]# ll -d test[12]
-rw-rw-r--. 1 root root    0 Aug  1 09:26 test1
drwxrwxr-x. 2 root root 4096 Aug  1 09:26 test2
[root@localhost ~]#

4 文件隐藏属性

4.1 chattr配置文件隐藏属性

+新增属性,-移除属性,=设定属性

[root@localhost tmp]# chattr +i attrtest
[root@localhost tmp]# rm attrtest
rm: remove regular empty file ‘attrtest’? y
rm: cannot remove ‘attrtest’: Operation not permitted
[root@localhost tmp]#

i属性表示文件不能被删除、改名、设定链接、修改。

4.2  lsattr显示隐藏属性

5 特殊权限SUID,SGID,SBIT

5.1 SUID(Set UID)

/usr/bin/passwd就具有SUID权限。

SUID权限可以让执行者在执行期间拥有root权限。

比如一个普通用户,可以执行passwd修改自己的密码,执行该命令后,密码保存在/etc/shadow这个文件中。所有用户的密码都保存在这个文件中。我们查看一下这个文件的权限

这个文件只有root用户能够修改。

所以一个普通用户修改其自身密码的过程是:

1执行passwd,该命令有SUID权限,所以普通用户执行命令期间权限提升为root

2修改/etc/shadow

3普通用户root权限撤销。

5.2 SGID(Set GID)

执行者在执行过程中将会获得该程序群组的支持

5.3 SBIT(Sticky Bit)