天天看點

day09-linux特殊權限及軟連接配接

上次整理了關于linux系統的檔案及目錄權限,其實為了系統的安全性:

 linux還有一些特殊權限: set_uid:(主)  set_gid:(組)    stick_bit:(其他)

1、set_uid: 授權普通使用者臨時擁有檔案/目錄所有者的權限:該權限隻能授于二進制可執行檔案:

如:當普通使用者要給自己修改密碼:則需要臨時擁有root使用者對passwd的屬主權限才可以:如下:

1

2

3

4

<code>[root@localhost ~]</code><code># which passwd        #檢視passwd的路徑</code>

<code>/usr/bin/passwd</code>

<code>[root@localhost ~]</code><code># ls -l /usr/bin/passwd</code>

<code>-rwsr-xr-x. 1 root root 27832 6月 10 2014 </code><code>/usr/bin/passwd</code>   <code>#其所屬主為rws.擁有uid權限.</code>

 1.1;那麼如何設定讓普通使用者擁有對檔案的臨時權限呢:

格式: chmod    u+s    filename     #u表示檔案所屬主的加上s權限則表示擁有uid權限:

5

6

<code>[root@localhost ~]</code><code># chmod u+s /usr/bin/ls      #給使用者添加get_uid權限:</code>

<code>[root@localhost ~]</code><code># ls -ld /usr/bin/ls         #檢視get_uid權限:        </code>

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

<code>[root@localhost ~]</code><code># su - yuanhh        #切換到普通使用者:</code>

<code>[yuanhh@localhost ~]$ </code><code>ls</code> <code>/root/</code>

<code>anaconda-ks.cfg                        </code><code>#可以檢視此目錄:</code>

即一般普通使用者是不能檢視/root/的目錄的檔案:隻有加入了set_uid才可以。

1.2:如何取消普通使用者對檔案的臨時權限:

格式:chmod   u-s   filename    #表示取消檔案的所屬主的s權限則表示取消uid:

<code>[root@localhost ~]</code><code># chmod u-s /usr/bin/ls         #取消二進制檔案的uid權限:</code>

<code>[root@localhost ~]</code><code># su - yuanhh</code>

<code>上一次登入:四 10月 26 21:26:41 CST 2017pts</code><code>/0</code> <code>上</code>

<code>ls</code><code>: 無法打開目錄</code><code>/root/</code><code>: 權限不夠                 </code><code>#發現會無法檢視root的目錄:</code>

另外:如果二進制檔案的所屬主有執行權限,則會顯示小s,如果沒有執行權限,隻會顯示大S權限:

2、set_gid:針對使用者組來操作,有以下兩種用法:

2.1:可以用于檔案,可以讓普通使用者臨時擁有所屬組的身份及權限,同set_uid的用法相同:

2.2:可以用于目錄,但對此目錄修改了set_gid權限後,再在此目錄下再建立檔案/目錄,其所屬組與其父目錄是一緻的。

2.3:那麼如何給目錄增加set_gid權限:

格式:chmod   g+s     filename/dir           #給某個目錄/檔案增加set_gid權限:

[root@localhost ~]# ls -ld yuan/

drwxr-sr-x 4 root yuanhh 42 10月 27 00:18 yuan/

7

8

<code> </code><code>[root@localhost ~]</code><code># chmod g+s yuan          #給yuan這個目錄增加gid權限:</code>

<code>[root@localhost ~]</code><code># ls -ld yuan</code>

<code>drwxr-sr-x 2 root yuanhh 6 10月 27 00:14 yuan</code>

<code>[root@localhost ~]</code><code># cd yuan/</code>

<code>[root@localhost yuan]</code><code># touch 1 &amp; mkdir 2      建立檔案1和目錄2.</code>

<code>[root@localhost yuan]</code><code># ls -al</code>

<code>-rw-r--r--  1 root yuanhh   0 10月 27 00:15 1      </code><code>#兩個檔案的所屬組都變化。</code>

<code>drwxr-sr-x  2 root yuanhh   6 10月 27 00:15 2      </code><code>#兩個檔案的所屬組都變化。</code>

2.4:那麼如何取消給目錄增加的set_gid權限呢:

格式:chmod   g-s   filename/dir         #給某個目錄/檔案減去set_gid權限:

<code>[root@localhost ~]</code><code># chmod g-s yuan           #給檔案減去gid權限:</code>

<code>[root@localhost yuan]</code><code># touch 3 &amp; mkdir 4     #并建立檔案3和目錄4:</code>

<code>[root@localhost ~]</code><code># ls -la yuan/</code>

<code>-rw-r--r--  1 root yuanhh   0 10月 27 00:15 1</code>

<code>drwxr-sr-x  2 root yuanhh   6 10月 27 00:15 2</code>

<code>-rw-r--r--  1 root root     0 10月 27 00:18 3      </code><code>#取消gid後,重新建立的檔案:</code>

<code>drwxr-xr-x  2 root root     6 10月 27 00:18 4      </code><code>#取消gid後,重新建立的檔案:</code>

3、sticky_bit: 防删除位(在此目錄下各個使用者建立的檔案和目錄隻有他自己可以删除,其他使用者不能删除)

在linux下tmp就是一個sticky_bit的檔案:

3.1:那麼如何給某個目錄添加sticky_bit的權限:

格式:  chmod   o+t       dir             #給某個目錄增加t權限:

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

drwxrwxrwt. 13 root root 4096 10月 26 21:49 /tmp/

9

10

11

12

13

<code>[root@localhost ~]</code><code># su - yuanhh    #首先我們全切換都普通使用者yuanhh:</code>

<code>[yuanhh@localhost tmp]$ </code><code>touch</code> <code>1 &amp; </code><code>mkdir</code> <code>2   </code><code>#并建立檔案1和目錄2.</code>

<code>[root@localhost ~]</code><code># su - user1     #然後切換到普通使用者user1.</code>

<code>[user1@localhost tmp]$ </code><code>mkdir</code> <code>3 &amp; </code><code>touch</code> <code>4    </code><code>#并建立檔案4和目錄3.</code>

<code>[user1@localhost tmp]$ </code><code>ls</code> <code>-la</code>

<code>-rw-rw-r--   1 yuanhh yuanhh    0 10月 27 00:27 1       </code><code>#使用者yuanhh建立的檔案</code>

<code>drwxrwxr-x   2 yuanhh yuanhh    6 10月 27 00:27 2       </code><code>#使用者yunhh建立的檔案</code>

<code>drwxrwxr-x   2 user1  user1     6 10月 27 00:28 3       </code><code>#使用者user1建立的檔案 </code>

<code>-rw-rw-r--   1 user1  user1     0 10月 27 00:28 4       </code><code>#使用者user1建立的檔案</code>

<code>[user1@localhost tmp]$ </code><code>rm</code> <code>-fr 1           </code><code>#然後在user1使用者下,無法1檔案。</code>

<code>rm</code><code>: 無法删除</code><code>"1"</code><code>: 不允許的操作</code>

<code>[user1@localhost tmp]$ </code><code>rm</code> <code>-fr 2           </code><code>#然後在user1使用者下,無法2目錄。</code>

<code>rm</code><code>: 無法删除</code><code>"2"</code><code>: 不允許的操作</code>

 3.2:那麼如何取消sticky_bit的權限:

格式:chmod   o-t       dir       #取消目錄的stick_bit的權限:

<code>[root@localhost ~]</code><code># chmod o-t /tmp/</code>

二、硬連結和軟連接配接:

硬連接配接的作用是允許一個檔案擁有多個有效路徑名,這樣使用者就可以建立硬連接配接到重要檔案,以防止“誤删”的功能。隻删除一個連接配接并不影響節點本身和其它的連接配接,隻有當最後一個連接配接被删除後,檔案的資料塊及目錄的連接配接才會被釋放。也就是說,檔案真正删除的條件是與之相關的所有硬連接配接檔案均被删除。

硬連結等于複制了一份屬性資訊:相當于多個檔案有了同一個inode的多張皮,等于多個檔案使用同一個inode資訊,它們之間互相的為硬連結檔案:

可以删除源檔案後,硬連結不受影響:

注意:不會占雙份的空間,因為隻有一個inode.

目錄不支援硬連結:

不支援跨分區連結: 因為不同的分區有自己inode體系,inode不能重複:

 硬連結可由指令 ln 建立,如:

ln ln   /root/1  /tmp/2

 2、軟連結又稱之為符号連接配接(Symbolic Link)。軟連結檔案類似于Windows的快捷方式。它實際上是一個特殊的檔案。在符号連接配接中,檔案實際上是一個文本檔案,其中包含的有另一檔案的位置資訊。

軟連接配接檔案删除源檔案會影響檔案本身:

如下圖:相當于在這個檔案裡存了另外一個檔案的路徑:常用在/lib64/下居多,以粉綠色顯示:

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

lrwxrwxrwx. 1 root root 7 10月 16 22:16 /bin -&gt; usr/bin

連結檔案大小與後面的路徑有關系,

那麼如何做軟連接配接了:如下:

 ln      -s       源連接配接檔案         目标檔案(不存在)

ln   <code>-s      old.</code><code>dir</code>          <code>soft.link.</code><code>dir</code>

如下實驗:我們把yum.log連結到/root/下的111目錄:

[root@localhost tmp]# ln -s /tmp/yum.log /root/111/yum1.log

 [root@localhost tmp]# ls -l /root/111/

lrwxrwxrwx 1 root root 12 12月 21 14:38 yum1.log -&gt; /tmp/yum.log

建議使用寫成絕對路徑的方式,不然容易出現問題:

軟連接配接:可用于工作中解決磁盤占用 空間的問題:

删除軟連結并不影響被指向的檔案,但若被指向的原檔案被删除,則相關軟連接配接就變成了死連結.

注意:硬連結不能連結目錄,不能跨分區連接配接:

本文轉自 芬野 51CTO部落格,原文連結:http://blog.51cto.com/yuanhaohao/2052943,如需轉載請自行聯系原作者

繼續閱讀