首頁 > 軟體

Linux許可權管理命令詳解

2020-06-16 17:27:56

在說許可權管理命令前,我無意中發現了一個命令 ll,驗證了一下,發現跟ls -al效果是一樣的,這個確實方便些,好了,接下來看下幾個許可權管理的命令:
一 chmod:改變檔案或目錄的許可權
第一種用法chmod [{ugoa} {+-=} {rwx}] [檔案或目錄]
u代表user g代表group o代表other a代表all
+代表增加許可權 -代表減少許可權 =代表賦予許可權
下面看個例子,建立目錄 /tmp/fuqiang/fuqiang1
檢視/tmp/fuqiang/fuqiang1目錄的許可權

我們看到許可權是rwxr-xr-x,現在我們增加使用者所在組的可寫許可權chmod g+w /tmp/fuqiang/fuqiang1

發現成功了,我們把使用者許可權,所在組許可權和其他人許可權全部改成rwx,chmod a=rwx /tmp/fuqiang/fuqiang1

我們把user去掉執行許可權,所在組去掉執行許可權
chmod u-x,g-x /tmp/fuqiang/fuqiang1
,好了第一種用法就是這樣,我們發現每次加u g o a的很麻煩,有沒有簡單點的用法呢
第二種用法,數位表示法,我們把rwx分別用數位4 2 1來代替,那麼如果三個許可權全有,就是4+2+1=7,如果只有讀和寫許可權就是4+2=6,如果只有讀和執行許可權就是4+1=5,如果只有寫和執行許可權就是2+1=3,很簡單吧,下面我們把剛才的目錄許可權設定為所有許可權都有,也就是777,chmod 777 /tmp/fuqiang/fuqiang1,來看下
我們發現成功了,用法很簡單不多說了,下面來看一個很簡單的問題,現在我們的目錄/tmp/fuqiang/fuqiang1的許可權是777了,也就是所有許可權都有,我們在這個路徑下建立一個檔案fq.list,並且把這個檔案的許可權設定為770,也就是其他人對這個檔案沒有任何許可權
好了,設定完了,接下來我們用useradd來新增一個f1的使用者,屬於是其他人了,然後su切換到f1使用者,我用這個f1的其他人來刪除我剛才建立的檔案fq.list,看看能否成功
我們發現竟然成功了,這個檔案對其他人明明是沒有許可權的啊,怎麼會成功呢,好了,根本原因在於這個檔案所在的目錄的許可權是777,我們都明白r是讀許可權,w是寫許可權,x是執行許可權,那麼這個rwx對於檔案或者目錄到底意味著什麼呢

我們看這個表就會發現,這些許可權對於目錄和普檔案的作用是不同的,對於普通檔案,我們可以分別理解為讀取檔案的,修改檔案和可執行檔案,但是對於目錄來說,就分別是可以列出目錄的內容,可以在目錄中建立或刪除問題,可以進入目錄,那麼剛才的問題就很清晰了,由於檔案所在路徑具體777許可權,所以其他人也可以在這個路徑下建立和刪除檔案。
對於chmod命令,還有一點忘記說了,就是加選項-R 的話,就是遞回修改目錄下的所有目錄或檔案的許可權
好了,第一個命令說到這,看第二個

二 chown:修改檔案或目錄的所有者
語法:chown [使用者] [檔案或目錄]
注意,必須是root使用者才有chown的許可權
我們把/tmp/fuqiang/fuqiang1/fq.list的所有者修改為root,如下:

我們發現成功了,這個命令很簡單,沒什麼好說的,下面看第三個命令

三 chgrp:修改檔案或目錄的所屬組
語法:chown [使用者組] [檔案或目錄]
注意,必須是root使用者才有chgrp的許可權
同樣,我們把/tmp/fuqiang/fuqiang1/fq.list的所屬組改為root,如下:

好了,很簡單,我們看最後一個命令

四 umask:顯示,設定檔案或目錄的預設許可權
umask -S 顯示我們一般建立目錄的許可權,來看一下

也就是說我們建立一個目錄的預設許可權就是u=rwx,g=rx,0=rx,下面我們建立一個目錄看一下

好了,果然是這樣的,下面我們再建立一個檔案看一下

我們發現檔案的使用者許可權,所屬組許可權和其他人許可權都少了一個x執行許可權,這是linux的一種保護,因為x許可權比較敏感,病毒什麼的可以執行,除了x許可權之外,其他許可權都是跟umask預設是一樣的
那麼如果我們直接執行umask呢

我們得到了一個0022,第一個0我們先不管,後面三個022跟u=rwx,g=rx,0=rx剛好是777-022=755的結果,所以這個得到的結果是777-預設許可權的結果,那麼如果我們要修改一下預設許可權,改為u=rw,g=rx,0=rx,那麼就是655,用777-655=122,我們執行umask 122

接著我們再建立一個目錄來驗證下

發現跟我們要改成的許可權655一致了,那麼我們再建立一個檔案呢

發現只是少了x執行許可權,跟我們剛才說的對上了。

好了,linux常用的許可權管理命令就說到這裡,如果有問題,歡迎執行,謝謝!

本文永久更新連結地址http://www.linuxidc.com/Linux/2016-11/137268.htm


IT145.com E-mail:sddin#qq.com