歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> Linux 下目錄權限解答疑難

Linux 下目錄權限解答疑難

日期:2017/3/3 12:50:22   编辑:Linux技術

Linux下目錄權限的詳解

對於linux初學者來說,Linux下的權限是比較難理解得知識點了,對於Linux的高級權限SUID,SGID和SBID更加難理解,接下來我就給大家一步一步詳細講解文件權限。

一.普通權限(r,w,x)

1.對於普通文件來說,如下圖

文件需要有寫權限的話,就必須賦予它w權限

文件需要有讀權限的話,只需要r權限即可,r權限表示可以讀取文件的內容

如果需要有執行權限的話,這兒就需要注意了, 不僅需要有x權限,還需要有r權限,這樣才能對文件具有執行的權限,很多人不明白這一點

還需要注意就是,對於root用戶來說,不管對文件具有什麼權限,都可以執行任何權限

對於普通用戶來說,即使文件所屬主是自己,但是沒有權限照樣不能讀寫文件,同樣需要賦予相應的權限才能操作文件

2. 對於目錄來說

[code]   1. r權限僅僅代表用戶能夠看見目錄
   2.  要想查看目錄中的文件,還需要具有x權限,所以文件的x權限表示能夠進入目錄(和文件不一樣,目錄沒有執行的說法)
   3. w權限表示能夠在目錄下新建文件

二. Linux下的高級權限 SUID,SGID和SBID

講完了linux文件和目錄的基本權限,接下來給大家介紹一下linux下的文件高級權限

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中,新建文件,能夠訪問別人的文件,但是不能刪除別人的文件。

總結,suid的權限時是4,sgid的權限是2,sbit的權限是1

給文件賦予suid權限 chmod 4755 suid //直接把4放到最前面即可,後面三位權限就是普通權限

給目錄賦予sgid權限

chmod 2777 sgid

給目錄賦予sbit權限

chmod 1777 sbit

Linux中的權限對應新手來說,比較復雜,希望這篇文章能夠幫助到大家。

Copyright © Linux教程網 All Rights Reserved