用戶, 組和權限
Linux登陸需要用戶名、密碼。/etc/passwd 文件保存用戶名。登錄linux時,Linux 先查找 /etc/passwd 文件中是否有這個用戶名,沒有則跳出,有則讀取用戶名的user ID 、 group ID 、用戶名對應的根目錄路徑以及所使用的 shell ,最后在 /etc/shadow 中核對該 UID 對應的 PWD 是否正確,正確則登錄到該用戶的 shell。
root:x:0:0:root:/root:/bin/bash
用戶名:密碼X:用戶id0:組id0:描述信息root:用戶根目錄/root/:用戶登錄后的shell
x 是表示此處為空;采用shadow passwd,影子密碼
帳號名:用戶名稱,root 是系統默認最高管理員用戶。
密碼:由于密碼保存在 /etc/shadow 文件,所以這里用 “x” 表示,如果沒有設置口令,則該項為空。
用戶ID:系統內部用戶的唯一標識ID,其中用戶 ID 有以下幾種:
0 代表系統管理員,如果想建立一個系統管理員,可以先建立一個普通帳戶,再將其用戶ID改為 0 。
1-500 系統預留 ID,500 以上是普通用戶 ID。
組ID:用戶組標識 ID ,/etc/group 有關。
描述信息:帳號的描述。
用戶根目錄:用戶登錄起始目錄,登錄系統后首先進入此目錄。root 用戶默認是 /root,普通用戶則是 /home/用戶名。
用戶登錄shell:用戶登錄系統后使用的 shell。
1.2 /etc/shadow詳解:
早期的 unix 系統,用戶帳號、密碼都保存在 passwd ,即使密碼以密文方式保存在 passwd 中,但 passwd 文件對所有用戶可讀,存在安全隱患?,F在 Linux 使用“shadow”保存密碼的密文,使用passwd文件保存用戶帳號信息?!?/span>shadow” 文件只有管理員用戶才可以訪問。
cat /etc/shadow | tail -4
[root@localhost ~]# cat /etc/shadow | tail -4
tcpdump:!!:16820::::::
avahi-autoipd:!!:16820::::::
oprofile:!!:16820::::::unbound:!!:16897::::::
總共9個字段
root:$1$ZowvYCeU$ZCF.3th3FJNEoAB2EZoHw.:16821:0:99999:7:::
帳戶名稱:用戶名稱,和 passwd 的意思相同。
密碼: 用戶密碼的密文。
密碼欄的第一個字符為 “*” 表示這個用戶不能登錄,如果不想讓此用戶登錄,在他前面加個“*” ;
第一個字符為“!”,則表示該用戶被禁用,新創建的用戶還沒密碼時就是禁用狀態,使用“!!”表示;
第一個字符為“空”,表示用戶沒有密碼,登錄時不需要密碼。
上次改動密碼的日期:密碼的最后更改日期,為什么是 15181 ?因為 Linux 計算日期是以1970年1月1日作為1,1971年1月1日就是366,因此推導我修改密碼的日期表示為 15181。
密碼不可被改動的天數:表示多久后才可以改密碼。“0” 表示可以隨時更改。
密碼需要重新更改天數:必須在這個時間內更新密碼,否則帳號將會暫時失效。99999,表示密碼不需要更新。
密碼變更期期限快到前的警告期:帳號密碼失效期限快到時,系統依照這個字段設定,發出警告,提醒用戶密碼將過期請更新密碼,默認是 7。
帳號失效期:如果過了警告期沒有更新密碼,使得密碼失效,并且用戶在這個字段限定的時間內沒有向管理員報告,讓帳號重新激活,這個用戶將暫時失效。
帳號取消日期:這個字段也使用1970年以來的日期計算方法,表示用戶在此字段規定的時間之后將無法再使用。
保留:保留字段。
1.3 /etc/group 詳解:
從第一行開始分析,一共有四項,依次為:
組名稱:用戶組名稱了。
組密碼:一般不需設定,很少使用群組登錄。但這個密碼也保存在 /etc/shadow 中。
組ID:用戶組ID了。
支持帳號的名稱:這個群組的所有帳號。如果你想讓david用戶屬于root這個群組,在第一行最后加上 “,david” 注意添加的時候沒有空格。
2,用戶、用戶組管理操作詳解:
2.1 adduser 添加用戶:
adduser [-u uid][-g group][-d home][-s shell]
-u:直接給出userID
-g:直接給出GID
-d:直接將根目錄建立在已存在目錄
-s:定義shell
2.2 passwd 設置用戶密碼:
passwd [用戶名] 設置密碼
2.3 usermod 禁用、啟用帳號:
usermod -L [用戶名] 禁用帳號
usermod -U [用戶名] 啟用帳號
usermod -e YYYY-MM-DD [用戶名]
usermod 命令禁用和啟用賬號通過在 /etc/shadow 中相應用戶密碼位之前添加和刪除 “!” 實現的。
2.4 groupadd 創建組:
groupadd [-g gid [-o]] [-r] [-f] group
2.4.1 創建用戶的時候指定用戶屬于那個用戶組:
usersadd -g group_name user_name
2.4.2 更改用戶的用戶組:
usermod –g group_name user_name
2.4.3 將用戶添加到其它組:
usermod –G group_name user_name
[zm@qtlop01 ~]$ useradd
-bash: /usr/sbin/useradd: Permission denied
gpasswd命令
功能:管理組
用法:gpasswd[-a user][-d user][-A user,…][-M user,…][-r][-R]groupname
參數:
-a:添加用戶到組
-d:從組刪除用戶
-A:指定管理員
-M:指定組成員和-A的用途差不多
-r:刪除密碼
-R:限制用戶登入組,只有組中的成員才可以用newgrp加入該組
總結
gpasswd groupname:如系統有個peter賬戶,該賬戶本身不是groupname群組的成員,使用newgrp需要輸入密碼即可
讓使用者暫時加入成為該組成員,之后peter建立的文件group也會是groupname。所以該方式可以暫時讓peter建立文
件時使用其他的組,而不是peter本身所在的組。
所以使用gpasswd groupname設定密碼,就是讓知道該群組密碼的人可以暫時切換具備groupname群組功能的.
原創文章,作者:linux-qiao,如若轉載,請注明出處:http://www.www58058.com/82150