1. 程式人生 > >[樂意黎原創] Centos下目錄許可權和使用者名稱使用者組等操作命令詳解

[樂意黎原創] Centos下目錄許可權和使用者名稱使用者組等操作命令詳解

1. Linux/Centos 許可權命令常識:

Linux作業系統是多使用者多工作業系統,包括使用者賬戶和組賬戶兩種:

細分使用者賬戶(普通使用者賬戶,超級使用者賬戶)除了使用者賬戶以為還有組賬戶所謂組賬戶就是使用者賬戶的集合,centos組中有兩種型別,私有組和標準組:

當建立一個新使用者時,若沒有指定他所屬的組,centos就建立以個和該使用者相同的私有組,此私有組中只包括使用者自己。

標準組可以容納多個使用者,如果要使用標準組,那建立一個新的使用者時就應該指定他所屬於的組,從另外一方面講,同一個使用者可以屬於多個組。當一個使用者屬於多個組時,其登入後所屬的組是主組,其它組為附加組。

賬戶系統檔案主要在 /etc/passwd, /etc/shadow,/etc/group,和/etc/gshadow四個檔案中。

其中root的uid是0,從1-499是系統的標準賬戶,普通使用者從uid 500開始。

1. 許可權命令
chgrp,改變檔案所屬使用者組;
chown,改變檔案所有者;
chmod,改變檔案的許可權。  

chmod -R 777 /usr/data/websites/  #設定websites下所有檔案的許可權


2.chgrp就是change group的簡稱

使用該指令時,要被改變的組名必須在/etc/group檔案記憶體在才行。
#chgrp [-R] group filename(or dirname),其中R表示進行遞迴(recursive)的持續更改,也即連同子目錄下的所有檔案、目錄。
所以當修改一個目錄中所有檔案的使用者組(所有者與許可權也一樣)時,要加上-R。

例如將檔案install.log改到users使用者組
$chgrp users install.log


3.chown就是change owner的簡稱。

#chown [-R] user filename(or dirname),改變file的檔案所有者為user。
#chown [-R] .group filename(or dirname),改變file的使用者組為group(注意加點)。
#chown [-R] user.group filename(or dirname),改變file的檔案所有者為user,使用者組為group。
為避免“.”引起的系統誤判,通常用一下命令表示該句:
#chown [-R] user:group filename(or dirname)。


4.複製檔案給其他人,複製命令:
$cp [-option] [source file or dir] [target file or dir]
複製行為(cp)會複製執行者的屬性與許可權,所以即使複製到他人使用者組仍然無法使用,
所以這時必須修改該許可權。


5.chmod就是change mode bits的簡稱。

數字型別改變檔案許可權:
#chmod [-R] xyz fileordir,其中x代表owner許可權,y代表group許可權,z代表others許可權。
r=4,w=2,x=1,上面三種身份的許可權是r+w+x的和,如果沒有相應的許可權,則值為0。
例如:install.log檔案,owner=rwx=4+2+1=7,group=rwx=4+2+1=7,others=---=0+0+0=0,
     所以這個檔案的將改變許可權值為770:
#chmod 770 install.log。


6.符號型別改變檔案許可權

可以用u,g,o三個引數來代表user,group,others 3種身份的許可權。
a代表all,也即全部的身份。

讀寫的許可權就可以寫成r,w,x。
+,-,=分別代表加入,出去,設定一個許可權。
加入要設定一個檔案的許可權成“-rwxr-xr-x,指令為:

#chmod u=rwx,go=rx filename,注意加上那個逗號。
要給一個檔案的全部身份加上x許可權,則指令為:
#chmod a+x filename。

2. Linux系統下經常遇到檔案或者資料夾的許可權問題,或者是因為資料夾所屬的使用者問題而沒有訪問的許可權。


根據我自己遇到的情況,對這類問題做一個小結。
在命令列使用命令“ll”或者“ls -a”,可以檢視檔案或者檔案的許可權:

ls -ld /usr/data/websites
drwxr-xr-x. 4 aerchi web 4096 Nov  29 09:42 /usr/data/webistes

其中“drwxr-xr-x”表示許可權,一共有10字元。

第一個字元,如果是“-”則表示是檔案,如果是“d”則表示是目錄(directory)。

後面9個字元, 每3個字元為一個組,則有3組資訊(“rwx”、“r-x”、“r-x”),分別表示所屬使用者本身具有的許可權、所屬使用者組其他成員的許可權、其他使用者的許可權。

每組資訊如“rwx”,每一個字元都有它自己的特定含義且先後位置是固定的 。其中r是讀許可權、w是寫許可權、x是可執行許可權、-沒有對應字元的許可權。
Linux裡面對這些字元設定對應的數值,r是4,w是2,x是1,-是0。

說明如下:

1引數:   “-”則是檔案,“d”是目錄
2-4引數:  屬於user許可權
5-7引數:  屬於group許可權
8-10引數:  屬於others許可權
------------------

“d”  : 表示為目錄
“rwx” :使用者許可權  7 
“r-x” :  使用者組許可權  5 
“r-x” :  其它使用者許可權  5


上面的“rwx”則是7(=4+2+1),所以最開始/usr/data/websites的許可權是755,屬於web使用者組的aerchi使用者。


注: 如下,當前目錄為 /usr/data/websites,  下面包含子目錄 aerchi,  

子目錄 aerchi下包含 aerchi.txt, 即   /usr/data/websites/aerchi/aerchi.txt

3. 許可權修改 chmod

3.1 檔案的許可權修改

我想修改檔案aerchi.txt的許可權為755,則為:

[[email protected] websites]# ll
-rwxr-xr-x. 1 aerchi web 6 Nov 29 09:42 aerchi.txt #改之前許可權是755, 使用者:aerchi, 使用者組:web

[[email protected] websites]# chmod 775 aerchi.txt

[[email protected] websites]# ll
-rwxrwxr-x. 1 aerchi web 6 Nov 29 09:42 aerchi.txt #改後許可權是775

 

3.2 資料夾的許可權修改

修改之前:

[[email protected] websites]# ll

drw-r--r--. 2 root root 4096 Nov 9 16:42 aerchi #改之前資料夾aerchi的許可權是644

[[email protected] websites]# ll aerchi/

-rwxr-xr-x. 1 root root 6 Nov 9 16:42 a.txt #改之前資料夾my的裡面的檔案許可權是755

3.2.1 改變資料夾本身許可權,不改動子檔案(夾)

執行命令修改aerchi資料夾許可權為600:

[[email protected] websites]# chmod 600 aerchi/ #修改命令

[[email protected] websites]# ll

drw-------. 2 root root 4096 Nov 29 09:42 aerchi #改aerchi目錄之後許可權是600

[[email protected] websites]# ll aerchi/

-rwxr-xr-x. 1 root root 6 Nov 29 09:42 aerchi.txt #改aerchi目錄之後裡面的檔案許可權還是755,沒有變化

3.2.2  資料夾及子目錄下所有檔案(夾)許可權修改

執行1.2.1步驟之後,aerchi目錄和裡面的檔案許可權都是不同的。現在遞迴修改,都改為統一的許可權777:

[[email protected] websites]# chmod -R 777 aerchi/ #修改命令,注意中間是大寫的R,不是小寫

[[email protected] websites]# ll

drwxrwxrwx. 2 root root 4096 Nov 29 09:42 aerchi #修改後aerchi資料夾許可權是777

[[email protected] websites]# ll aerchi/

-rwxrwxrwx. 1 root root 6 Nov 29 09:42 aerchi.txt #修改後裡面的檔案變為了777


4. 所屬使用者和使用者組修改chown 

這個和修改資料夾的許可權是基本相同的,只不過是把chmod命令換成了chown。

4.1 檔案所屬使用者和使用者組修改

修改aerchi.txt檔案所屬使用者(test-user)和使用者組(test-group):

chown test-user:test-group aerchi.txt #修改檔案所屬使用者為test-user,所屬使用者組為test-group

4.2 資料夾所屬使用者和使用者組修改

4.2.1 只修改資料夾本身所屬使用者和使用者組,不改子檔案(夾)

僅修改目錄aerchi 本身所屬使用者(test-user)和使用者組(test-group):

chown test-user:test-group aerchi #修改檔案所屬使用者為test-user,所屬使用者組為test-group

4.2.2 資料夾及所有子檔案(夾)所屬使用者和使用者組修改

遞迴修改資料夾aerchi及包含的所有子檔案(夾)的所屬使用者(test-user)和使用者組(test-group):

chown -R test-user:test-group aerchi #修改檔案所屬使用者為test-user,所屬使用者組為test-group


5. 總結

修改單個檔案(夾), 用命令:

chown或chmod    “許可權”或“名:組”    檔案(夾)名稱

修改資料夾及其包含的子資料夾所有檔案, 用命令:

chown或chmod  -R   “許可權”或“名:組”    資料夾名稱

比如我修改目錄許可權:

//注: group-aerchi 為使用者組, 
//ftp-aerchi 用vsftp使用者名稱, ng-nginx 為nginx使用者名稱,apache-daemon 為apache使用者名稱
groupadd group-aerchi  //使用者組
usermod -G group-aerchi ftp-aerchi   //ftp使用者新增至使用者組
usermod -G group-aerchi nginx-nginx   //nginx使用者新增至使用者組
usermod -G group-aerchi apache-daemon   //apache使用者新增至使用者組
chown -R :group-aerchi /usr/data/web-sites && chmod 775 -R /usr/data/web-sites //為使用者組賦予 /usr/data/web-sites目錄 775許可權

6. 其它常用命令:

1. 新建使用者 
adduser user #新建user 使用者 
passwd user #給user 使用者設定密碼


2. 新建工作組 
groupadd group #新建group工作組


3.新建使用者同時增加工作組 
useradd -g group user #新建user使用者並增加到group工作組

//注:-g 所屬組, -d 家目錄, -s 所用的SHELL


4.給已有的使用者增加工作組 
usermod -G groupname username

5.臨時關閉 
在/etc/shadow檔案中,屬於該使用者的行的第二個欄位(密碼)前面加上就可以了。
恢復該使用者,去掉即可 
//或者使用如下命令關閉使用者賬號: 
passwd user –l 
//重新釋放: 
passwd user –u


6.永久性刪除使用者賬號 
userdel user 
groupdel group 
usermod –G group user //(強制刪除該使用者的主目錄及其所有子目錄和子檔案)


7.顯示使用者資訊 
id user 
cat /etc/passwd

檢視使用者和使用者組的方法:

使用者列表檔案:/etc/passwd 
使用者組列表檔案:/etc/group 
檢視系統中有哪些使用者:cut -d:-f 1 /etc/passwd 
檢視可以登入系統的使用者:cat /etc/passwd | grep -v /sbin/nologin | cut -d:-f 1 
檢視使用者操作:w命令 (#需要root許可權) 
檢視某一使用者:w 使用者名稱 
檢視登入使用者:who 
檢視使用者登入歷史記錄:last

-----------------------------------------------------------------

useradd user1 #新增使用者1

useradd user2 #新增使用者2

groupadd group1 #建立名為group1的組

gpasswd  -a  user1 group1 #給使用者user1新增到group1中 或 usermod -G group1 user1

gpasswd  -a  user2 group1 #給使用者user2新增到group1中 或 usermod -G group1 user2

grep  group1 /etc/group #(或者 cat etc/group |grep group1)

mkdir -p /usr/data/websites  #建立目錄

ls -ld /usr/data/websites  #檢視目錄資訊

chmod 775 /usr/data/websites  #修改目錄許可權

chgrp group1 /usr/data/websites  #給group1組分配檔案

chown -R :group1 /test/software && chmod 775 -R /test/software #給使用者組group1賦予/test/software 目錄775許可權


vim /etc/group #檢視並可修改使用者組

以下命令檢視相應許可權
cat /etc/passwd #可以檢視使用者的pass
cat /etc/shadow #可以檢視使用者名稱
cat /etc/group  #可以檢視 組

#注 cat 僅顯示, vim 是修改命令

 樂意黎

本文地址: https://blog.csdn.net/aerchi/article/details/84615597