2周第4次課 特殊權限set_uid、set_gid、stick_bit 軟鏈接 硬鏈接

一、 特殊權限 set_uid

[root@centos701 ~]# ls -l /usr/bin/passwd

-rwsr-xr-x. 1 root root 27832 6月  10 2014 /usr/bin/passwd

上面的 s 就是 set_uid 的權限,它能讓普通用戶臨時擁有該命令的所有者身份進行命令的運行。

此權限只是作用在二進制可執行文件上。


設置方法(以授權/usr/bin/ls 爲例)

1.直接增加s權限

[root@centos701 ~]# chmod u+s /usr/bin/ls

[root@centos701 ~]# ls -l /usr/bin/ls

-rwsr-xr-x. 1 root root 117656 11月  6 2016 /usr/bin/ls

2. 少了 x 權限變成了大 S,但不影響普通用戶執行

[root@centos701 ~]# chmod u=rws /usr/bin/ls

[root@centos701 ~]# ls -l /usr/bin/ls

-rwSr-xr-x. 1 root root 117656 11月  6 2016 /usr/bin/ls


二、特殊權限 set_gid

[root@centos701 ~]# ls -l /usr/bin/ls

-rwxr-sr-x. 1 root root 117656 11月  6 2016 /usr/bin/ls

與 set_uid類似 ,其作用是保證普通用戶臨時擁有該命令的所有組身份。可作用在文件和目錄上。作用在目錄上的時候,普通用戶在其下創建子目錄或者子文件的時候與本目錄所屬組相同。


設置方法

[root@centos701 ~]# chmod g+s /usr/bin/ls


三、特殊權限 stick_bit (防刪除位)

[root@centos701 ~]# ls -ld /tmp/

drwxrwxrwt. 11 root root 4096 10月 26 09:34 /tmp/

上面的t 表示 stick_bit 表示,通過權限可得任何用戶都可以對其讀寫,但在有 t 的時候。

誰的文件誰做主,只有創建者和 root才能進行刪除操作(由其所屬父目錄決定是否具有防刪除功能),同時,只要對目錄有w 權限,即可刪除目錄下任何文件。


設置方法

[root@centos701 ~]# chmod o+t /usr/bin/ls


四、軟鏈接文件(彩色)

類似於 windows 的快捷方式,只佔用很少的磁盤空間。但路徑越長軟鏈接文件越大,軟鏈接最多的在/lib64/下

[root@centos701 ~]# ls -l /bin

lrwxrwxrwx. 1 root root 7 10月 17 21:56 /bin -> usr/bin

[root@centos701 ~]# ls -l /sbin

lrwxrwxrwx. 1 root root 8 10月 17 21:56 /sbin -> usr/sbin


設置方法

ln -s [源文件路徑(支持相對和絕對)] [目標路徑(支持相對和絕對)]   

儘量使用絕對路徑,如:給/tmp/yum.log 做一個軟鏈接到/root/111/yum.log

[root@centos701 ~]# ln -s /tmp/yum.log /root/111/yum.log

[root@centos701 ~]# ls -l !$

lrwxrwxrwx. 1 root root 12 10月 26 22:19 /root/111/yum.log -> /tmp/yum.log

該方法同樣適用於文件夾的軟鏈接。


老師技巧分享:

[root@centos701 ~]# df -h

文件系統        容量  已用  可用 已用% 掛載點

/dev/sda3        26G  1.8G   25G    7% /

devtmpfs        479M     0  479M    0% /dev

tmpfs           489M     0  489M    0% /dev/shm

tmpfs           489M  6.7M  482M    2% /run

tmpfs           489M     0  489M    0% /sys/fs/cgroup

/dev/sda1       197M  109M   89M   56% /boot

tmpfs            98M     0   98M    0% /run/user/0

系統中有一個進程 aming 一直往/boot/aming.log 下寫數據,此時/boot 分區快滿了,我們可以考慮把 /boot/aming.log 移動到比較空閒的分區 /下。

1.cp /boot/aming.log /aming.log

2.rm /boot/aming.log ;ln -s /aming.log /boot/aming.log

這樣就完成了真實文件從/boot 到/的遷移,並且 aming 進程也不會出錯


五、 硬鏈接文件

不支持對目錄做鏈接,不支持跨分區做文件硬鏈接(因爲每個分區都有一套獨立的 inode,會造成 inode 重複),用戶創建的鏈接文件和源文件的 inode 號一樣,這兩個相互爲硬鏈接

如 :ln 1.txt 1_heard.txt    ---創建好後的硬鏈接1_heard.txt與1.txt擁有相同的 inode 號


軟鏈接和硬鏈接的區別:刪除鏈接的源文件後,軟鏈接就會失效,但是硬鏈接就不會受影響,只會造成 inode 號的改變。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章