set uid 、set gid 、sticky bit、軟連接、硬連接

特殊權限set_uid

概念:set_uid,當普通用戶執行passwd命令時,能夠**臨時**擁有root權限。
set_uid 該權限針對二進制**可執行文件**,如:ls passwd

以下命令,查看node

[root@zhangzhen-01 ~]# which passwd #查看這個命令在哪
/usr/bin/passwd
[root@zhangzhen-01 ~]# ls -l /usr/bin/passwd #查看passwd文件權限
-rwsr-xr-x. 1 root root 27832 6月 10 2014 /usr/bin/passwd #這裏的s表示什麼含義呢,s就是set_uid的權限,這個權限可讓普通用戶(全部者)當他執行帶set_uid這個命令時,這時候他就會被賦予這個全部者的臨時權限。windows

修改密碼權限的配置文件在:/etc/shadow下bash

[root@zhangzhen-01 ~]# ls /etc/shadow
/etc/shadow
[root@zhangzhen-01 ~]# ls -l !$ #在這裏咱們能夠看見,這個文件是很是嚴謹,禁止任何用戶對它進行任何操做。
ls -l /etc/shadow
----------. 1 root root 645 3月 28 21:58 /etc/shadow測試

注:在這裏,root是超級用戶權限,能夠對他進行操做。

如何讓一個普通用戶臨時擁有root權限,操做以下:

[root@zhangzhen-01 ~]# useradd zhang-02 #建立一個zhang-02的用戶
[root@zhangzhen-01 ~]# tail -n3 /etc/passwd #查看最後三行是否建立成功
zhangzhen-03:x:1000:1000::/home/zhangzhen-03:/bin/bash
user1:x:1001:1001::/home/user1:/bin/bash
zhang-02:x:1002:1002::/home/zhang-02:/bin/bash
[root@zhangzhen-01 ~]# su - zhang-0 #切換用戶
[zhang-02@zhangzhen-01 ~]$ whoami #查看當前是哪一個用戶登陸的
zhang-02ui

如何給一個可執行的文件添加「s」(讓普通用戶臨時擁有全部者權限),例以下:spa

[zhang-02@zhangzhen-01 ~]$ ls /root/ #普通用戶沒有訪問的權限
ls: 沒法打開目錄/root/: 權限不夠
[zhang-02@zhangzhen-01 ~]$ ls -ld /root/ #來看一下這個文件的權限,由於是普通用戶,因此訪問不了root
dr-xr-x---. 6 root root 185 3月 29 00:21 /root/code

在這裏,咱們回到root用戶下,執行:

2018.3.29 二週第四次課

.
在這裏,綠色的/usr/bin/ls還並無賦予「s權限」blog

咱們能夠給這個ls文件添加「s」權限
[root@zhangzhen-01 ~]# chmod u+s /usr/bin/ls
再來查看這個文件權限
2018.3.29 二週第四次課
添加成功!it

再回到普通用戶下,實驗一下是否能夠查看root下的文件呢io

[zhang-02@zhangzhen-01 ~]$ ls /root/ #ok,這這裏能夠查到
anaconda-ks.cfg dior dior2 dior3
[zhang-02@zhangzhen-01 ~]$ ls -ld /root/
dr-xr-x---. 6 root root 185 3月 29 00:21 /root/

**如何刪除已添加的「s」,權限,命令以下:

[root@zhangzhen-01 ~]# chmod u-s /usr/bin/ls

特殊權限set_gid (能夠針對目錄,所屬組的身份,)該目錄的背景顏色的是×××

概念:其功能和操做和set uid是同樣的
該權限能夠做用在二進制可執行文件,也能夠做用在目錄上;
看成用在文件上時,其功能和操做和set uid是同樣的;
它會使文件在執行階段具備文件所屬組的權限;
目錄被設置這個權限後,任何用戶在此目錄下建立的文件都具備和該目錄所屬的組相同的組。

操做命令以下:
2018.3.29 二週第四次課

特殊權限stick_bit

概念:能夠理解爲防刪除位,文件是否能夠被某用戶刪除;
主要取決於該文件所在的目錄是否對該用戶具備寫權限;
若是沒有寫權限,則這個目錄下的全部文件都不能刪除;
同時也不能添加新的文件。
若是但願用戶可以添加文件但不能刪除該目錄下其餘用戶的文件時;
則能夠對父目錄增長該權限,如設置後,就算用戶對目錄具備寫權限;
也是不能刪除其餘用戶的文件。
命令以下:chmod u=b /tmp/

示例
在普通用戶下建立個文件

[zhang-02@zhangzhen-01 tmp]$ touch zhang1 #在/tmp下建立個zhang1的文件
[zhang-02@zhangzhen-01 tmp]$ ls
zhang1
[zhang-02@zhangzhen-01 tmp]$ chmod 777 zhang1 #賦予最高的權限
[zhang-02@zhangzhen-01 tmp]$ ls -l zhang1#查看這個文件的全部者和所屬組是誰
-rwxrwxrwx. 1 zhang-02 zhang-02 13 3月 29 23:26 zhang1

切到另一個普通用戶 user1下,查看是否能夠編輯和刪除。

[root@zhangzhen-01 tmp]# su - user1
[user1@zhangzhen-01 tmp]$ ls
zhang1
[user1@zhangzhen-01 tmp]$ vi zhang1 # 能夠編輯,已測試
[user1@zhangzhen-01 tmp]$ rm -f zhang1 #可是在這裏並不能夠刪除
rm: 沒法刪除"zhang1": 不容許的操做

軟連接文件

概念:軟鏈接相似於windows的快捷方式,
軟連接不僅能夠鏈接文件,也能夠連接目錄。
軟鏈接後面能夠跟絕對路徑;
也能夠跟相對路徑,相對路徑的話得在你要去的目錄下
命令以下:ln -s [源文件] [目標文件]
### 建議使用絕對路徑。
若是你建立軟鏈接不存在的時候,會紅色常閃,那麼直接在這個路徑下touch一個文件便可。

軟鏈接是什麼樣子呢,以下圖,淺藍色:

2018.3.29 二週第四次課

如何建立軟連接,命令以下:ln -s [源文件] [目標文件]
例:

[root@zhangzhen-01 /]# mkdir /root/111
[root@zhangzhen-01 /]# ln -s /tmp/yum.log /root/111/
[root@zhangzhen-01 /]# ls -l /root/111/
總用量 0
lrwxrwxrwx. 1 root root 12 3月 29 23:55 yum.log -> /tmp/yum.log

2018.3.29 二週第四次課

如何建立軟連接目錄,操做以下:ln -s [源目錄] [目標目錄]

[root@zhangzhen-01 /]# ln -s /tmp/dior/ /root/111/zhang
[root@zhangzhen-01 /]# ls -l /root/111
總用量 0
lrwxrwxrwx. 1 root root 12 3月 29 23:55 yum.log -> /tmp/yum.log
lrwxrwxrwx. 1 root root 10 3月 29 23:59 zhang -> /tmp/dior/
2018.3.29 二週第四次課

硬連接文件

概念:硬連接不支持對目錄作硬連接,只支持對文件作。
即使是硬連接源地址被刪除,也不受影響,至關於windows複製。
inode號若是相同有N個文件,也不會佔用空間,由於數據都存在了inode裏面。
文件作硬連接能夠,可是有一個前提,不能夠跨分區
命令以下 :ln [源地址] [目標地址]

查看inode號:

#以下命令中,第二段表示inode號 [root@zhangzhen-01 ~]# ls -l 總用量 8 drwxr-xr-x. 2 root root 34 3月 29 23:59 111 -rw-------. 1 root root 6901 3月 27 22:40 anaconda-ks.cfg drwxr-xr-x. 2 root user1 32 3月 28 22:44 dior d---------. 3 root root 45 3月 28 23:26 dior2 drwxrwxr-x. 2 root root 19 3月 29 00:22 dior3 [root@zhangzhen-01 ~]# ls -i #查看inode號 499815 111 33574978 anaconda-ks.cfg 499801 dior 33575028 dior2 16784710 dior3

相關文章
相關標籤/搜索