Linux文件目錄的權限

 Linux是多用戶多任務的分時操作系統,如果每個人都對文件和目錄都是隨便訪問的話,難么你的文件很有可能會被他人刪除或修改,從而丟失數據。為此系統對文件增加了權限的機制來防止這種事情的發生。對文件而言,用戶被分為三類:屬主(onwer)、屬組(group)、和其他(other)。常規的權限分為:讀(r readable)、寫(w writable)、執行(x excutable)。使用ls -l 可以列出文件的權限。

[root@localhost boot]# ls -l 

total 107008

-rw-r--r--. 1 root root   126426 Nov 20  2015 config-3.10.0-327.el7.x86_64

以上為例最左邊的-為文件的類型,-表示普通文件、d表示目錄等。后面9位以三個為一種,分別代表了屬主、屬組、和其他 三個權限是 rwx。如果沒有就用-表示。文件和目錄對應的rwx權限是不一樣的。用八進制表示r=4、w=2、x=1。

管理員可以使用chmod和chown來更改用戶的權限和文件的屬主和屬組等操作。

 

對目錄來說

r:表示可以用ls命令查看此目錄下的文件列表,但它要跟目錄的x權限一起是用

w:可在此目錄中創建文件,也可刪除此目錄中的文件,也許x權限一起使用

x:目錄最基本的權限,如果沒有x目錄將無法正常使用。

對文件來說

r:可是使用文件類查看器查看。如cat、head等

w:可以對文件內容進行修改,它沒有刪除文件的權限。刪除文件的權限看父目錄是否有w的權限

x:可以把此文件提請內核啟動為一個進程 一般文件不加x權限,除二進制命令文件

chmod 更改目錄或文件的權限

權限范圍

u 屬主

g 屬組

o 其他

a 所有人

r讀取權限 數字表示 "4"

w寫入權限 數字表示 "2"

x執行權限 數字表示 "1"

s 特殊權限 

t 特殊權限

語法

chmod [OPTION]... MODE[,MODE]... FILE... 
       chmod [OPTION]... OCTAL-MODE FILE... #使用八進制模式
       chmod [OPTION]... --reference=RFILE FILE... #參照其他文件或目錄

常用選項

-c, --changes #顯示改變信息
-R, --recursive #遞歸改變,如改變目錄是,其子目錄和文件的權限一起干煸
--reference=RFILE #參數其他文件或目錄

例如

[root@localhost testdir]# ll
total 0
-rw-rw-r-- 1 root root 0 Aug  6 11:37 file #源文件權限
[root@localhost testdir]# chmod ug=rwx file #ug一起更改權限
[root@localhost testdir]# ll
total 0
-rwxrwxr-- 1 root root 0 Aug  6 11:37 file#更改結果
[root@localhost testdir]# chmod g-x file #g去掉x權限
[root@localhost testdir]# ll
total 0
-rwxrw-r-- 1 root root 0 Aug  6 11:37 file #更改結果
[root@localhost testdir]# touch file #創建空文件
[root@localhost testdir]# ll
total 0
-rw-r--r-- 1 root root 0 Aug  6 11:39 file #默認權限
[root@localhost testdir]# chmod 777 file #按八進制法更改權限
[root@localhost testdir]# ll
total 0
-rwxrwxrwx 1 root root 0 Aug  6 11:39 file #更改結果
[root@localhost testdir]# ll /etc/issue ./file #列出文件詳細信息
-rw-r--r--. 1 root root 79 Jul 26 16:27 /etc/issue
-rwxrwxrwx  1 root root  0 Aug  6 11:39 ./file
[root@localhost testdir]# chmod --reference=/etc/issue file #參照文件更改權限
[root@localhost testdir]# ll
total 0
-rw-r--r-- 1 root root 0 Aug  6 11:39 file #權限更改結果

文件和目錄的默認權限和隱藏權限

當我們創建一個新文件時,文件的權限已經分配好了,為什么會這樣呢,那就是因為與umask(遮罩碼)這個玩意有關。umask是什么呢? 基本上,umask就是指定"目前用戶在新建文件或目錄時候的權限默認值",管理員和普通用戶的umask是不一樣的。我們可以使用umask查看。目錄的默認權限等于777減去umask的022。前面的0是特殊權限位。文件的默認權限為666減去umask的022.但因為文件默認是不允許有執行權限的,所有單結果為奇數是向前進一位。

全局設置:/etc/bashrc用戶設置:~/.bashrc。

umask 用來設置限制新文件權限的掩碼

umask#   #設定掩碼
umask–S 模式方式顯示
umask–p 輸出可被調用
[root@localhost testdir]# umask #管理員的umask
0022
[linux@localhost ~]$ umask #普通用戶的umask
0002

Linux的特殊權限

  任何一個可執行程序文件能不能啟動為進程取決發起者對程序文件是否擁有執行權限。啟動為進程之后,其進程的屬主為發起者;進程的屬組為發起者所屬的組。進程訪問文件時的權限,取決于進程的發起者。

一 :SUID特殊權限能讓用戶使用文件屬主的權限來運行此命令。當有SUID權限時,文件的所有者x會替換成s權限 ,如果屬主沒有x權限將會以S報錯。 例如-rwsrwxrwx 1 root root 48568 May 11 16:59 /bin/cat  文件顏色呈紅色狀態。 使用chmod命令更改

1、SUID權限只對二進制程序有效。

2、程序執行者對于該程序來說,需要具備x的權限。

3、執行者在執行的過程中將會獲得該程序屬主的權限

[root@localhost /]# ll /usr/bin/tail #顯示tail原來的權限屬性
-rwxr-xr-x 1 root root 61496 May 11 16:59 /usr/bin/tail
[root@localhost /]# chmod 4755 /usr/bin/tail #設置SUID權限,也可u+s方式
[root@localhost /]# ll /usr/bin/tail #顯示更改后
-rwsr-xr-x 1 root root 61496 May 11 16:59 /usr/bin/tail #屬主的x權限被s占用了
[root@localhost /]# tail /etc/shadow #用tail打開shadow,默認情況下shadow只有管理員能打開。
apache:!!:17008::::::
saslauth:!!:17008::::::
postfix:!!:17008::::::
rpcuser:!!:17008::::::
nfsnobody:!!:17008::::::
gdm:!!:17008::::::
pulse:!!:17008::::::
sshd:!!:17008::::::
tcpdump:!!:17008::::::
Alan:!!:17019:0:99999:7:::

二 : SGID能讓其他用戶以文件的屬組權限來運行此命令。當有SGID權限時,文件的屬組x會替換為r權限,如果屬組沒有x權限將會以S報錯。 文件背景顏色為黃色。使用chmod命令更改

1、SGID對二進制文件有限

2、程序執行者對于該程序來說,需要具備x的權限

3、執行者在執行的過程中將會獲得該程序的屬組的權限

4、可以針對文件和目錄使用

[root@localhost /]# mkdir /testdir #創建目錄
[root@localhost /]# chmod 2757 /testdir #更改權限 包括增加GID
[root@localhost /]# su Cloud #切換到普通用戶
[Cloud@localhost /]$ cd /testdir/ #進入root創建的用戶
[Cloud@localhost testdir]$ touch file #創建空文件
[Cloud@localhost testdir]$ touch fiel2 #創建空文件
[Cloud@localhost testdir]$ mkdir dir #創建空目錄
[Cloud@localhost testdir]$ ll #顯示目錄下的文件發現組依然是root
total 0
drwxrwsr-x 2 Cloud root 6 Aug  6 14:57 dir #屬組是root
-rw-rw-r-- 1 Cloud root 0 Aug  6 14:57 fiel2
-rw-rw-r-- 1 Cloud root 0 Aug  6 14:56 file

三 :SBIT只對目錄有效,對文件卻無效,它的作用就是防止別人刪除對方的資料。心細的同學可能發現/tmp就是此類文件

1、當用戶對此目錄有w,x權限時,即具有寫入的權限時;

2、當用戶在該目錄下創建文件或目錄時,僅有子與root才有權利刪除該文件

[Cloud@localhost tmp]$ ll -d #查看tmp目錄屬性 最后為權限位t
drwxrwxrwt. 9 root root 4096 Aug  6 15:10 .
[Cloud@localhost tmp]$ mkdir dir1 dir2 #Cloud用戶創建目錄
[Cloud@localhost tmp]$ touch fi1 f2 #Cloud用戶創建文件
[Cloud@localhost tmp]$ ll #顯示詳細信息
total 0
drwxrwxr-x 2 Cloud Cloud 6 Aug  6 15:10 dir1
drwxrwxr-x 2 Cloud Cloud 6 Aug  6 15:10 dir2
-rw-rw-r-- 1 Cloud Cloud 0 Aug  6 15:10 f2
-rw-rw-r-- 1 Cloud Cloud 0 Aug  6 15:10 fi1
[root@localhost tmp]# su linux #切換其他用戶
[linux@localhost tmp]$ ll #查看目錄下文件信息
total 0
drwxrwxr-x 2 Cloud Cloud 6 Aug  6 15:10 dir1
drwxrwxr-x 2 Cloud Cloud 6 Aug  6 15:10 dir2
-rw-rw-r-- 1 Cloud Cloud 0 Aug  6 15:10 f2
-rw-rw-r-- 1 Cloud Cloud 0 Aug  6 15:10 fi1
[linux@localhost tmp]$ rm fi1 #刪除fi1
rm: remove write-protected regular empty file ‘fi1’? yes   
rm: cannot remove ‘fi1’: Operation not permitted #權限拒絕,雖然目錄有w的權限,但是加了t就無法刪除他人文件
[linux@localhost tmp]$ rm difr1#權限拒絕,雖然目錄有w的權限,但是加了t就無法刪除他人目錄
rm: cannot remove ‘difr1’: No such file or directory

原創文章,作者:ladsdm,如若轉載,請注明出處:http://www.www58058.com/29971

(0)
ladsdmladsdm
上一篇 2016-08-07
下一篇 2016-08-07

相關推薦

  • linux下的文件查找命令對比(locate,find,grep,sed)

        在linux下,文件系統占據著非常重要的位置,而我們對于文件系統的操作也顯得尤為重要。 如果我們想熟悉的操作文件系統,其中,我們需要對文本的查找,截取等命令需要熟悉的掌握。 這里就不得不說幾個關于文本操作的幾個命令的作用詳細介紹和對比。比如: locate,find ,grep ,sed等。 這里,grep ,…

    Linux干貨 2016-08-15
  • N27_第六周作業

    請詳細總結vim編輯器的使用并完成以下練習題 基本模式:編輯模式(命令模式),輸入模式,末行模式 模式轉換: 編輯模式–輸入模式: i:insert,在光標所在處前方輸入 a:append,在光標所在處后方輸入 o:在光標所在處的下方新建一行 I:在光標所在行行首輸入 A:在光標所在處行尾輸入 O:在光標所在處的上方打開一個新行 輸入模式&#82…

    Linux干貨 2017-10-26
  • 馬哥教育網絡19期+第十三周課程練習

    1、建立samba共享,共享目錄為/data,要求:(描述完整的過程)   1)共享名為shared,工作組為magedu;   2)添加組develop,添加用戶gentoo,centos和ubuntu,其中gentoo和centos以develop為附加組,ubuntu不屬于develop組;密碼均為用戶名;   3)添加s…

    Linux干貨 2016-08-12
  • linux程序包管理

    Linux程序包管理        API:Application Program Interface        ABI:Application Binary Interface           Unix-like, &n…

    Linux干貨 2016-12-30
  • 2016/08/21:shell遺留select,包管理器rpm,yum

    select:搭配case更好的顯示選項     這個命令用來創建菜單,按數字排列,并等待用戶輸入,輸入對應數字,執行相應操作,更清楚明了     普通版:select var in list        &…

    Linux干貨 2016-08-24
  • Linux編譯安裝

    Linux編譯安裝    Linux上真正可以執行的文件是二進制文件,這些可以執行的二進制文件是哪兒來的呢?首先,必須要寫程序的源代碼,然后,由編譯程序將程序的源代碼 編譯成二進制形式。源代碼是由程序員編寫的,使用特定的程序語言,如C,C++,Java,Python。但是機器看不懂這些語言,所以要使用編譯程序將這些語言編寫的源代碼編譯成機…

    Linux干貨 2016-08-24

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-07 23:11

    文章思路清晰,從權限模型到特殊權限管理都有了詳細的認識。

欧美性久久久久