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)
执行者在执行过程中将会获得该程序群组的支持