20180917 特殊權限與軟硬鏈接

特殊權限set uid

針對可執行的二進制文件,保證普通用戶在執行命令時,能夠臨時得到root權限。例如passwd命令臨時得到root權限來更改密碼。windows

[root@centos01 ~]# which passwd  
/usr/bin/passwd
[root@centos01 ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 6月  10 2014 /usr/bin/passwd  
[root@centos01 ~]# ls -l /etc/shadow  # 查看密碼文件
----------. 1 root root 610 9月  15 17:45 /etc/shadow

[root@centos01 ~]# ls -l /usr/bin/ls
-rwxr-xr-x. 1 root root 117616 6月  10 2014 /usr/bin/ls
[root@centos01 ~]# chmod u+s /usr/bin/ls # 給二進制命令文件添加set uid權限  
[root@centos01 ~]# ls -l /usr/bin/ls
-rwsr-xr-x. 1 root root 117616 6月  10 2014 /usr/bin/ls
[root@centos01 ~]# chmod u=rws /usr/bin/ls
[root@centos01 ~]# ls -l /usr/bin/ls
-rwSr-xr-x. 1 root root 117616 6月  10 2014 /usr/bin/ls 
# S(大寫s) 由於當前全部者沒有執行權限(x)

特殊權限 set gid

用在可執行性二進制文件或者目錄上。看成用在二進制文件時,會在執行階段擁有所屬組的權限;看成用於目錄時,任何用戶在該目錄下建立的文件或子目錄都具備和該目錄相同的所屬組。centos

[root@centos01 ~]# mkdir d0917
[root@centos01 ~]# ls -ld d0917/
drwxr-xr-x. 2 root root 6 9月  18 05:42 d0917/
[root@centos01 ~]# chmod g+s d0917/
[root@centos01 ~]# !ls
ls -ld d0917/
drwxr-sr-x. 2 root root 6 9月  18 05:42 d0917/
[root@centos01 ~]# chown :test01 d0917/
[root@centos01 ~]# touch d0917/f01.txt
[root@centos01 ~]# ls d0917/f01.txt -l
-rw-r--r--. 1 root test01 0 9月  18 05:44 d0917/f01.txt # 所屬組爲test01
[root@centos01 ~]#
[root@centos01 ~]# chmod g-s d0917/ # 去掉set gid權限
[root@centos01 ~]# touch d0917/f02.txt
[root@centos01 ~]# ls d0917/f02.txt
d0917/f02.txt
[root@centos01 ~]# ls d0917/f02.txt -l
-rw-r--r--. 1 root root 0 9月  18 05:45 d0917/f02.txt # 恢復到原來的所屬組
[root@centos01 ~]# ls -l d0917/
總用量 0
-rw-r--r--. 1 root test01 0 9月  18 05:44 f01.txt
-rw-r--r--. 1 root root   0 9月  18 05:45 f02.txt
[root@centos01 ~]# ls -ld d0917/
drwxr-xr-x. 2 root test01 34 9月  18 05:45 d0917/
[root@centos01 ~]# mkdir d0917/sd01
[root@centos01 ~]# ls -ld d0917/sd01
drwxr-xr-x. 2 root root 6 9月  18 05:46 d0917/sd01

特殊權限 stick bit

防刪除權限位。
要刪除一個文件,要看的是文件所在的目錄有沒有寫權限,而不是看刪除的文件自己有沒有權限。(root權限用戶能夠刪除)ui

[root@centos01 ~]# ls /tmp/ -ld
drwxrwxrwt. 8 root root 4096 9月  18 05:38 /tmp/
# 其中權限位上其餘用戶的權限中有個t,就表示了stick bit權限。
# 用戶能夠在含有stick bit權限的目錄下建立文件,但不能刪除該目錄下的文件。

軟鏈接

相似於windows系統中的快捷方式;
命令爲: ln -s 源文件(實體文件) 軟鏈接文件
作軟鏈接儘可能使用絕對路徑,由於若是是相對路徑,更改軟鏈接文件時,對應的鏈接文件可能找不到。
code

硬鏈接

硬鏈接只支持對文件鏈接;
不能跨分區作硬鏈接。 命令爲: ln 源文件(實體文件) 硬鏈接文件blog

軟鏈接不能夠刪除源文件(刪除後就沒有了),而硬鏈接能夠刪除源文件,經過鏈接文件也能獲得文件內容。it

相關文章
相關標籤/搜索