Solaris用戶管理(一):用戶與組管理
2008-07-01 09:19
用戶管理是系統管理的基礎。Solaris中不但支持傳統Unix所支持的用戶和組的概念,還從Solaris 8開始引入了基於角色的訪問控制(RBAC),提供了一種更加安全、靈活的方式來進行權限分配和管理。
先看看Solaris下的基本用戶管理。(詳細的資料可以自行查閱man手冊)
Solaris 下的基本用戶管理體系包括/etc目錄下的passwd、group和shadow三個配置文件,以及useradd、usermod、userdel、 passwd、groupadd、groupmod和groupdel七個基本命令,以及groups等輔助命令組成。
1配置文件
1.1passwd
/etc/passwd文件中保存了最基本的用戶信息,包括用戶名、密碼、用戶id等等,該文件由一系列的記錄組成,每個記錄占據一行,其格式為:
用戶名:密碼:用戶ID:用戶所在組ID:注釋:用戶主目錄:使用的shell
其中,用戶名就是通常使用的登錄名了,而所謂的注釋也通常被稱作用戶的全名。這里需要提及的是密碼一項。為了安全起見,密碼已經不再已明文的形式存放在passwd文件中,而是被保存到了/etc/shadow文件中,在這里用一個字母“x”進行表示。
1.2shadow
/etc/shadow文件中存儲了加密后的用戶密碼,並且(默認)僅有root用戶是可讀的。該文件同樣由一系列記錄組成,每個記錄占據一行,格式如下:
用戶名:密碼:上次修改密碼的時間:兩次密碼修改最小間隔天數:密碼有效天數:密碼過期前進行警告的天數:最大連續不登錄天數:密碼過期的絕對日期:登錄失敗次數
其中,登錄失敗次數暫未使用,而所有的相對時間都是從1970年1月1日起計數的。
1.3group
/etc/group文件中存儲了用戶組的信息,該文件有一系列記錄組成,每一條記錄占據一行,格式如下:
組名:密碼:組ID:用戶列表
這里,用戶列表中的每個用戶之間用逗號“,”進行分隔。
需要指出的是,在passwd文件中標識的用戶組為該用戶所在的主組,而每個用戶可以同時出現在多個組中,需要通過group文件進行存儲。
2基本命令
2.1用戶管理命令
基本的用戶管理命令包括useradd、usermod、userdel和passwd四條。
useradd命令的基本用法如下所示:
useradd [-u uid | -g gid | -d dir | -s shell | -c comment | -m] usrname
其中,uid為用戶ID,gid為用戶主組ID,dir為用戶的主目錄,comment為注釋(通常為用戶全名),加上-m選項表示創建用戶主目錄,usrname則為用戶的登錄名。
在創建好用戶后,通常需要使用passwd命令為用戶設置初始密碼:
passwd usrname
需要根據系統提示重復輸入兩次密碼即可。
*忘記root密碼的解決方法:重啟計算機,選擇進入failsafe模式,然后根據提示,將根目錄掛在到/a目錄下,修改/a/etc/passwd文件,將其中root那一項的密碼留空即可。
此外,使用命令passwd -l usrname還能夠將帳號臨時鎖定,知道管理員為其重新設定密碼為止。一般的,建議不要輕易刪除用戶,而是使用該命令將其臨時鎖定即可。
創建好用戶后,還可以使用usermod命令來修改其基本信息,該命令的參數和useradd命令的類似,就不再贅述了。唯一需要指出的是,usermod命令可以通過-l參數來修改用戶名。
如果實在希望刪除某個用戶,就可以使用userdel命令:
userdel [-r] usrname
如果加上-r選項,則會在刪除該用戶的同時刪除該用戶的主目錄。
2.2組管理命令
基本的組管理命令包括groupadd、groupmod和groupdel三條。
創建組的groupadd格式如下:
groupadd -g gid grpname
這里的gid為組ID,如果再加上-o選項則表明該組ID可以重復(不太清楚這樣設置的目的*_*)。
修改組屬性的groupmod命令格式如下:
groupmod [-g gid] [-n newgrpname] grpname
最后,可以使用groupdel命令刪除一個組:
groupdel grpname
2.3輔助命令
除了使用上述基本命令之外,還可以使用其他一些命令查看用戶和組的信息,常用的包括以下一些。
查看用戶所屬的全部組:groups usrname
查看組的信息:getent group grpname
查看當前登錄用戶信息:id
切換到其他組:newgrp grpname
查看最近登錄的用戶:last
當前登錄用戶:who
---------------------------------------
/home is an auto mount directory. The home directory for user in Solaris should be created in /export/home
/home 已被automount用了,所以不能在這里建目錄,如果非要使用/home,把/etc/auto_master文件的
/home auto_home 這一行注釋掉。
2.4 刪除用戶
#userdel dave
然后再刪除dave用戶的主目錄/home/dave。也可以使用選項”r”來一步完成。
#userdel -r dave
注:如果該用戶正在連接,是刪不掉的,我們可以先kill 掉該用戶。 在刪。
# who
root console 3月 18日 10:06 (:0)
dave pts/2 3月 18日 10:19 (10.85.10.80)
root pts/4 3月 18日 10:07 (:0.0)
#ps -t pts/2
PID TTY TIME CMD
1118 pts/2 0:00 ps
1112 pts/2 0:00 bash
#kill -9 1118
#kill -9 1112
# who
root console 3月 18日 10:06 (:0)
root pts/4 3月 18日 10:07 (:0.0)