码迷,mamicode.com
首页 > 其他好文 > 详细

特殊权限set_uid set_gid stick_bit 软/硬链接文件

时间:2018-03-30 10:50:15      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:特殊权限 软/硬链接

一、特殊权限set_uid
set_uid:作用是保证普通用户临时拥有该命令所有者的身份,它就会临时拥有root用户的身份(给一个文件设置set_uid的前提是保证该文件是一个二进制、可执行的文件)
[root@localhost ~]# which passwd
/usr/bin/passwd
[root@localhost ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 Jun 10 2014 /usr/bin/passwd //rws权限中的s就是set_uid
例1:
[root@localhost ~]# ls -l /usr/bin/ls //查看/usr/bin/ls权限
-rwxr-xr-x. 1 root root 117656 Nov 6 2016 /usr/bin/ls
[root@localhost ~]# chmod u+s /usr/bin/ls // 给/usr/bin/ls命令添加set_uid权限
[root@localhost ~]# ls -l /usr/bin/ls
-rwsr-xr-x. 1 root root 117656 Nov 6 2016 /usr/bin/ls //给ls命令添加s权限成功
chmod u-s /usr/bin/ls // 给/usr/bin/ls命令删除set_uid权限
[root@localhost ~]# chmod u-s /usr/bin/ls
[root@localhost ~]# ls -l /usr/bin/ls
-rwxr-xr-x. 1 root root 117656 Nov 6 2016 /usr/bin/ls
例2:
[root@localhost ~]# chmod u=rws /usr/bin/ls //使用chmod u=rws 给ls添加s权限
[root@localhost ~]# ls -l /usr/bin/ls
-rwSr-xr-x. 1 root root 117656 Nov 6 2016 /usr/bin/ls //显示出来的是大写S,是因为少x权限
[root@localhost ~]# chmod u+x /usr/bin/ls //添加x权限
[root@localhost ~]# ls -l /usr/bin/ls
-rwsr-xr-x. 1 root root 117656 Nov 6 2016 /usr/bin/ls //正常添加s权限
二、特殊权限set_gid权限
set_gid:作用是普通用户临时拥有所属组的身份,不仅可以作用在文件上,也可以作用在目录上,当set在文件上,作用和set_uid作用类似;当作用在目录上的时候,创建子目录或子文件时,创建的子目录、子文件的所属组和该目录的所属组保持一致。
三、特殊权限stick_bit
stick_bit:防删除位,防止别人删除自己的文件,root用户除外(在/tmp下可以修改其他用户创建的文件,但是不能删除此文件)
需要删除一个目录下的其他用户创建的文件,不是看文件本身的权限,而是要看文件所在目录的权限
四、软链接、硬链接
1、软链接:例如bin就是一个软链接,做软链接可以节约磁盘空间(做软链接尽量使用绝对路径)
软链接格式:ln -s 源文件地址 目标文件地址(软链接文件)
[user1@localhost tmp]$ ls -l /bin
lrwxrwxrwx. 1 root root 7 Mar 25 23:53 /bin -> usr/bin
给/tmp/yum.log做一个软链接:
[root@localhost ~]# ln -s /tmp/yum.log /root/123/yum.log
[root@localhost ~]# ls -l /root/123/yum.log
lrwxrwxrwx. 1 root root 12 Mar 30 06:44 /root/123/yum.log -> /tmp/yum.log
软链接不仅可以链接文件,也可以链接目录:
[root@localhost ~]# ln -s /tmp/222 /root/123/333
[root@localhost ~]# ls -l !$
ls -l /root/123/333
lrwxrwxrwx. 1 root root 8 Mar 30 06:49 /root/123/333 -> /tmp/222
实例应用:
比如一个应用在/boot分区上跑,它会在/boot/hll.log里面不停地写日志文件,但是/boot分区磁盘空间马上就用完,这时,我们可以给/boot/hll.log做一个软链接,把它软链接到一个磁盘空间比较大的磁盘,我们可以这样操作:首先复制一份log文件到跟目录下:cp /boot/hll.log /hll.log ,再删除/boot/hll.log文件:rm /boot/hll.log ,再把/hll.log软链接到/boot/hll.log就OK:ln -s /hll.log /boot/hll.log
2、硬链接:硬链接不支持给目录做硬链接,只支持给文件做硬链接,但前提是不能跨分区(硬链接不会占用多余的空间,因为做完硬链接的两个文件的innod号是一样的)删除硬链接源文件对硬链接没有影响,它仅作为一张皮,但是软链接删除源文件就会报错
硬链接格式:ln 源文件地址 目标文件地址(硬链接地址) (注意:硬链接不能跨分区创建)
查看文件innod号,使用命令:ls -i 文件名
[root@localhost ~]# ls -i /boot
72 config-3.10.0-693.el7.x86_64
67 efi
68 grub
393280 grub2
77 initramfs-0-rescue-0674aa18eaae42169c08dfc8a01b4980.img
76 initramfs-3.10.0-693.el7.x86_64.img
75 initrd-plymouth.img
73 symvers-3.10.0-693.el7.x86_64.gz
71 System.map-3.10.0-693.el7.x86_64
78 vmlinuz-0-rescue-0674aa18eaae42169c08dfc8a01b4980
74 vmlinuz-3.10.0-693.el7.x86_64

特殊权限set_uid set_gid stick_bit 软/硬链接文件

标签:特殊权限 软/硬链接

原文地址:http://blog.51cto.com/13669226/2092768

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!