[樂意黎原創] 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 是修改命令
樂意黎