您的位置:首页 > 其它

特殊权限、软硬链接

2017-10-25 09:35 288 查看

2.18 特殊权限set_uid

s是set_uid的权限
除了所有者之外的其他用户临时拥有所有者的身份。(前提是一个二进制可执行文件),目录页可以设置但是没意义
[root@localhost ~]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 6月 10 2014 /usr/bin/passwd

[root@localhost ~]# ll -d /usr/bin/ls
-rwxr-xr-x. 1 root root 117616 6月 10 2014 /usr/bin/ls
[root@localhost ~]# chmod u+s /usr/bin/ls
[root@localhost ~]# ll /usr/bin/ls
-rwsr-xr-x. 1 root root 117616 6月 10 2014 /usr/bin/ls

[root@localhost ~]# chmod u=rws /usr/bin/ls
[root@localhost ~]# ll /usr/bin/ls //S也可以执行
-rwSr-xr-x. 1 root root 117616 6月 10 2014 /usr/bin/ls
[root@localhost ~]# chmod u+x /usr/bin/ls
[root@localhost ~]# ll /usr/bin/ls
-rwsr-xr-x. 1 root root 117616 6月 10 2014 /usr/bin/ls

2.19 特殊权限set_gid

s是set_gid的权限
执行文件的普通用户拥有所有组的身份
[root@localhost ~]# ll /usr/bin/ls
-rwxr-xr-x. 1 root root 117616 6月 10 2014 /usr/bin/ls
[root@localhost ~]# chmod g+s /usr/bin/ls
[root@localhost ~]# ll /usr/bin/ls
-rwxr-sr-x. 1 root root 117616 6月 10 2014 /usr/bin/ls

给目录增加set_gid权限后,在目录下创建子目录或者文件所属组的名字都是设置set_gid的组名保持一致
[root@localhost ~]# chmod g+s lsx
[root@localhost ~]# touch lsx/2.txt
[root@localhost ~]# 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:防删除位(靠父级目录决定的)
[root@localhost ~]# ll -d /tmp/ //该目录下防止其他用户删除自己的文件。除了root
drwxrwxrwt. 10 root root 4096 10月 21 02:28 /tmp/

[user1@localhost tmp]$ whoami
user1
[user1@localhost ~]$ pwd
/home/user1
[user1@localhost ~]$ mkdir lsx
[user1@localhost ~]$ mkdir lsx/lshx
[user1@localhost ~]$ mkdir lsx/1.txt
[user1@localhost ~]$ ll //目录可读写、执行
drwxrwxrwx. 4 user1 user1 29 10月 21 03:01 lsx
[user1@localhost ~]$ 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用户
[user2@localhost lsx]$ ls
1.txt lshx
[user2@localhost lsx]$ rm -rf 1.txt/ //其他用户可以删除user1用户创建的目录下的文件是因为该文件所在目录的文件权限为777,而不是看删除文件本身的权限
[user2@localhost lsx]$ ll
drwxrwxr-x. 2 user1 user1 6 10月 21 03:01 lshx

2.21 软链接文件

[root@localhost ~]# ls -l /bin //bin是软链接,源文件在/usr/bin
lrwxrwxrwx. 1 root root 7 10月 15 22:36 /bin -> usr/bin
软链接:
[root@localhost ~]# ln -s 源文件 软链接文件

[root@localhost ~]# ln -s /tmp/yum.log /root/111 //软链接文件
[root@localhost ~]# ll
lrwxrwxrwx. 1 root root 12 Oct 21 03:56 111 -> /tmp/yum.log

[root@localhost ~]# ln -s /tmp/lsx /root/222 //软链接目录
[root@localhost ~]# ll
lrwxrwxrwx. 1 root root 8 Oct 21 03:59 222 -> /tmp/lsx

相对路径设置软链接弊端,当目录改名时会出现问题。尽量使用绝对路径设置软链接
[root@localhost tmp]# ln -s yum.log lsx.log //相对路径设置软链接
[root@localhost tmp]# ls -l
lrwxrwxrwx. 1 root root 7 Oct 21 04:04 lsx.log -> yum.log

生产场景:
[root@localhost 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 硬链接文件

[root@localhost ~]# 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已经分好了)
[root@localhost ~]# ln anaconda-ks.cfg 1_hard.txt
[root@localhost ~]# ln -s anaconda-ks.cfg 1_soft.txt
[root@localhost ~]# 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  权限 软链接 硬链接