文件及目錄的權(quán)限管理
上篇簡單介紹了下文件和目錄的一些簡單的操作,接下來介紹用戶和文件權(quán)限的管理。首先了解用戶和組賬號的配置文件,然后是管理用戶和組賬號,最后要會設(shè)置文件和目錄權(quán)限和歸屬。
Linux基于用戶身份對資源訪問進(jìn)行控制。用戶賬號分為超級用戶root(相當(dāng)于windows下的Administrator),然后是普通用戶。Linux中是不建議使用root登錄系統(tǒng)執(zhí)行管理任務(wù)的,因?yàn)檫@很不安全。要是誤刪了系統(tǒng)中某個重要的文件,那就玩完了。
用戶賬號文件——passwd
用于保存用戶的賬號的基本信息,文件位置:/etc/passwd,每一行對應(yīng)一個用戶的賬號記錄,下面是取出最后兩行記錄的賬號信息,然后來分析它每個字段的含義(字段之間用冒號分隔)。

字段1 jzhou:用戶賬號的名字;
字段2 x :密碼占位符
字段3 500:用戶賬號的UID號(RedHat和CentOS中默認(rèn)從500開始)
字段4 500:用戶所屬主賬號的GID號(也是默認(rèn)從500開始)
字段5 zhoujie:用戶全名
字段6 /home/jzhou :用戶的宿主目錄,即家目錄
字段7 /bin/bash :登錄shell信息
基于系統(tǒng)運(yùn)行和管理需要,所有用戶都可以訪問passwd文件中的內(nèi)容,但只有root用戶才能更改
用戶密碼文件——shadow
用于保存密碼串、密碼有效期等信息,文件位置:/etc/shadow,每一行對應(yīng)一個用戶的密碼記錄。下面列出最后兩行記錄并解釋每個字段的含義:

字段1 :用戶賬號的名稱
字段2 :加密的密碼字串信息(采用MD5加密)
字段3 :上次修改密碼的時間
字段4:密碼的最短有效天數(shù),默認(rèn)值為 0
字段5:密碼的最長有效天數(shù),默認(rèn)值為 99999
字段6:提前多少天警告用戶口令將要過期,默認(rèn)值為 7
字段7:在密碼過期后多少天禁用此用戶(默認(rèn)為空)
字段8:賬號失效時間(默認(rèn)為空)
字段9 :保留字段(未使用)
默認(rèn)只要root用戶能夠讀取該文件中的內(nèi)容,并且不允許root直接編輯該文件中的內(nèi)容。那么添加用戶時如何來指定選項(xiàng)以實(shí)現(xiàn)這些功能呢?下面將簡單介紹如何添加用戶、組。
添加用戶賬號——useradd

用戶賬號的初始配置文件
文件來源——新建用戶賬號時,從/etc/skel目錄中復(fù)制而來
主要的用戶初始配置文件有 :
可通過cat命令查看上述文件的內(nèi)容。
設(shè)置/更改用戶口令——passwd
一般我不會也沒有必要解釋每個命令的帶的參數(shù),但是passwd我會介紹它的參數(shù)含義及用法,因?yàn)槲矣X得在系統(tǒng)維護(hù)中會常用到。
注意,“未設(shè)置密碼”的用戶賬號尚未完成初始化,處于不可登錄狀態(tài),與“空密碼”的情況不同,普通用戶可以使用passwd命令,但只能更改自己的密碼。另外,被鎖定的賬號也不能登錄系統(tǒng)。
修改用戶賬號的屬性——usermod
它的命令有幾個功能和passwd是一樣的,比如L和U參數(shù)就是鎖定和解鎖賬戶的,不過要大寫。其他選項(xiàng)和useradd的中的一樣,就是更改uid,gid等。
刪除用戶賬號——userdel
刪除賬號時直接用”userdel 用戶名“就行了,但是這樣刪除的話,用戶的家目錄依然存在,這時你若要再建立一個與剛才同名的賬號那是不行的,所以我習(xí)慣帶上-r選項(xiàng),刪的徹底點(diǎn),即連同家目錄一起刪除,反正刪除賬號后家目錄也沒什么用了。
還有兩個域組賬號相關(guān)的文件,即/etc/group 和/etc/gshadow,不太常用,尤其是后者,知道下應(yīng)該就行了。
添加組賬號——groupadd
添加一個組賬號,在新建用戶時,若要指定用戶的gid和組名稱,則必須先保證這個組要存在,所以要先建立組,簡單的操作如下:
刪除組賬號——groupdel
很簡單,直接接用戶名作為參數(shù),刪除組賬號后,從/etc/group文件中將查不到相應(yīng)的記錄。
用戶和組賬號查詢:
id命令——查詢用戶身份標(biāo)識
groups命令——查詢用戶所屬的組
finger命令——查詢用戶的詳細(xì)信息
users、w、who命令查詢已登錄到主機(jī)的用戶信息
文件/目錄的權(quán)限和歸屬
將ls帶上參數(shù)l或直接打ll命令,則可以查看用戶對文件的使用權(quán)。

第一列權(quán)限位由10位(比如d rwx rwx r-x)組成,其中第一位表示文件類型,d表示目錄,l表示鏈接文件,b表示塊文件,c表示字符文件,-表示普通文件。關(guān)于rwx-分別表示讀、寫、執(zhí)行、無權(quán)限,r w x - 四個權(quán)限字符分別可表示為8進(jìn)制數(shù)字4,2,1,0,即 rwx rwx r-x權(quán)限也可表示為775,其中前三位rwx(7)表示文件所有者(owner)對該文件的權(quán)限,中間3位rwx(7)表示文件所在的組(group)對該文件的權(quán)限,最后三位r-x(5)表示其他用戶(other)對該文件的權(quán)限,也即ugo權(quán)限。
設(shè)置文件/目錄的權(quán)限——chmod
修改目錄的權(quán)限和所屬組時可以指定-R選項(xiàng)以實(shí)現(xiàn)目錄里的文件或者目錄也可以遞歸變化。若只修改文件/目錄所有者只需指定前者,即chown root testfile,若只修改文件/目錄所屬組的權(quán)限,前面的用戶可不寫,即chown :root testfile。
附加權(quán)限位
普通用戶并沒有權(quán)限修改“/etc/shadow”文件,那為什么可以修改自己的登錄密碼呢?因?yàn)閜asswd命令程序被設(shè)置了SUID權(quán)限,普通用戶在執(zhí)行該命令時臨時獲得相當(dāng)于屬主用戶(root)的權(quán)限。
set位權(quán)限的主要用途:
為可執(zhí)行(有 x 權(quán)限的)文件設(shè)置,權(quán)限字符為“s”;
其他用戶執(zhí)行該文件時,將擁有屬主或?qū)俳M用戶的權(quán)限。
set位權(quán)限類型:
SUID:表示對屬主用戶增加SET位權(quán)限;
SGID:表示對屬組內(nèi)的用戶增加SET位權(quán)限。
注意:不要輕易為可執(zhí)行文件設(shè)置SET位權(quán)限,特別是對于那些屬主、屬組是root的執(zhí)行程序,使用SET位權(quán)限時更應(yīng)該慎重。例如,若為vim編輯器程序設(shè)置SUID權(quán)限,將導(dǎo)致普通用戶也可以使用vim編輯器修改系統(tǒng)中的任何配置文件
粘滯位(Sticky)
主要用途:
為公共目錄(例如,權(quán)限為777的)設(shè)置,權(quán)限字符為“t”
用戶不能刪除該目錄中其他用戶的文件
由于系統(tǒng)及服務(wù)程序運(yùn)行的需要, Linux提供了/tmp、/var/tmp等臨時目錄,允許任意用戶、程序?qū)懭霐?shù)據(jù),然而試想一下,若任意一個普通用戶都能夠刪除系統(tǒng)服務(wù)運(yùn)行中使用的臨時文件,將造成什么后果?設(shè)置粘滯位以后,正好可以保持一種動態(tài)的平衡:允許各用戶在目錄中任意寫入、刪除數(shù)據(jù),但是禁止隨意刪除其他用戶的數(shù)據(jù) 。
其實(shí)這些特殊權(quán)限位用的不多,我認(rèn)為只不過是為那幾種特殊的文件作個解釋罷了,不用深究的,知道派什么用的就行了吧。
使用附加權(quán)限
設(shè)置SET位、粘滯位權(quán)限
使用權(quán)限字符
m為4時,對應(yīng)SUID,2對應(yīng)SGID,1對應(yīng)粘滯位,可疊加
SET位標(biāo)記字符為“s”,若使用8進(jìn)制數(shù)字形式,則SUID對應(yīng)為“4”、SGID對應(yīng)為“2”;在權(quán)限模式中可采用“nnnn”的形式時,如“4755”表示設(shè)置SUID權(quán)限、“6755”表示同時設(shè)置SUID、SGID權(quán)限。
新聞熱點(diǎn)
疑難解答
圖片精選