當前位置:首頁 » 密碼管理 » linux訪問許可權

linux訪問許可權

發布時間: 2022-11-26 16:36:50

linux可讀可寫許可權

1.可讀許可權r

表示具有讀取/閱讀文件內容的許可權。

2.可寫許可權w

表示具有新增、修改文件內容的許可權。

①如果沒有r,用vi編輯器,輸入「:wq!"可以強制覆蓋,但原文件內容會被清除;因此可以使用echo追加內容到文件。

②刪除文件(修改文件名等)的許可權是受父目錄的許可權控制,和文件本身的許可權無關,文件名在父目錄的block里。

3.可執行許可權x

表示具有執行文件的許可權。

①文件本身要能夠執行。

②普通用戶必須還要有r許可權才能夠執行,無r就不能執行。

③root即使沒有r許可權,只要有x許可權就能執行。

④root用戶位沒有執行許可權,但只要其他許可權位還有x許可權,那它就能執行。

❷ linux RWX許可權的解讀

注意

chown 和 chgrp 都有一個 -R 選項,該選項可以用來告訴它們遞歸地將所屬權和組改變應用到整個目錄樹中。例如:

注意 :除非您是超級用戶,否則您不可以使用 chown,然而任何人都可以使用 chgrp 來將文件的組所有權改為他們所屬的組。

該操作chmod 示例已經影響到了所有三個三元組 — 用戶、組和所有其他用戶

亦可指定,對於「用戶」三元組使用 u,對於「組」三元組使用 g,對於「其他/每個人」使用 o

定製化設定許可權

直到現在為止,我們使用了叫做「符號」的模式來用 chmod 指定許可權的改變。然而,指定許可權還有一種普遍使用的方法 — 使用 4 位八進制數。使用叫做數字許可權語法的語法,每一位代表一個許可權三元組。例如,在 1777 中,777 設置本章我們所討論的「owner」、「group」和「other」標志。1 用來設置專門的許可權位,我們將在本章的結束部分講到。

舉例:7=4+2+1,讀寫執行,5=4+1,讀執行。各種組合方式。
rwx 7 rw- 6 r-x 5 r-- 4 -wx 3 -w- 2 --x 1 --- 0

當進程創建了新文件時,它指定新文件應該具有的許可權。通常,所請求的模式是 0666(每個人可讀和可寫),它比我們希望的具有更多的許可權。幸運的是,不管什麼時候創建了新文件,Linux 將參考叫做「umask」的東西。系統用 umask 值來將初始指定的許可權降低為更合理、更安全的許可權。您可以通過在命令行中輸入 umask 來查看您當前的 umask 設置:

Linux 系統上,umask 的預設值一般為 0022,它允許其他人讀您的新文件(如果他們可以得到它們),但是不能進行修改。為了在預設的情況下使新文件更安全,您可以改變 umask 設置: $ umask 0077umask 將確保組和其他用戶對於新創建的文件絕對沒有任何許可權。那麼,umask 怎樣工作呢? 與文件的「常規」許可權不同,umask 指定應該關閉哪一個許可權 。我們來參閱一下我們的「模式到數字」映射表,從而使我們可以理解 0077 的 umask 的意思是什麼: 模式 數字 rwx 7 rw- 6 r-x 5 r-- 4 -wx 3 -w- 2 --x 1 --- 0 使用該表,0077 的最後三位擴展為 ---rwxrwx。現在,請記住 umask 告訴系統禁用哪個許可權。根據推斷,我們可以看到將關閉所有「組」和「其他」許可權,而「用戶」許可權將保留不動。

當您最初登錄時,將啟動一個新的 shell 進程。您已經知道,但是您可能還不知道這個新的 shell進程(通常是 bash)使用您的用戶標識運行。照這樣,bash 程序可以訪問所有屬於您的文件和目錄。事實上,作為用戶,我們完全依靠其它程序來代表我們執行操作。因為您啟動的程序繼承了您的用戶標識,因此它們不能訪問任何不允許您訪問的文件系統對象。例如,一般用戶不能直接修改 passwd 文件,因為「write」標志已經對除「root 用戶」以外的每個用戶關閉:

但是,一般用戶確實需要在他們需要改變其密碼的任何時候,能夠修改 /etc/passwd(至少間接地)。但是,如果用戶不能修改該文件,究竟怎樣完成這個工作呢?
Suid
幸好,Linux 許可權模型有兩個專門的位,叫做「suid」和「sgid」。當設置了一個可執行程序的「suid」這一位時,它將代表可執行文件的所有者運行,而不是代表啟動程序的人運行。現在,回到 /etc/passwd 問題。如果看一看 passwd 可執行文件,我們可以看到它屬於 root 用戶:
$ ls -l /usr/bin/passwd
-rwsr-xr-x 1 root wheel 17588 Sep 24 00:53 /usr/bin/passwd
您還將注意到,這里有一個 s 取替了用戶許可權三元組中的一個 x。這表明,對於這個特殊程序,設置了 suid 和可執行位。由於這個原因,當 passwd 運行時,它將代表 root 用戶執行(具有完全超級用戶訪問權),而不是代表運行它的用戶運行。又因為 passwd 以 root 用戶訪問權運行,所以能夠修改 /etc/passwd 文件,而沒有什麼問題。
suid/sgid 告誡說明
我們看到了 suid 怎樣工作,sgid 以同樣的方式工作。它允許程序繼承程序的組所有權,而不是當前用戶的程序所有權。這里有一些關於 suid 和 sgid 的其它的但是很重要的信息。首先,suid 和 sgid 占據與 ls -l 清單中 x 位相同的空間。如果還設置了 x 位,則相應的位表示為 s(小寫)。但是,如果沒有設置 x 位,它將表示為 S(大寫)。另一個很重要的提示:在許多環境中,suid 和 suid 很管用,但是不恰當地使用這些位可能使系統的安全遭到破壞。最好盡可能地少用「suid」程序。passwd 命令是為數不多的必須使用「suid」的命令之一。
改變 suid 和 sgid
設置和除去 suid 與 sgid 位相當簡單。這里,我們設置 suid 位:

此處,我們從一個目錄除去 sgid 位。我們將看到 sgid 位怎樣影響下面幾屏中的目錄:

許可權和目到此為止,我們從常規文件的角度來看許可權。當從目錄的角度看許可權時,情況有一點不同。目錄使用同樣的許可權標志,但是它們被解釋為表示略微不同的含義。 對於一個目錄,如果設置了「read」標志,您可以列出目錄的內容;「write」表示您可以在目錄中創建文件,「execute」表示您可以進入該目錄並訪問內部的任何子目錄。沒有「execute」標志,目錄內的文件系統對象是不可訪問的。沒有「read」標志,目錄內的文件系統對象是不可查看的,但是只要有人知道磁碟上對象的完整路徑,就仍然可以訪問目錄內的對象。目錄和 sgid如果啟用了目錄的「sgid」標志,在目錄內創建的任何文件系統對象將繼承目錄的組。當您需要創建一個屬於同一組的一組人使用的目錄樹時,這種特殊的功能很管用。只需要這樣做:

現在,mygroup 組中的所有用戶都可以在 /home/groupspace 內創建文件或目錄,同樣,他們也將自動地分配到 mygroup 的組所有權。根據用戶的 umask 設置,新文件系統對象對於 mygroup 組的其他成員來說,可以或不可以是可讀、可寫或可執行的。目錄和刪除預設情況下,Linux 目錄以一種不是在所有情況下都很理想的方式表現。一般來說,只要對一個目錄有寫訪問權,任何人都可以重命名或刪除該目錄中的文件。對於個別用戶使用的目錄,這種行為是很合理的。但是,對於很多用戶使用的目錄來說,尤其是 /tmp 和 /var/tmp,這種行為可能會產生麻煩。因為任何人都可以寫這些目錄,任何人都可以刪除或重命名任何其他人的文件 — 即使是不屬於他們的!顯然,當任何其他用戶在任何時候都可以輸入「rm -rf /tmp/*」並損壞每個人的文件時,很難把 /tmp 用於任何有意義的文件。所幸,Linux 有叫做「粘滯位」(sticky bit)的東西。當給 /tmp 設置了粘滯位(用chmod +t),唯一能夠刪除或重命名 /tmp 中文件的是該目錄的所有者(通常是 root 用戶)、文件的所有者或 root 用戶。事實上,所有 Linux 分發包都預設地啟用了 /tmp 的粘滯位,而您還可以發現粘滯位在其它情況下也很管用。難以理解的第一位
總結本章,我們最後來看一看數字模式的難以理解的第一位數。您可以看到,這個第一位數
用來設置 sticky、suid 和 sgid 位:
suid sgid sticky 模式數字 on on on 7 on on off 6 on off on 5 on off off 4 off on on 3 off on off 2 off off on 1 off off off 0
這里有一個怎樣用 4 位數字模式來設置一個目錄的許可權的示例,該目錄將由一個工作組使用:
# chmod 1775 /home/groupfiles
請想一想 1755 數字模式許可權設置的含義。

linux許可權補充:rwt rwT rws rwS 特殊許可權

眾所周知,Linux的文件許可權如: 777;666等,其實只要在相應的文件上加上UID的許可權,就可以用到加許可權人的身份去運行這個文件。所以我們只需要將bash復制出來到另一個地方,然後用root加上UID許可權,只要用戶運行此Shell就可以用用root的身份來執行任何文件了

一個文件都有一個所有者, 表示該文件是誰創建的. 同時, 該文件還有一個組編號, 表示該文件所屬的組, 一般為文件所有者所屬的組.

如果是一個可執行文件, 那麼在執行時, 一般該文件只擁有調用該文件的用戶具有的許可權. 而setuid, setgid 可以來改變這種設置.

setuid:該位是讓普通用戶可以以root用戶的角色運行只有root帳號才能運行的程序或命令。比如我們用普通用戶運行passwd命令來更改自己的口令,實際上最終更改的是/etc/passwd文件我們知道/etc/passwd文件是用戶管理的配置文件,只有root許可權的用戶才能更改

[root@localhost ~]# ls -l /etc/passwd

-rw-r--r-- 1 root root 2379 04-21 13:18 /etc/passwd

作為普通用戶如果修改自己的口令通過修改/etc/passwd肯定是不可完成的任務,但是不是可以通過一個命令來修改呢答案是肯定的,作為普通用戶可以通過passwd 來修改自己的口令這歸功於passwd命令的許可權我們來看一下;

[root@localhost ~]# ls -l /usr/bin/passwd

-r-s--x--x 1 root root 21944 02-12 16:15 /usr/bin/passwd

因為/usr/bin/passwd 文件已經設置了setuid 許可權位(也就是r-s--x--x中的s),所以普通用戶能臨時變成root,間接的修改/etc/passwd,以達到修改自己口令的許可權

setgid: 該許可權只對目錄有效. 目錄被設置該位後, 任何用戶在此目錄下創建的文件都具有和該目錄所屬的組相同的組.

sticky bit: 該位可以理解為防刪除位. 一個文件是否可以被某用戶刪除, 主要取決於該文件所屬的組是否對該用戶具有寫許可權. 如果沒有寫許可權, 則這個目錄下的所有文件都不能被刪除, 同時也不能添加新的文件. 如果希望用戶能夠添加文件但同時不能刪除文件, 則可以對文件使用sticky bit位. 設置該位後, 就算用戶對目錄具有寫許可權, 也不能刪除該文件.

下面說一下如何操作這些標志:

操作這些標志與操作文件許可權的命令是一樣的, 都是 chmod. 有兩種方法來操作,

chmod g+s tempdir -- 為tempdir目錄加上setgid標志 (setgid 只對目錄有效)

chmod o+t temp -- 為temp文件加上sticky標志 (sticky只對文件有效)

abc

a - setuid位, 如果該位為1, 則表示設置setuid 4---

b - setgid位, 如果該位為1, 則表示設置setgid 2---

c - sticky位, 如果該位為1, 則表示設置sticky 1---

設置完這些標志後, 可以用 ls -l 來查看. 如果有這些標志, 則會在原來的執行標志位置上顯示. 如

rwsrw-r-- 表示有setuid標志

rwxrwsrw- 表示有setgid標志

rwxrw-rwt 表示有sticky標志

那麼原來的執行標志x到哪裡去了呢? 系統是這樣規定的, 如果本來在該位上有x, 則這些特殊標志顯示為小寫字母 (s, s, t). 否則, 顯示為大寫字母 (S, S, T)
https://blog.csdn.net/zhao12795969/article/details/53448039/

❸ linux系統對普通文件默認的訪問許可權是什麼

普通文件默認是644
也就是:
-rw-r--r--
1
root
root
0
May15
20:04
test
自已有讀寫(rw),同組人員有讀(r),其它有讀(r)
默認許可權可通過umask
修改
默認umask
為022
文件:666
-
022
=
644
目錄:777
-
022
=
755
如果你下了umask
044
的指令,則生成的文件目錄許可權就變成:
文件:666
-
044
=
622
目錄:777
-
044
=
733

❹ Linux許可權管理基本知識

Linux許可權管理基本知識大全

Linux系統有什麼基本許可權,許可權管理命令是什麼?下面跟我一起來看看吧!

一、基本許可權

linux許可權機制採用UGO模式。其中 u(user)表示所屬用戶、g(group)表示所屬組、o(other)表示除了所屬用戶、所屬組之外的情況。

u、g、o 都有讀(read)、寫(write)、執行(excute) 三個許可權,所以UGO模式是三類九種基本許可權。

用命令 ls -l 可列出文件的許可權,第一列輸出明確了後面的輸出(後面一列代表 ugo許可權)。第一個字母對應的關系:

“-” 普通文件

“d” 目錄

”l“ 符號鏈接

”c“ 字元設備

"b" 塊設備

"s" 套接字

"p" 管道

修改文件或目錄的所屬用戶: chown 文件名 | 目錄名 用戶

-R 該參數以遞歸的方式修改目錄下所有文件的所屬用戶,參數可以敲 chown --help 查看。

修改文件或目錄的所屬組: chgrp 文件名 | 目錄名 組名

-R 該參數以遞歸的方式修改目錄下的所有文件的'所屬組。

命令chmod 用來修改文件或目錄的許可權: chmod -參數 模式 文件 | 目錄

例子: 修改目錄 log下所有文件的許可權為700

chmod -R 700 log

註:700的來歷是 u g o

rwx rwx rwx

111 000 000

關於 chmod 命令的許可權模式除了數字表示,還可以是 u、g、o 、a 加 +、- 來表示。格式如下:u、g、o分別代表用戶、屬組和其他,a 就是

all ,可以代替ugo。 +、- 代表增加或刪除對應的許可權,r、w、x 代表三種許可權,分別是讀、寫、執行。

例子:對於目錄 log下的所有文件(已有許可權是700)增加所屬組(g)的讀(r)、執行(x)許可權。

chmod -R g+rx log

類似的命令可能還有很多,這里只是舉幾個最基本且常用的例子。很多命令用到時,再去查也可以。還可參考《鳥哥的Linux私房菜》。

二、特殊許可權

Linux的3個特殊的許可權,分別是setuid、setgid和stick bit。

setuid許可權(S):只有用戶可擁有,出現在執行許可權(x)的位置。

setuid許可權允許用戶以其擁有者的許可權來執行可執行文件,即使這個可執行文件是由其他用戶運行的。

setgid許可權(S):對應於用戶組,出現在執行許可權(x)的位置。

setgid許可權允許以同該目錄擁有者所在組相同的有效組許可權來允許可執行文件。但是這個組和實際發起命令的用戶組不一定相同。

stick bit (t /T):又名粘滯位,只有目錄才有的許可權,出現在其他用戶許可權(o)中的執行位置(x)。當一個目錄設置了粘滯位,只有創建了該目錄的用戶才能刪除目錄中的文件,但是其他用戶組和其他用戶也有寫許可權。使用 t 或 T來表示。若沒有設置執行許可權,但是設置了粘滯位,使用 t;若同時設置了執行許可權和粘滯位使用 T。典型的粘滯位使用是 /tmp 目錄,粘滯位屬於一種防寫。

設置特殊許可權:

setuid: chmod u+s filename

setgid: chmod g+s directoryname

stick bit: chmod o+t directoryname

用數字表示特殊許可權,是在基本許可權之上的。濁嘴笨腮說不清楚,看例子:

例子:將上面例子中的log日誌目錄(已有許可權 700)許可權設置為755。特殊許可權是類似 /tmp目錄的 stick bit有效。

特殊許可權 基本許可權

setuid setgid stick bit user group other

0 0 1 rwx rwx rwx

111 000 000

所以,設置特殊許可權(stick bit)的命令應該是:chmod 1755 log

設置特殊許可權後,ls -dl 查看該目錄:drwxr-xr-t 2 gg gg 4096 5月 11 19:05 log ( 注意 other 的 x 位是代表特殊許可權的字母 t )

取消該特殊許可權的命令:chmod 755 log 。如此 stick bit的許可權就沒有了。

再次 ls -dl 查看該目錄: drwxr-xr-x 2 gg gg 4096 5月 11 19:15 log ( 注意最後一位已經變為代表普通許可權的字母x )

需要注意的是,最前面一位 ”1“ 就是特殊許可權位。其他兩個特殊許可權的設置也類似。setuid使用不是無限制的。出於安全目的,只能應用在Linux ELF格式二進制文件上,而不能用於腳本文件。

三、高級許可權

ACL(Access Control List),訪問控制列表是Linux下的的高級許可權機制,可實現對文件、目錄的靈活許可權控制。ACL 允許針對不同用戶、

不同組對同一個目標文件、目錄進行許可權設置,而不受UGO限制。

在一個文件系統上使用ACL需要在掛載文件系統的時候打開ACL功能。而根分區(ROOT)默認掛載的時候支持ACL。

命令:mount -o acl /掛載路徑

例子:mount -o acl /dev/sdb1 /mnt

查看一個文件的ACL設置的命令: getfacl file

(針對一個用戶)為一個文件設置指定用戶的許可權的命令: setfacl -m u:username:rwx filename

(針對一個組)為一個文件設置指定組的許可權的命令: setfacl -m g:groupname:r-x filename

刪除一個ACL設置的命令: setfacl -x u:username filename

;

❺ linux修改訪問許可權

chmod xxx dirxxx為3位數字,分別表示文件所有者,文件所有者所在的組,其他用戶的許可權4代表讀許可權,2代表寫許可權,1代表執行許可權,需要那些許可權相加即可,0為不任何許可權dir為要更改權的文件如果是文件夾帶上遞歸參數 -R,可改變文件內全部文件的許可權

❻ 如何改變Linux文件或目錄訪問許可權

文件或目錄的訪問許可權分為只讀,只寫和可執行三種。以文件為例,只讀許可權表示只允許讀其內容,而禁止對其做任何的更改操作。可執行許可權表示允許將該文件作為一個程序執行。文件被創建時,文件所有者自動擁有對該文件的讀、寫和可執行許可權,以便於對文件的閱讀和修改。用戶也可根據需要把訪問許可權設置為需要的任何組合。
每一文件或目錄的訪問許可權都有三組,每組用三位表示,分別為文件屬主的讀、寫和執行許可權;與屬主同組的用戶的讀、寫和執行許可權;系統中其他用戶的讀、寫和執行許可權。當用ls
-l命令顯示文件或目錄的詳細信息時,最左邊的一列為文件的訪問許可權。例如:
$
ls
-l
sobsrc.
tgz
-rw-r--r--
1
root
root
483997
Ju1
l5
17:3l
sobsrc.
tgz
橫線代表空許可。r代表只讀,w代表寫,x代表可執行。注意這里共有10個位置。第一個字元指定了文件類型。在通常意義上,一個目錄也是一個文件。如果第一個字元是橫線,表示是一個非目錄的文件。如果是d,表示是一個目錄。
例如:
-
rw-
r--
r--
普通文件
文件主
組用戶
其他用戶
是文件sobsrc.tgz
的訪問許可權,表示sobsrc.tgz是一個普通文件;sobsrc.tgz的屬主有讀寫許可權;與sobsrc.tgz屬主同組的用戶只有讀許可權;其他用戶也只有讀許可權。
確定了一個文件的訪問許可權後,用戶可以利用Linux系統提供的chmod命令來重新設定不同的訪問許可權。也可以利用chown命令來更改某個文件或目錄的所有者。

❼ Linux許可權管理之基本許可權

(Linux許可權管理之基本許可權-慕課網 http://www.imooc.com/learn/481 )

一、文件基本許可權
1、基本許可權的修改
-rw-r--r--
- 文件類型(- 文件 d 目錄 l 軟鏈接文件)
rw- u所有者
r-- g所屬組
r-- o其他人
r 讀
w 寫
x 執行
chmod命令
chmod [選項] 模式 文件名
- 選項
-R 遞歸
- 模式
[ugoa] [+-=] [rwx]
[mode=421]

chmod u+x cangls.av
chmod g+w o+w furong.av
chmod a=rwx fengjie.av
#創建新文件
[root@localhost ~]# touch cangls.av
[root@localhost ~]# ll
#所有者添加執行許可權
[root@localhost ~]# chmod u+x cangls.av
[root@localhost ~]# ll
#所屬組和其他人添加寫許可權
[root@localhost ~]# chmod g+w,o+w cangls.av
[root@localhost ~]# ll
#所有者減去執行許可權,所屬組和其他人減去寫許可權
[root@localhost ~]# chmod u-x,g-w,o-w cangls.av
[root@localhost ~]# ll
#所有者添加讀寫執行許可權,所屬組添加讀寫許可權
[root@localhost ~]# chmod u=rwx,g=rw cangls.av
[root@localhost ~]# ll
#所有人賦予讀寫許可權
[root@localhost ~]# chmod a=rw cangls.av
[root@localhost ~]# ll

r ----4
w ----2
x ----1
rwxr-xr-x
7 5 5
#所有者賦予讀寫執行許可權,所屬組和其他人賦予讀執行許可權
[root@localhost ~]# chmod 755 cangls.av
[root@localhost ~]# ll
#改為普通文件許可權
[root@localhost ~]# chmod 644 cangls.av
[root@localhost ~]# ll
777(文件最高許可權)
644(普通文件許可權)
755(所有者賦予讀寫執行許可權,所屬組和其他人賦予讀執行許可權)

r:讀取文件的內容(cat more head tail)
w:編輯、新增、修改文件內容(vi echo),但是不包含刪除文件;
x:可執行

r:可以查詢目錄下文件名(ls)
w:具有修改目錄結構的許可權。如新建文件和目錄,刪除此目錄下文件和目錄,重命名此目錄下文件和目錄,剪切(touch rm mv cp)
x:可以進入目錄(cd)
對文件來講:最高許可權是x(執行)
對目錄來講:最高許可權是w(寫),能賦予的許可權只有0,5,7
#創建普通用戶user1
[root@localhost ~]# useradd user1
#創建普通用戶密碼user1
[root@localhost ~]# passwd user1
更改用戶 user1 的密碼 。
新的 密碼:123
無效的密碼: WAY 過短
無效的密碼: 過於簡單
重新輸入新的 密碼:123
passwd: 所有的身份驗證令牌已經成功更新。

chown 用戶名 文件名
例如:chown ds fengj.av

chgrp 組名 文件名
例如:chgrp group1 fengj.av

要求:
擁有一個av目錄
讓加藤老師擁有所有的許可權
讓本課程學員有查看的許可權
其他所有人不許查看這個目錄
#創建目錄
[root@localhost ~]# mkdir av
#查看
[root@localhost ~]# ll -d av
[root@localhost ~]# useradd jt
[root@localhost ~]# passwd jt
更改用戶 jt 的密碼 。
新的 密碼:
無效的密碼: WAY 過短
無效的密碼: 過於簡單
重新輸入新的 密碼:
passwd: 所有的身份驗證令牌已經成功更新。
#添加組
[root@localhost ~]# groupadd user
#把user1用戶加到user組裡面
[root@localhost ~]# gpasswd -a user1 user
Adding user user1 to group user
[root@localhost ~]# chown jt:user av
[root@localhost ~]# ll -d av
#其他人改為0許可權
[root@localhost ~]# chmod 750 av
[root@localhost ~]# ll -d av

#查看默認許可權
[root@localhost ~]# umask
0022
第一位0:文件特殊許可權
022:文件默認許可權

文件默認不能建立為執行文件,必須手工賦予執行許可權;
所以文件默認許可權最大為666;
默認許可權需要換算成字母再相減;
建立文件之後的默認許可權,為666減去umask值;
例如:
文件默認最大許可權666,umask值022;
-rw-rw-rw-減去-----w--w-等於-rw-r--r--
例如:
文件默認最大許可權666,umask值033
-rw-rw-rw-減去-----wx-wx等於-rw-r--r--

目錄的默認許可權最大為777;
默認許可權需要換算成字母再相減;
建立文件之後的默認許可權,為777減去umask值;
例如:
目錄默認最大許可權為777,umask值022;
-rwxrwxrwx減去-----w--w-等於-rwxr-xr-x

臨時修改
umask 0002
永久修改
vi /etc/profile

❽ Linux操作系統文件訪問許可權詳解

一直以root登陸使用linux的人來說很少有許可權被拒這種概念,但某些時候又深受許可權拒絕困擾。
知道為什麼很多程序中需要使用getuid(),setuid()?為什麼以普通許可權登陸的用戶不能進入/root,為什麼在/目錄下執行ls -l後可以顯示root的信息,但ls /root -al卻是許可權不夠?為什麼有些文件夾可以繼續創建文件,但就是不能ls?等等,相信看了此文就能明白。
主要是學習筆記,不足之處請指正。
CentOS 5.4 [testc@xxx opt]$ uname -a Linux xxx 2.6.18-164.el5xen #1 SMP Thu Sep 3 04:47:32 EDT 2009 i686 i686 i386 GNU/Linux
一、口令文件1,格式存儲文件/etc/passwd,格式如下:root:x:0:0:root:/root:/bin/bash aaa:x:501:501:bj, bj, 8111111,136000111:/home/aaa:/bin/bash用戶名:加密密碼:用戶ID:組ID:注釋:工作目錄:shell:
默認情況是第一行的格式;注釋欄位可以自行修改,用逗號隔開,如第二行格式,這主要是給finger命令使用時可解析。
可以vi /etc/passwd修改,但為了保證其格式的正確性,請用vipw命令編譯此文件。
sh-3.2# finger aaa Login: aaa Name: bj Directory: /home/aaa Shell: /bin/bash Office: bj, 8111111 Home Phone: 136000111 Never logged in. No mail. No Plan.
2,編程實例
/*getpwnam_pwuid.c*/ #include #include #include
int main(void)
{ //struct passwd *pwd = getpwnam("aaa");struct passwd *pwd = getpwuid(501);if(pwd == NULL)
{ printf("err.\n");return 1;}
printf("name:%s\n", pwd->pw_name);printf("passwd:%s\n", pwd->pw_passwd);printf("description:%s\n", pwd->pw_gecos);printf("uid:%d\n", pwd->pw_uid);printf("gid:%d\n", pwd->pw_gid);printf("dir:%s\n", pwd->pw_dir);printf("shell:%s\n", pwd->pw_shell);
return 0;}
sh-3.2# gcc getpwnam_pwuid.c -o app sh-3.2# ./app name:aaa passwd:x description:bj, bj, 8111111,136000111 uid:501 gid:501 dir:/home/aaa shell:/bin/bash
二、組文件1,格式存儲文件/etc/group,格式如下root:x:0:root bin:x:1:root,bin,daemon aaa:x:501:組名:加密密碼:組ID:指向的各用戶名
2,改變文件uid和gid.
sh-3.2# pwd /root/study sh-3.2# ls -al -rw-r——r—— 1 root root 397 10-11 03:23 test.c
chgrp 改變所屬組ID,當然只有root許可權才可以修改。
sh-3.2# chgrp aaa test.c sh-3.2# ls -al -rw-r——r—— 1 root aaa 397 10-11 03:23 test.c
這個aaa就是新組名,其在/etc/group中,可以通過adser aaa自行添加sh-3.2# cat /etc/group root:x:0:root bin:x:1:root,bin,daemon daemon:x:2:root,bin,daemon.
gdm:x:42:sabayon:x:86:plmtest:x:500:aaa:x:501:
chown 改變用戶ID或組ID sh-3.2# chown aaa:aaa test.c sh-3.2# ls -al -rw-r——r—— 1 aaa aaa 397 10-11 03:23 test.c
3,編程實例
/*getgrnam.c*/ #include #include
int main(int argc, char *argv[])
{ if(argv[1] == NULL)
{ printf("input error.\n");return 1;}
struct group *gp = getgrnam(argv[1]);if(gp == NULL)
{ printf("err.\n");return 1;}
printf("name:%s\n", gp->gr_name);printf("psswd:%s\n", gp->gr_passwd);printf("gid:%d\n", gp->gr_gid);
int i;for(i = 0; gp->gr_mem[i] != NULL; i++)
{ printf("group name:%s\n", gp->gr_mem[i]);}
return 0;}
sh-3.2# gcc getgrnam.c -o app sh-3.2# ./app bin name:bin psswd:x gid:1 group name:root group name:bin group name:daemon 4,文件許可權不細講了sh-3.2# ls -al總計 483984 drwxr-x—— 13 root root 4096 02-22 00:01 . drwxr-xr-x 32 root root 4096 02-21 21:15 ……
-rw-r——r—— 1 root root 464023491 10-25 22:33 3.3.005-080425.tgz -rw—— 1 root root 9346 02-21 23:16 .bash_history -rw-r——r—— 1 root root 24 2007-01-06 .bash_logout -rw-r——r—— 1 root root 191 2007-01-06 .bash_profile -rw-r——r—— 1 root root 176 2007-01-06 .bashrc drwxrwxrwx 10 1000 users 4096 08-23 20:16 cflow-1.3 -rw-r——r—— 1 root root 759691 08-23 20:13 cflow.tar.gz -rw-r——r—— 1 root root 100 2007-01-06 .cshrc -rwxr-xr-x 1 root root 582 11-11 21:48 delete_M.sh -rw-r——r—— 1 root root 2518 11-11 20:25 .dir_colors
主要是最左邊一列:drwxr-x——10個字元,最左邊是文件類型,-默認為普通文件;d:目錄文件;l符號鏈接……
後面9個,3個一組共三組,分別表示所屬用戶uid的許可權;所屬組或者附屬組gid的許可權;其它許可權。
三個字元分別是讀、寫、執行許可權讀4,寫2, 執行1
所以chmod 777 test.c,提升到讀、寫、執行許可權。
5,組許可權操作實例此節演示相同組的成員之間共享資源,即不同uid但相同gid的用戶共享同一組的資源。
為了方便起見,我同時開了兩個終端。
"sh-3.2#"以root許可權登陸的shell /bin/sh "[testa@xxx root]"以testa用戶登陸的shell
註:下文提到的「用戶」是指/etc/passwd里定義的通過終端登陸的用戶(此文即以下增加的三個賬號名)。
sh-3.2# useradd testa sh-3.2# useradd testb sh-3.2# useradd testc
sh-3.2# tail -f /etc/passwd -n 4 sabayon:x:86:86:Sabayon user:/home/sabayon:/sbin/nologin testa:x:500:500::/home/testa:/bin/bash testb:x:501:501::/home/testb:/bin/bash testc:x:502:502::/home/testc:/bin/bash
再開一個終端登陸testa,之前那個終端保持。
sh-3.2# su testa [testa@xxx root]$ id uid=500(testa) gid=500(testa) groups=500(testa)
[testa@xxx home]$ ls -al總計 28 drwxr-xr-x 5 root root 4096 02-21 22:52 . drwxr-xr-x 32 root root 4096 02-21 21:15 ……
drwx—— 3 testa testa 4096 02-21 22:56 testa drwx—— 3 testb testb 4096 02-21 22:48 testb drwx—— 3 testc testc 4096 02-21 22:52 testc
[testa@xxx home]$ cd testb bash: cd: testb: 許可權不夠
通過root修改testb目錄許可權為770,即當前uid或者gid相同的用戶均有讀寫執行許可權。
sh-3.2# cd /home/ sh-3.2# chmod 770 testb
[testa@xxx home]$ ls -al總計 28 drwxr-xr-x 5 root root 4096 02-21 22:52 . drwxr-xr-x 32 root root 4096 02-21 21:15 ……
drwx—— 3 testa testa 4096 02-21 22:56 testa drwxrwx—— 3 testb testb 4096 02-21 22:48 testb (here modify)
drwx—— 3 testc testc 4096 02-21 22:52 testc
[testa@xxx home]$ cd testb bash: cd: testb: 許可權不夠[testa@xxx root]$ id uid=500(testa) gid=500(testa) groups=500(testa)
此時雖然開放了testb的所屬組許可權,但用戶testa的gid=500(testa) groups=500(testa),它還不屬於testb組。
下面修改testa的gid為testb(或者增加其附屬組groups值為testb)
sh-3.2# usermod -G testb testa (增加用戶testa的附屬組testb)
sh-3.2# id testa uid=500(testa) gid=500(testa) groups=500(testa),501(testb)
此時testa終端需要重新登下,使剛才更改生效[testa@xxx root]$ exit exit [root@xxx ~]# su testa [testa@xxx root]$ id uid=500(testa) gid=500(testa) groups=500(testa),501(testb)
[testa@xxx root]$ cd /home/ [testa@xxx home]$ ls -al總計 28 drwxr-xr-x 5 root root 4096 02-21 22:52 . drwxr-xr-x 32 root root 4096 02-21 21:15 ……
drwx—— 3 testa testa 4096 02-21 22:56 testa drwxrwx—— 3 testb testb 4096 02-21 22:48 testb drwx—— 3 testc testc 4096 02-21 22:52 testc [testa@xxx home]$ cd testb [testa@xxx testb]$ pwd /home/testb
以上是增加了用戶testa的附屬組testb,使其對於屬於testb組的資源有了訪問許可權。
下面再使用newgrp切換用戶testa的gid.
[testa@xxx testb]$ id uid=500(testa) gid=500(testa) groups=500(testa),501(testb)
[testa@xxx testb]$ newgrp testb [testa@xxx testb]$ id uid=500(testa) gid=501(testb) groups=500(testa),501(testb)
此時testa用戶的gid已改為501(testb)。
組之前的關系在文件/etc/group sh-3.2# tail -f /etc/group -n 4 sabayon:x:86:testa:x:500:testb:x:501:testa (最後一列:組內用戶列表。即組testb里包含testa,testa屬於testb組,大概就這意思吧……)
testc:x:502:
雖然知道控制組關系的文件,但不能直接修改些文件,否則執行newgrp時會出現"抱歉"錯誤提示。
當然root用戶許可權是無限制的,它訪問文件時不需要進行許可權檢查。
三、相關系統調用getuid();getgid();int setuid(uid_t uid);int setgid(gid_t gid);
只有超級用戶或者需要設置的uid和當前用戶的uid一致才可以設置,否則返回-1,置errno = EPERM, errno可以通過strerror()翻譯。
其它:[testa@xxx home]$ su testa [testa@xxx home]$ sudo touch aa
testa is not in the sudoers file. This incident will be reported.
以root許可權vim /etc/sudoers增加testa ALL=(ALL) ALL
參考:APUE2E,1.8, 4.4, 8.11

❾ linux 文件有哪些特殊許可權

文件的特殊許可權有三種:1、suid;2、sgid;3、sticky,其中,suid和sgid用於累加提升許可權,簡單來說就是如果原來的用戶可以訪問,反而切換到的用戶或者組不能訪問,這時候照樣是可以訪問的,下面介紹下這三種許可權。
SUID:
1、需要注意的是,只對二進制可執行程序有效,不能為普通文件;
2、發起者對程序文件必須擁有執行許可權;
3、啟動為進程之後,其進程的宿主為原程序文件的宿主;
4、SUID設置在目錄上毫無意義。
SGID:
可以應用在二進制文件和作用在文件夾下,當作用在二進制文件下時,作用和SUID相似,只不過SUID是把發起者臨時變為文件的所有者,而SGID是把進程的發起者變成源程序文件的屬組,默認情況下,用戶創建文件時,其屬組為此用戶所屬的主組,當SGID作用在目錄下時,則對此目錄有寫許可權的用戶在此目錄中創建的文件所屬的組為此目錄的屬組,通常用於創建一個協作目錄。
Sticky:
默認情況下用戶可以刪除具有寫許可權的目錄中的任何文件,無論該文件的許可權或擁有權,如果在目錄設置Sticky位,只有文件的所有者或root**可以刪除該文件,Sticky位是作用在文件夾的,設置在文件上毫無意義。

❿ Linux許可權詳解(chmod、600、644、666、700、711、755、777、4755、6755、7755)

許可權簡介

Linux系統上對文件的許可權有著嚴格的控制,用於如果相對某個文件執行某種操作,必須具有對應的許可權方可執行成功。

Linux下文件的許可權類型一般包括讀,寫,執行。對應字母為 r、w、x。

Linux下許可權的粒度有

擁有者 、群組 、其它組 三種。每個文件都可以針對三個粒度,設置不同的rwx(讀寫執行)許可權。通常情況下,一個文件只能歸屬於一個用戶和組,

如果其它的用戶想有這個文件的許可權,則可以將該用戶加入具備許可權的群組,一個用戶可以同時歸屬於多個組。

Linux上通常使用chmod命令對文件的許可權進行設置和更改。

一、快速入門

更改文件許可權 (chmod命令)

一般使用格式

chmod [可選項]

可選項:  -c, --changes          like verbose but report onlywhena change is made (若該檔案許可權確實已經更改,才顯示其更改動作)  -f, --silent, --quiet  suppress most error messages(若該檔案許可權無法被更改也不要顯示錯誤訊息)  -v, --verbose          output a diagnosticforevery file processed(顯示許可權變更的詳細資料)      --no-preserve-rootdonottreat'/'specially (the default)      --preserve-root    fail to operate recursively on'/'      --reference=RFILE  use RFILE's mode instead of MODE values-R, --recursive        change files and directories recursively(以遞歸的方式對目前目錄下的所有檔案與子目錄進行相同的許可權變更)--help顯示此幫助信息--version顯示版本信息mode :許可權設定字串,詳細格式如下 :[ugoa...][[+-=][rwxX]...][,...],其中[ugoa...]

u 表示該檔案的擁有者,g 表示與該檔案的擁有者屬於同一個群體(group)者,o 表示其他以外的人,a 表示所有(包含上面三者)。[+-=]

+ 表示增加許可權,- 表示取消許可權,= 表示唯一設定許可權。[rwxX]

r 表示可讀取,w 表示可寫入,x 表示可執行,X 表示只有當該檔案是個子目錄或者該檔案已經被設定過為可執行。

file...文件列表(單個或者多個文件、文件夾)

範例:

設置所有用戶可讀取文件 a.conf

設置 c.sh 只有 擁有者可以讀寫及執行

設置文件 a.conf 與 b.xml 許可權為擁有者與其所屬同一個群組 可讀寫,其它組可讀不可寫

設置當前目錄下的所有檔案與子目錄皆設為任何人可讀寫

數字許可權使用格式

在這種使用方式中,首先我們需要了解數字如何表示許可權。

首先,我們規定 數字 4 、2 和 1表示讀、寫、執行許可權(具體原因可見下節許可權詳解內容),即 r=4,w=2,x=1

。此時其他的許可權組合也可以用其他的八進制數字表示出來,如: rwx = 4 + 2 + 1 = 7 rw = 4 + 2 = 6 rx = 4

+1 = 5 即

若要同時設置

rwx (可讀寫運行) 許可權則將該許可權位 設置 為 4 + 2 + 1 = 7 若要同時設置 rw- (可讀寫不可運行)許可權則將該許可權位 設置

為 4 + 2 = 6 若要同時設置 r-x (可讀可運行不可寫)許可權則將該許可權位 設置 為 4 +1 = 5

上面我們提到,每個文件都可以針對三個粒度,設置不同的rwx(讀寫執行)許可權。即我們可以用用三個8進制數字分別表示 擁有者 、群組 、其它組( u、 g 、o)的許可權詳情,並用chmod直接加三個8進制數字的方式直接改變文件許可權。語法格式為 :

chmod file...

其中a,b,c各為一個數字,分別代表User、Group、及Other的許可權。相當於簡化版的chmod u=許可權,g=許可權,o=許可權file...而此處的許可權將用8進制的數字來表示User、Group、及Other的讀、寫、執行許可權

範例:

設置所有人可以讀寫及執行

設置擁有者可讀寫,其他人不可讀寫執行

更改文件擁有者(chown命令)

linux/Unix 是多人多工作業系統,每個的文件都有擁有者(所有者),如果我們想變更文件的擁有者(利用 chown 將文件擁有者加以改變),一般只有系統管理員(root)擁有此操作許可權,而普通用戶則沒有許可權將自己或者別人的文件的擁有者設置為別人。

語法格式:

chown [可選項] user[:group] file...

使用許可權:root說明:[可選項] :同上文chmoser :新的文件擁有者的使用者group :新的文件擁有者的使用者群體(group)

範例:

設置文件 d.key、e.scrt的擁有者設為 users 群體的 tom

設置當前目錄下與子目錄下的所有文件的擁有者為 users 群體的 James

二、Linux許可權詳解

Linux系統上對文件的許可權有著嚴格的控制,用於如果相對某個文件執行某種操作,必須具有對應的許可權方可執行成功。這也是Linux有別於Windows的機制,也是基於這個許可權機智,Linux可以有效防止病毒自我運行,因為運行的條件是必須要有運行的許可權,而這個許可權在Linux是用戶所賦予的。

Linux的文件許可權有以下設定:

Linux下文件的許可權類型一般包括讀,寫,執行。對應字母為 r、w、x。

Linux下許可權的屬組有 擁有者 、群組 、其它組 三種。每個文件都可以針對這三個屬組(粒度),設置不同的rwx(讀寫執行)許可權。

通常情況下,一個文件只能歸屬於一個用戶和組, 如果其它的用戶想有這個文件的許可權,則可以將該用戶加入具備許可權的群組,一個用戶可以同時歸屬於多個組。

如果我們要表示一個文件的所有許可權詳情,有兩種方式:

第一種是十位二進製表示法,(三個屬組每個使用二進制位,再加一個最高位共十位),可簡化為三位八進制形式

另外一種十二位二進製表示法(十二個二進制位),可簡化為四位八進制形式

十位許可權表示

常見的許可權表示形式有:

-rw------- (600)只有擁有者有讀寫許可權。-rw-r--r-- (644)只有擁有者有讀寫許可權;而屬組用戶和其他用戶只有讀許可權。-rwx------ (700)只有擁有者有讀、寫、執行許可權。-rwxr-xr-x (755)擁有者有讀、寫、執行許可權;而屬組用戶和其他用戶只有讀、執行許可權。-rwx--x--x (711)擁有者有讀、寫、執行許可權;而屬組用戶和其他用戶只有執行許可權。-rw-rw-rw- (666)所有用戶都有文件讀、寫許可權。-rwxrwxrwx (777)所有用戶都有讀、寫、執行許可權。

後九位解析:我們知道Linux許可權總共有三個屬組,這里我們給每個屬組使用三個位置來定義三種操作(讀、寫、執行)許可權,合起來則是許可權的後九位。 上面我們用字元表示許可權,其中 -代表無許可權,r代表讀許可權,w代表寫許可權,x代表執行許可權。

實際上,後九位每個位置的意義(代表某個屬組的某個許可權)都是固定的,如果我們將各個位置許可權的有無用二進制數 1和 0來代替,則只讀、只寫、只執行許可權,可以用三位二進制數表示為

r--=100-w-=010--x=001---=000

轉換成八進制數,則為 r=4, w=2, x=1, -=0(這也就是用數字設置許可權時為何是4代表讀,2代表寫,1代表執行)

實際上,我們可以將所有的許可權用二進制形式表現出來,並進一步轉變成八進制數字:

rwx=111=7rw-=110=6r-x=101=5r--=100=4-wx=011=3-w-=010=2--x=001=1---=000=0

由上可以得出,每個屬組的所有的許可權都可以用一位八進制數表示,每個數字都代表了不同的許可權(權值)。如 最高的許可權為是7,代表可讀,可寫,可執行。

故 如果我們將每個屬組的許可權都用八進制數表示,則文件的許可權可以表示為三位八進制數

-rw------- =600-rw-rw-rw- =666-rwxrwxrwx =777

關於第一位最高位的解釋:上面我們說到了許可權表示中後九位的含義,剩下的第一位代表的是文件的類型,類型可以是下面幾個中的一個:

d代表的是目錄(directroy)-代表的是文件(regular file)s代表的是套字文件(socket)p代表的管道文件(pipe)或命名管道文件(named pipe)l代表的是符號鏈接文件(symbolic link)b代表的是該文件是面向塊的設備文件(block-oriented device file)c代表的是該文件是面向字元的設備文件(charcter-oriented device file)

十二位許可權(Linux附加許可權)

附加許可權相關概念

linux除了設置正常的讀寫操作許可權外,還有關於一類設置也是涉及到許可權,叫做Linxu附加許可權。包括 SET位許可權(suid,sgid)和粘滯位許可權(sticky)。

SET位許可權:

suid/sgid是為了使「沒有取得特權用戶要完成一項必須要有特權才可以執行的任務」而產生的。

一般用於給可執行的程序或腳本文件進行設置,其中SUID表示對屬主用戶增加SET位許可權,SGID表示對屬組內用戶增加SET位許可權。執行文件被設置了SUID、SGID許可權後,任何用戶執行該文件時,將獲得該文件屬主、屬組賬號對應的身份。在許多環境中,suid

和 sgid 很管用,但是不恰當地使用這些位可能使系統的安全遭到破壞。所以應該盡量避免使用SET位許可權程序。(passwd

命令是為數不多的必須使用「suid」的命令之一)。

suid(set User ID,set UID)的意思是進程執行一個文件時通常保持進程擁有者的UID。然而,如果設置了可執行文件的suid位,進程就獲得了該文件擁有者的UID。

sgid(set Group ID,set GID)意思也是一樣,只是把上面的進程擁有者改成進程組就好了。

SET位許可權表示形式(10位許可權):

如果一個文件被設置了suid或sgid位,會分別表現在所有者或同組用戶的許可權的可執行位上;如果文件設置了suid還設置了x(執行)位,則相應的執行位表示為s(小寫)。但是,如果沒有設置x位,它將表示為S(大寫)。如:

1、-rwsr-xr-x表示設置了suid,且擁有者有可執行許可權2、-rwSr--r--表示suid被設置,但擁有者沒有可執行許可權3、-rwxr-sr-x表示sgid被設置,且群組用戶有可執行許可權4、-rw-r-Sr--表示sgid被設置,但群組用戶沒有可執行許可權

設置方式:

SET位許可權可以通過chmod命令設置,給文件加suid和sgid的命令如下(類似於上面chmod賦予一般許可權的命令):

chmo+sfilename設置suid位chmo-sfilename去掉suid設置chmodg+sfilename設置sgid位chmodg-sfilename去掉sgid設置

粘滯位許可權:

粘滯位許可權即sticky。一般用於為目錄設置特殊的附加許可權,當目錄被設置了粘滯位許可權後,即便用戶對該目錄有寫的許可權,也不能刪除該目錄中其他用戶的文件數據。設置了粘滯位許可權的目錄,是用ls查看其屬性時,其他用戶許可權處的x將變為t。

使用chmod命令設置目錄許可權時,+t、-t許可權模式可分別用於添加、移除粘滯位許可權。

粘滯位許可權表示形式(10位許可權):

一個文件或目錄被設置了粘滯位許可權,會表現在其他組用戶的許可權的可執行位上。如果文件設置了sticky還設置了x(執行)位,其他組用戶的許可權的可執行位為t(小寫)。但是,如果沒有設置x位,它將表示為T(大寫)。如:

1、-rwsr-xr-t表示設置了粘滯位且其他用戶組有可執行許可權2、-rwSr--r-T表示設置了粘滯位但其他用戶組沒有可執行許可權

設置方式:

sticky許可權同樣可以通過chmod命令設置:

chmod +t <文件列表..>

十二位的許可權表示方法

附加許可權除了用十位許可權形式表示外,還可以用用十二位字元表示。

11109876543210S  G  T r w x r w x r w x

SGT分別表示SUID許可權、SGID許可權、和 粘滯位許可權,這十二位分別對應關系如下:

第11位為SUID位,第10位為SGID位,第9位為sticky位,第8-0位對應於上面的三組rwx位(後九位)。

在這十二位的每一位上都置值。如果有相應的許可權則為1, 沒有此許可權則為0。

-rw-r-sr--的值為:010110100100-rwsr-xr-x的值為:100111101101-rwsr-sr-x的值為:110111101101-rwsr-sr-t的值為:111111101101

如果將則前三位SGT也轉換成一個二進制數,則

suid 的八進制數字是4

sgid 的代表數字是 2

sticky 位代表數字是1

這樣我們就可以將十二位許可權三位三位的轉化為4個八進制數。其中

最高的一位八進制數就是suid,sgdi,sticky的權值。

第二位為 擁有者的權值

第三位為 所屬組的權值

最後一位為 其他組的權值

附加許可權的八進制形式

通過上面,我們知道,正常許可權和附加許可權可以用4位八進制數表示。類似於正常許可權的數字許可權賦值模式(使用三位八進制數字賦值)

chmod file...

我們可以進一步使用4位八進制數字同時賦值正常許可權和附加許可權。

chmod file...

其中s是表示附加許可權的把八進制數字,abc與之前一致,分別是對應User、Group、及Other(擁有者、群組、其他組)的許可權。因為SUID對應八進制數字是4,SGID對於八進制數字是2,則「4755」表示設置SUID許可權,「6755」表示同時設置SUID、SGID許可權。

我們進一步將上小節的例子中的二進制數轉變為八進製表示形式,則

-rw-r-sr-- =010110100100=2644-rwsr-xr-x =100111101101=4755-rwsr-sr-x =110111101101=6755-rwsr-sr-t =111111101101=7755

對比範例:

設置 netlogin 的許可權為擁有者可讀寫執行,群組和其他許可權為可讀可執行

設置 netlogin 的許可權為擁有者可讀寫執行,群組和其他許可權為可讀可執行,並且設置suid

chmod 4755與chmod 755對比多了附加許可權值4,這個4表示其他用戶執行文件時,具有與所有者同樣的許可權(設置了SUID)。

為什麼要設置4755 而不是 755?

假設netlogin是root用戶創建的一個上網認證程序,如果其他用戶要上網也要用到這個程序,那就需要root用戶運行chmod 755 netlogin命令使其他用戶也能運行netlogin。但假如netlogin執行時需要訪問一些只有root用戶才有權訪問的文件,那麼其他用戶執行netlogin時可能因為許可權不夠還是不能上網。這種情況下,就可以用 chmod 4755 netlogin 設置其他用戶在執行netlogin也有root用戶的許可權,從而順利上網。

熱點內容
蘋果和安卓哪個看小說方便 發布:2025-07-13 00:20:25 瀏覽:755
網址訪問量查詢 發布:2025-07-13 00:13:25 瀏覽:976
thinkphp關掉緩存 發布:2025-07-12 23:44:01 瀏覽:86
互動平台源碼 發布:2025-07-12 23:42:15 瀏覽:9
矩形密碼是什麼 發布:2025-07-12 23:41:15 瀏覽:407
kvm存儲技術包括 發布:2025-07-12 23:41:15 瀏覽:950
安卓手機網路怎麼設置才好 發布:2025-07-12 23:33:01 瀏覽:272
怎麼修改手機號服務密碼 發布:2025-07-12 23:29:37 瀏覽:158
myeclipsejsp資料庫連接 發布:2025-07-12 23:26:25 瀏覽:553
凱迪拉克ct6電磁懸掛是哪個配置 發布:2025-07-12 23:24:38 瀏覽:597