自學Linux Shell7.3-linux共享文件

點擊返回 自學Linux命令行與Shell腳本之路html

7.3-linux共享文件

在linux系統中共享文件的方法是經過建立組。linux

1. linux爲每一個文件和目錄存儲了3個額外的信息位:

  • SUID設置用戶ID 
    當文件被用戶使用時,程序會以文件屬主的權限運行
  • SGID設置組ID     
    對文件來講,程序會以文件屬組的權限運行
    對目錄來講,目錄建立的新文件會以目錄的默認屬組做爲默認屬組
  • 粘着位    
    進程結束後文件還駐留在內存中

SUID設置用戶ID用s表示。shell

  • 用戶對應的前三位的x位上若是有,就用小s表示suid。當x位上沒有x的時候,suid就是大寫的S。
  • 設置用戶ID位就是讓普通用戶能夠以root或其餘用戶的權限運行只有root或其它用戶才能運行的程序或命令,或程序命令對應原本沒有權限操做的文件等。
  • 僅對二進制命令程序有效,不能用在shell等相似腳本文件上。shell腳本僅僅是調用二進制命令程序而已,所以,具體權限還須要看二進制命令自己。
  • 二進制命令程序須要有可執行權限x\
  • suid權限僅在程序執行過程當中有效。
  • 執行命令的任意用戶能夠得到該命令程序執行期間擁有這的權限。
  • suid是雙刃劍,是一個比較危險的功能,對系統安全有必定的威脅。

SGID設置組ID    
與suid不一樣,sgid既能夠針對文件,也能夠陣地目錄設置。sgid是針對用戶權限修改的。
sgid主要用在目錄中,當爲某個目錄設置了sgid位之後,在該目錄中建立的文件具備該目錄的全部這權限,而不是建立該文件的用戶的默認全部者。這樣,使得在多個用戶之間共享一個目錄中的文件 變得簡單。安全

 對文件,sgid功能以下:ui

  • sgid僅對二進制命令程序有效。
  • 二進制命令或程序須要可執行權限。
  • 執行程序的任意用戶能夠得到該命令程序執行期間所屬組的權限。

 對目錄,sgid功能以下:命令行

  • 用戶在此目錄下建立的文件和目錄,具備和此目錄相同的用戶組設置。

粘着位 sticky bit htm

粘滯位功能用得少,不過對於/tmp目錄這樣的,是整個系統臨時文件存放地,須要設置粘滯位。
一個目錄即便開發全部權限rwxrwxrwx,若是設置了粘滯位,除非目錄屬主和root用戶有權限刪除它,其它用戶不能刪除這個目錄。
讓全部用戶都具備/tmp目錄全部權限,可是每一個用戶只能刪除本身的文件。用t表示,若是沒有執行權限,那麼就是T。/tmp目錄誰均可以寫,經常是木馬第一手跳板地點。blog

 如上圖,/tmp權限位最後一位是t。這就是設置了粘滯位。進程

2. 如何共享文件

經過以上的介紹,SGID位對共享文件很是重要,如下就是創建共享文件步驟:內存

  • 用mkdir命令建立共享目錄
  • 經過chgrp命令將目錄的默認屬組改爲包含全部須要共享文件的用戶的組
  • 更改目錄的SGID位置位,確保目錄中的新建文件都用shared做爲默認屬組
  • 全部組成員將umask值設置成文件對屬組成員可寫
  • 最後,,組成員能到共享目錄下建立新文件,同時shared組內的全部用戶都能訪問這個文件
相關文章
相關標籤/搜索