文件需要有讀權限的話,只需要r權限即可,r權限表示可以讀取文件的內容
如果需要有執行權限的話,這兒就需要注意了, 不僅需要有x權限,還需要有r權限,這樣才能對文件具有執行的權限,很多人不明白這一點
還需要注意就是,對於root用戶來說,不管對文件具有什麼權限,都可以執行任何權限
對於普通用戶來說,即使文件所屬主是自己,但是沒有權限照樣不能讀寫文件,同樣需要賦予相應的權限才能操作文件
[code] 1. r權限僅僅代表用戶能夠看見目錄 2. 要想查看目錄中的文件,還需要具有x權限,所以文件的x權限表示能夠進入目錄(和文件不一樣,目錄沒有執行的說法) 3. w權限表示能夠在目錄下新建文件
SUID(set user id),suid一般用於執行文件,當其他用戶對文件具有可執行權限時,如果該文件具有suid權限(user的x權限變為s或者S),那麼該用戶運行該文件,實際上是以文件所有者的身份在運行文件,如下所示
對於suid.sh 文件,所屬組具有執行權限,其他用戶也具有執行權限,而且在它自己的執行權限x處,顯示的是s。所以,當用戶運行該文件時,實際上是以文件所有者(在這兒是root)的身份在運行該文件。
2.SGID(set group id),suid一般用於目錄,當用戶對該目錄具有所有權限時,如果再具有SGID權限的話,此時,如果用戶在該目錄下創建文件,那麼創建的文件的所屬組將是該目錄的所屬組,但還是歸創建者用戶所有。如下所示
組用戶的執行權限x處,現在顯示的是s(s代表組用戶有x權限,S代表組用戶沒有x權限,s和S是為了區分所屬用戶的x權限),表示該文件具有sgid權限,所以所有用戶在sgid目錄下,都具有創建文件的權限,那麼文件所屬組都是sgid文件的所屬組(在這兒是root組),但有一個問題就是,用戶可以刪除其他用戶新建的文件,為了解決這個問題,我們接下來看sbit權限
SBIT權限(sticky bit粘滯位),同樣的,SBIT權限時在other用戶的x執行權限上加了一個t或者T(t和T與上面的s和S的區別相同),如果用戶對該文件具有所有權限(r,w,x),而且具有sbit(在other的x權限處為t時)權限,那麼該用戶就可以在這個文件夾中(圖中是sbit文件夾)新建文件,不同用戶都能夠讀取別人的文件,但是不能刪除別人的文件。如下圖
其他用戶可以進入sbit中,新建文件,能夠訪問別人的文件,但是不能刪除別人的文件。
給目錄賦予sgid權限
chmod 2777 sgid
給目錄賦予sbit權限
chmod 1777 sbit