用戶的管理權限設置與更改以及ACL的存在及其實用意義
一.用戶的管理權限如何設置與更改以及umask值的含義
由于linux系統是一個多用戶使用的系統,對于各個用戶指定的文件或目錄必須存在一套管理系統,以防止多用戶對相同文件的混淆使用。于是催生出了linux系統文件的用戶權限設置。其存在的意義就是每一個文件或目錄對于不同的用戶區分讀取,寫入,執行三種權限,即:r,w,x。下面將詳細介紹如何定義文件或目錄的權限以及相關命令
1.文件的長格式內容意義
當用戶在某一個文件目錄的時候,輸入“ls -l”命令,則可以顯示當前目錄下所有文件的長格式,舉例說明:在/目錄下輸入ll(ls -l的別名),以/etc行為例,顯示結果為:
drwxr-xr-x 129 root root 8192 Aug 3 10:21 etc
其對應意義分別為d:文件類型為目錄文件。rwxr-xr-x就表示此文件的權限,前三位表示屬主權限,中三位表示屬組權限,后三位表示其他不相關用戶權限。129表示/etc的硬鏈接數量。前一個root表示文件屬主,后一個root表示文件屬組。最后為最近查看日期和文件名etc。
2.更改權限指令:chmod
對于一個文件來說有三種登錄用戶:文件所有者,即屬主,使用u表示。文件所屬組,使用g表示,還有其他不相關用戶,使用o來表示。chmod指令的作用就是更改u,g,o的使用權限,它的使用方法大致有三種:賦值法,授權法,八進制表示法。下面舉出示例:
賦值法:~]# chmod u=rw,g=r,o= /testdir
此命令表示更改/testdir的屬主權限為rw-,屬組權限為r–,其他權限為—。所以/testdir的使用權限為:drw-r—–。需要注意的是,賦值表示法的結果完全覆蓋之前的使用權限,如果只想更改u,g,o的某一種權限,使用授權表示法會更簡單。
授權法:~]# chmod u+rw,g+r /testdir
如果原/testdir的權限為:d———,則輸出指令后會變為:drw-r—–。也就是說在原來的權限基礎上做出改變。在某些情況下,如果u,g,o需要的權限相同,可以使用a代替,比如
~]# chmod u+x,g+x,o+x /testdir 等于 ~]# chmod a+x /testdir
a的用法同樣適用于賦值法。
八進制表示法:此方法我們可以將rwx rwx rwx看做為3個八進制數字,rwx代表7,—代表0,組合使用即為八進制表示法,舉例如下:
~]# chmod 755 /testdir
此命令表示將/testdir權限改為:drwxr-xr-x
3.更改屬主、屬組指令:chown,chgrp
chown指令作用為更改文件的屬主和屬組,用法如下:
~]# chown wangcai:natasha /testdir/file1
表示定義 /testdir/file1 文件屬主為wangcai,屬組為natasha,如果將上述命令:natasha去掉的話,就只定義屬主wangcai。
chgrp指令只能定義文件的屬組,用法如下:
~]# chgrp natasha /testdir/file1
表示定義 /testdir/file1 文件的屬組為natasha
4.umask值的表示含義
umask表示文件權限的反向編碼。新文件的創建默認權限是指定的,其指定權限與umask值相關。其權限八進制的計算方式為:
對于目錄:777-umask值=默認權限八進制
對于文件:666-umask值=默認權限八進制(注意:為了安全,文件創建默認不應該擁有x權限,所以得出值如果為奇數,需要每個奇數+1)。舉例:
umask:033
權限:666-033=633
所以在這里需要將633后兩位分別+1,得出的權限結果為:644,即:-rw–wx-wx
二.用戶及組密碼的更改以及相關配置文件
用戶和組密碼更改的指令有如下:passwd,gpasswd。分別修改用戶密碼以及用戶組密碼,其相關配置文件存放在/etc/passwd,/etc/shadow,/etc/gpasswd,/etc/gshadow文件中。其中文件內容格式以及其代表意義如下:
1.用戶以及用戶密碼信息的配置文件
用戶配置文件/etc/passwd內容格式:
login:passwd:UID:GID:COMMENT:/home:/bin/bash
按順序內容分別表述為:用戶名:密碼(實際存放在/etc/shadow中,此處用x表現):用戶UID:用戶GID:用戶注釋信息:用戶文件存放的家目錄路徑:用戶所使用的shell腳本類型。
用戶密碼配置文件/etc/shadow內容格式:
login:encrpted_passwd(加密):最近修改passwd日期:passwd最短持續時間:passwd最長持續時間:提示更改passwd警告時間:用戶過期時間:保留位
2.passwd命令的使用:
~]# passwd username
輸入新密碼
確認新密碼
gpasswd的修改與之相同,但是配置文件格式不同:
/etc/group:
wangcai:x:3001:user1,user2,wangcai
信息表示為順序為,groupname:gpasswd:GID:user_list(user1,user2,wangcai)。
3.getent命令的使用
用戶可以使用cat,head,tail命令查看用戶配置文件信息,但是如果文件信息量龐大,從中找尋指定用戶就會變得困難,getent命令可以快速查找配置文件指定內容,如下使用:
~]# getent passwd wangcai
輸入此命令后直接顯示/etc/passwd 內的wangcai用戶信息。passwd可替換為其他配置文件
三.SUID,SGID與sticky
SUID,SGID,sticky的意義為分別對文件屬主,屬組,其他用戶所設置的特殊權限。
1.SUID
SUID只對二進制可執行程序有效,設定命令為:
chmod u+s file
其中file文件的執行權限為-rwxr–r–,屬主屬組為root,命令執行后會變為-rwsr–r–
這時如果非屬主用戶mcgee執行此文件,就會有執行權限。所以SUID權限是十分危險的。
取消file的SUID權限命令為:
chmod u-s file
2.SGID
SGID常常作用于目錄上,設定命令為如下:
chmod g+s dir
如果dir目錄原權限為:drwxr-xrw-,屬主為root,屬組為root。執行命令后權限變為:drwxr-srw-
如果切換其他用戶mcgee(擁有w權限)在dir內創建文件,如果dir沒加SGID,默認新建文件屬主,屬組為用戶mcgee的屬主和屬組。但是在加SUID的dir目錄內,創建的新文件屬主為mcgee,但是屬組一定時dir目錄的屬組root。
取消dir的SGID權限命令為:
chmod g-s dir
3.sticky
sticky權限的作用是保護文件被非屬主的其他用戶刪除,設定命令為:
chmod 0+t file2
如果file2權限為-rwxr-xrwx,執行后會變為-rwxr-xrwt。此時對于文件file2,只有file2屬主與root可以對file2目錄有執行權限。
取消file2的sticky權限
chmod -o-t file2
四.ACL的意義與使用命令
ACL:access control list.訪問控制列表。存在的意義為對特定的其他用戶設置權限。其相關命令有setfacl,getfacl兩種。
setfacl:對特定文件或目錄設置acl,用法如下:
~]# setfacl -m u:wang:rwx file3
表示文件file3對用戶wang設置了rwx的權限
~]# setfacl -Rm g:sales:rwx dir2
表示dir2目錄以及其遞歸文件對組sales內的用戶設置rwx的權限
其中option可以查詢幫助文件
getfacl:顯示file/directory的acl設置,如下:
~]# getfacl file3
其中會多出顯示file3對wang的權限。
原創文章,作者:mcgeewang,如若轉載,請注明出處:http://www.www58058.com/27955
文章整體思路清晰,對用戶,權限管理命令總結很詳細,建議能結合實際操作可加深自己對權限模型的理解。