文件的基本權限:r w x (UGO) 簡介

1.1.1 文件的基本權限的作用:

通過對文件設定權限可以達到以下三種訪問限制權限:

隻允許用戶自己訪問;

允許一個預先指定的用戶組中的用戶訪問;

允許系統中的任何用戶訪問;

1.1.2 查看權限 [root@Linux1 ~]# ll /etc/passwd

-rw-r--r--. 1 root root 2393 1月 26 09:52 /etc/passwd

文件權限基本解釋:

-rw-r--r--. 1 root root 2393 1月 26 09:52 /etc/passwd

其中:文件類型,可以為 p、d、l、s、c、b 和 –

p:表示命名管道文件;

d:表示目錄文件;

l:表示符號鏈接文件;

-:表示普通文件;

s:表示 socket 套接口文件;比如我們啟用 mysql 時,會產生一個 mysql.sock 文件

c:表示字符設備文件;例: 虛擬控制臺 或 tty0

b: 表示塊設備文件; 例: sda, cdrom

1.1.3 權限說明

對於文件來說:

r:讀 cat

w:寫 vim echo

x:執行 運行命名或者腳本

對於目錄來說:

r:讀(看到目錄裡面有什麼) ls

w:在目錄裡面新建文件,刪除,移動 touch mkdir rm mv cp

x:目錄是不能直接運行的,對目錄賦予 x 權限,代表用戶可以進入目錄,也就是說,賦予 x 權限的用戶或群組可以使用 cd 命令。

1.1.4 文件擁有者

UGO:所有者--用戶組--其它用戶

User-所有者: 就是創建文件的用戶,這個用戶擁有對它所創建的文件的一切權限,所有者可以允許其所在的用戶組可以訪問所有者的文件。

Group-用戶組: 用戶組是具有相同特征用戶的邏輯集合,有時我們需要讓多個用戶具有相同的權限,比如查看、修改某一個文件的權限,一種方法是分別對多個用戶進行文件訪問授權,如果有 10 個用戶的話,就需要授權 10 次,顯然這種方法不太合理;另一種方法是建立一個組,讓這個組具有查看、修改此文件的權限,然後將所有需要訪問此文件的用戶放入這個組中,那麼所有用戶就具有瞭和組一樣的權限。這就是用戶組。

Other-其它用戶:系統內的其他所有者用戶就是 other 用戶類

1.1.5 常見幾種文件權限組成

-rwx --- ---:文件所有者對文件具有讀取、寫入和執行的權限。

-rwx r-- r--: 文件所有者具有讀、寫與執行的權限,用戶組裡用戶及其他用戶則具有讀取的權限。

-rw- rw- r-x:文件所有者與同組用戶對文件具有讀寫的權限,而其他用戶僅具有讀取和執行的權限。

drwx--x--x: 目錄所有者具有讀寫與進入目錄的權限,其他用戶近能進入該目錄,卻無法讀取任何數據。

drwx------: 除瞭目錄所有者具有完整的權限之外,其他用戶對該目錄完全沒有任何權限。

舉例如下1:

每個用戶都擁有自己的專屬目錄,通常放置/home 下

[root@Linux1 ~]# ll /home/

總用量 4

drwx------. 15 admin admin 4096 1月 26 09:19 admin

drwx------. 3 team1 team1 78 1月 25 15:54 team1

drwx------. 3 team2 team2 78 1月 25 15:54 team2

drwx------. 5 user1 user1 157 1月 26 10:39 user1

註: [rwx------]表示目錄所有者本身擁有的權限,其它用戶是無法進入的。 root 可以。

舉例如下2:

你以什麼用戶身份登錄,那麼你創建的文件或目錄,自動成為該文件的所屬主和組

[root@Linux1 ~]# useradd user1

[root@Linux1 ~]# su - user1

[user1@Linux1 ~]$ touch a.txt

[user1@Linux1 ~]$ ll a.txt

-rw-rw-r--. 1 user1 user1 0 1月 26 09:52 a.txt

互動: su - user1 和 su user1 的區別?

[root@Linux1 ~]# su - user1 #從 root 切換到普通用戶 user1

上一次登錄:三 1月 26 09:52:49 CST 2022pts/0 上

[user1@Linux1 ~]$ pwd

/home/user1

[user1@Linux1 ~]$ exit

登出

[root@Linux1 ~]# su user1

[user1@Linux1 root]$ pwd

/root

[user1@Linux1 root]$ touch a.txt

touch: 無法創建"a.txt": 權限不夠

[user1@Linux1 root]$ cd /home/user1/

[user1@Linux1 ~]$ touch a.txt

[user1@Linux1 ~]$ exit

exit

註: su - 用戶,加上-減號,切換用戶時,會把用戶傢目錄和環境變量都徹底切成用 user1 的。 不加-減號,保留切換前的路徑和環境變量。 一般切換用戶都加減號- 。

1.1.6 更改文件的屬主和屬組

改變文件的所屬關系用到命令:

chown:可以用來改變文件(或目錄)的屬主

chgrp:可以用來改變文件(或目錄)的默認屬組(不常用)

如果你要對目錄進行操作,加參數 -R

語法:chown

user:group filename 比如:chown hr:san a.txt 把文件的屬主改為 hr 屬組改為san

chown user filename 比如:chown san a.txt 把文件的屬主改為 san 用戶

chown :group filename 比如: chown :miao a.txt 把文件的屬組改為 miao 組 :也可以用.代替

-R :遞歸(目錄下的所有內容都更改,否則隻修改目錄)

例: [root@Linux1 ~]# touch {a,b,c}.txt

[root@Linux1 ~]# ll *.txt

-rw-r--r--. 1 root root 0 1月 26 10:32 a.txt

-rw-r--r--. 1 root root 0 1月 26 10:32 b.txt

-rw-r--r--. 1 root root 0 1月 26 10:32 c.txt

[root@Linux1 ~]# chown user1 a.txt

[root@Linux1 ~]# ll a.txt

-rw-r--r--. 1 user1 root 0 1月 26 10:32 a.txt

[root@Linux1 ~]# chown user1:user1 a.txt

[root@Linux1 ~]# ll a.txt

-rw-r--r--. 1 user1 user1 0 1月 26 10:32 a.txt

[root@Linux1 ~]# chown :root a.txt

[root@Linux1 ~]# ll a.txt

-rw-r--r--. 1 user1 root 0 1月 26 10:32 a.txt

[root@Linux1 ~]# chown .bin a.txt

[root@Linux1 ~]# ll a.txt

-rw-r--r--. 1 user1 bin 0 1月 26 10:32 a.txt

互動:一個文件隻有讀的權限,擁有者是否可以寫這個文件?

實驗:

[root@Linux1 ~]# su - user1

上一次登錄:三 1月 26 10:10:25 CST 2022pts/0 上

[user1@Linux1 ~]$ touch a.txt

[user1@Linux1 ~]$ ll a.txt

-rw-rw-r--. 1 user1 user1 0 1月 26 10:37 a.txt

[user1@Linux1 ~]$ chmod 000 a.txt

[user1@Linux1 ~]$ ll a.txt

----------. 1 user1 user1 0 1月 26 10:37 a.txt

[user1@Linux1 ~]$ vim a.txt # 寫入 aaa , :wq! 保存

在另一個終端上,以 root 身份登錄:

[root@Linux1 ~]# cat /home/user1/a.txt

aaa

註:使用 user1 身份,無法查看 cat /home/user1/a.txt

[user1@Linux1 ~]$ cat /home/user1/a.txt

cat: /home/user1/a.txt: 權限不夠

實驗結果:文件所有者一定可以寫文件。 就像 root 可以對 shadow 強制寫。 因 shadow 的擁有者是 root

1.1.7 修改權限

方法 1:使用字符設定

修改權限用的命令:chmod

作用:修改文件,目錄的權限

語法:chmod [對誰操作] [操作符] [賦於什麼權限] 文件名

對誰操作:

u----> 用戶 user,表示文件或目錄的所有者

g---->用戶組 group,表示文件或目錄所屬的用戶組

o---->其它用戶 others

a---->所有用戶 all

操作符:

  • #添加權限 ; - # 減少權限 ; = #直接給定一個權限

權限:r w x

例如下面的組合:

u-w user 擁有者

g+x group 組

o=r other 其他人

a+x all 所有人

741a70e74aa754476583368eee9fcdcced4735b7e4c945b0c214f37bd628682a

例 :

互動:rw- 的值是多少 答: 4+2=6

rwx r-x r-x 的值是多少 答: rwx=4+2+1=7 ; r-x=4+1=5 rwx r-x r-x=755

語法:

chmod 755 文件或文件夾名字

chmod a=rwx b.txt 等於 chmod 777 b.txt

例:

[root@Linux1 ~]# touch dd.txt

[root@Linux1 ~]# ll dd.txt

-rw-r--r--. 1 root root 0 1月 26 10:58 dd.txt

[root@Linux1 ~]# chmod 755 dd.txt

[root@Linux1 ~]# ll dd.txt

-rwxr-xr-x. 1 root root 0 1月 26 10:58 dd.txt

[root@Linux1 ~]# chmod 700 dd.txt

[root@Linux1 ~]# ll dd.txt

-rwx------. 1 root root 0 1月 26 10:58 dd.txt

1.1.8 權限對文件和目錄的影響

有三種權限可以應用:讀取,寫入與執行,這些權限對訪問文件和目錄的影響如下:

權限 對文件的影響 對目錄的影響 r(讀取) 可以讀取文件的內容 可以列出目錄的內容(文件名)

w(寫入) 可以更改文件的內容 可以創建或刪除目錄中的任意文件

x(執行) 可以作為命令執行文件 可以訪問目錄的內容(取決於目錄中文件的權限)

擴展:補碼

為什麼我們創建的文件的權限默認是 644 呢?

我們創建文件的默認權限是怎麼來的?

umask 命令允許你設定文件創建時的缺省模式,對應每一類用戶(文件屬主、同組用戶、其他用戶)存在一個相應的 umask 值中的數字。

文件默認權限=666 ,目錄默認權限=777

我們一般在/etc/profile、 [HOME]/.bash_profile 或[HOME]/.profile 中設置 umask 值。

永久生效,編輯用戶的配置文件 vim .bash_profile

[root@Linux1 ~]# vim /etc/profile

e0e22f269979529ef28822fa39a3f604

註: UID 大於 199 且用戶的組名和用戶名一樣,那麼 umask 值為 002,否則為 022。

註: -gt 在 shell 中表示大於; id -gn 顯示組名,id -un 顯示用戶名 id -g 顯示用戶組 ID ,id -u 顯示用戶 id

權限科學的計算方法步驟:

1、將默認權限(目錄 777,文件 666)和 umask 值都轉換為 2 進制

2、對 umask 取反

3、將默認權限和 umask 取反後的值做與運算

4、將得到的二進制值再轉換 8 進制,即為權限,

http://tool.lu/hexconvert/ 在線進制轉換器

发表回复

相关推荐

香港公司必备知识 | 3分钟了解商业登记证

根据香港《商业登记条例》(第310章)的规定,任何在香港经营业务的人士,都需要在公司开业之后的一个月内,以书面通知向税局 ...

· 6分钟前

被聯合抵制!四川大學走到今天這一步,純屬自找的

“落實立德樹人根本任務有差距,思想政治工作不夠到位,師德師風建設不夠紮實,加強學科建設不夠有力。”“落實全面從嚴治黨兩個...

· 14分钟前

小户型福利,7款迷你衣帽间设计方案,超实用!

其实在心底, 每个女生都希望有一间属于自己的衣帽间(包括丽酱在内)。 我们在很多影视剧里都看过这样梦幻敞亮的衣帽间,简 ...

· 14分钟前

直流電機和交流電機有什麼不同

1、首要兩者的外部供電不同,直流電機運用直流電做為電源;而交流電機則是運用交流電做為電源。2、從結構上說,前者的原理相...

· 16分钟前

转帖 欲加之罪,何患无辞–袁崇焕十二宗罪辨析

这是《袁崇焕之孤城》第二部《孤忠》后记之二(已在起点首发),看到凤凰网“袁崇焕是怎样走上神坛的?”等几组专稿以及起点中 ...

· 17分钟前