特殊权限软硬链接
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了特殊权限软硬链接相关的知识,希望对你有一定的参考价值。
2.18 特殊权限set_uid
s是set_uid的权限
除了所有者之外的其他用户临时拥有所有者的身份。(前提是一个二进制可执行文件),目录页可以设置但是没意义
[[email protected] ~]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 6月 10 2014 /usr/bin/passwd
[[email protected] ~]# ll -d /usr/bin/ls
-rwxr-xr-x. 1 root root 117616 6月 10 2014 /usr/bin/ls
[[email protected] ~]# chmod u+s /usr/bin/ls
[[email protected] ~]# ll /usr/bin/ls
-rwsr-xr-x. 1 root root 117616 6月 10 2014 /usr/bin/ls
[[email protected] ~]# chmod u=rws /usr/bin/ls
[[email protected] ~]# ll /usr/bin/ls //S也可以执行
-rwSr-xr-x. 1 root root 117616 6月 10 2014 /usr/bin/ls
[roo[email protected] ~]# chmod u+x /usr/bin/ls
[[email protected] ~]# ll /usr/bin/ls
-rwsr-xr-x. 1 root root 117616 6月 10 2014 /usr/bin/ls
2.19 特殊权限set_gid
s是set_gid的权限
执行文件的普通用户拥有所有组的身份
[[email protected] ~]# ll /usr/bin/ls
-rwxr-xr-x. 1 root root 117616 6月 10 2014 /usr/bin/ls
[[email protected] ~]# chmod g+s /usr/bin/ls
[[email protected] ~]# ll /usr/bin/ls
-rwxr-sr-x. 1 root root 117616 6月 10 2014 /usr/bin/ls
给目录增加set_gid权限后,在目录下创建子目录或者文件所属组的名字都是设置set_gid的组名保持一致
[[email protected] ~]# chmod g+s lsx
[[email protected] ~]# touch lsx/2.txt
[[email protected] ~]# ll lsx/
总用量 0
-rw-r--r--. 1 root root 0 10月 21 02:34 1.txt
-rw-r--r--. 1 root user1 0 10月 21 02:37 2.txt
2.20 特殊权限stick_bit
stick_bit:防删除位(靠父级目录决定的)
[[email protected] ~]# ll -d /tmp/ //该目录下防止其他用户删除自己的文件。除了root
drwxrwxrwt. 10 root root 4096 10月 21 02:28 /tmp/
[[email protected] tmp]$ whoami
user1
[[email protected] ~]$ pwd
/home/user1
[[email protected] ~]$ mkdir lsx
[[email protected] ~]$ mkdir lsx/lshx
[[email protected] ~]$ mkdir lsx/1.txt
[[email protected] ~]$ ll //目录可读写、执行
drwxrwxrwx. 4 user1 user1 29 10月 21 03:01 lsx
[[email protected] ~]$ ll lsx/ //
drwxrwxr-x. 2 user1 user1 6 10月 21 03:01 1.txt
drwxrwxr-x. 2 user1 user1 6 10月 21 03:01 lshx
User2用户
[[email protected] lsx]$ ls
1.txt lshx
[[email protected] lsx]$ rm -rf 1.txt/ //其他用户可以删除user1用户创建的目录下的文件是因为该文件所在目录的文件权限为777,而不是看删除文件本身的权限
[[email protected] lsx]$ ll
drwxrwxr-x. 2 user1 user1 6 10月 21 03:01 lshx
2.21 软链接文件
[[email protected] ~]# ls -l /bin //bin是软链接,源文件在/usr/bin
lrwxrwxrwx. 1 root root 7 10月 15 22:36 /bin -> usr/bin
软链接:
[[email protected] ~]# ln -s 源文件 软链接文件
[[email protected] ~]# ln -s /tmp/yum.log /root/111 //软链接文件
[[email protected] ~]# ll
lrwxrwxrwx. 1 root root 12 Oct 21 03:56 111 -> /tmp/yum.log
[[email protected] ~]# ln -s /tmp/lsx /root/222 //软链接目录
[[email protected] ~]# ll
lrwxrwxrwx. 1 root root 8 Oct 21 03:59 222 -> /tmp/lsx
相对路径设置软链接弊端,当目录改名时会出现问题。尽量使用绝对路径设置软链接
[[email protected] tmp]# ln -s yum.log lsx.log //相对路径设置软链接
[[email protected] tmp]# ls -l
lrwxrwxrwx. 1 root root 7 Oct 21 04:04 lsx.log -> yum.log
生产场景:
[[email protected] tmp]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 11G 903M 9.8G 9% /
devtmpfs 260M 0 260M 0% /dev
tmpfs 265M 0 265M 0% /dev/shm
tmpfs 265M 4.4M 261M 2% /run
tmpfs 265M 0 265M 0% /sys/fs/cgroup
/dev/sda1 197M 81M 117M 41% /boot
比如:有一个服务lsx,写日志到了/boot/lsx.log下面,把/boot/lsx.log写的很大。
怎么把/boot/lsx.log,挪到/分区下。因为这个服务路径不能动,所以
cp /boot/lsx.log /lsx.log
ln -s /lsx.log /boot/lsx.log
2.22 硬链接文件
[[email protected] ~]# ll
total 4
-rw-------. 1 root root 973 Oct 15 22:41 anaconda-ks.cfg
drwxr-xr-x. 2 root root 16 Oct 21 04:19 lsx
硬链接:
1.不支持目录做硬链接
2.硬链接时间和大小、inode和源文件一样
3.删除源文件对硬链接没影响,软连接异常
4.真正存文件的是inode(多个硬链接指向一个inode,但是至少留一个硬链接),里面存放数据的信息,inode只占一份空间
5.硬链接不能跨分区(各个分区初始化inode已经分好了)
[[email protected] ~]# ln anaconda-ks.cfg 1_hard.txt
[[email protected] ~]# ln -s anaconda-ks.cfg 1_soft.txt
[[email protected] ~]# ll
-rw-------. 2 root root 973 Oct 15 22:41 1_hard.txt
lrwxrwxrwx. 1 root root 15 Oct 21 04:41 1_soft.txt -> anaconda-ks.cfg
-rw-------. 2 root root 973 Oct 15 22:41 anaconda-ks.cfg
本文出自 “帕多克的痴迷” 博客,请务必保留此出处http://lsxme.blog.51cto.com/12400127/1975890
以上是关于特殊权限软硬链接的主要内容,如果未能解决你的问题,请参考以下文章
特殊权限set_uid,set_gid,stick_bit和软硬链接
特殊权限set_uid,set_gid,stick_bit,软硬链接
2.18-2.20特殊权限set_uid/set_gid/stick_bit;20.21/2软硬链接