一、adduser與useradd的區別
在Centos系統中,adduser只是useradd的一個連接形式,兩者使用形式相同,在Centos系統中使用命令man adduser,進入的幫助手冊爲useradd。
[root@localhost ~]# ls -la /sbin/adduser lrwxrwxrwx. 1 root root 7 11月 7 19:20 /sbin/adduser -> useradd
所以在用法上兩者沒有區別。
在ubuntu系統上,useradd和adduser的用法差別較大,後續總結。以下操作不特別強調,均爲Centos系統中操作。
二、創建用戶(默認設置)
useradd UserName 創建用戶,/etc/passwd中保存用戶信息,/etc/shadow 文件中保存加密的密碼信息
[root@localhost ~]# useradd dayun #創建用戶名爲dayun的用戶 [root@localhost ~]# ls /home/ #默認創建在/home下創建了名爲dayun的家目錄 cluster dayun zhang [root@localhost ~]# tail -1 /etc/passwd #用戶信息保存在/etc/passwd 文件中 dayun:x:1002:1002::/home/dayun:/bin/bash [root@localhost ~]# tail -1 /etc/shadow #第二個字段中的!!,表示該用戶被鎖定。 dayun:!!:17177:0:99999:7::: #由於此時沒有設定密碼 #另外用戶組相關的文件:/etc/group, /etc/gshdow,增加與用戶名同名的用戶組信息
與useradd創建用戶相關的文件,通過man useradd
/etc/passwd User account information. /etc/shadow Secure user account information. /etc/group Group account information. /etc/gshadow Secure group account information. /etc/default/useradd Default values for account creation. /etc/skel/ Directory containing default files. /etc/login.defs Shadow password suite configuration.
/etc/passwd 文件中的格式
每條記錄由六個冒號分割成的7個字段組成,看一下我的系統上用戶名爲cluster的信息
[root@localhost ~]# cat /etc/passwd |grep cluster cluster:x:1000:1000:cluster:/home/cluster:/bin/bash
第一個字段cluster:表示用戶名爲cluster
第二個字段x:表示密碼佔位符,密碼信息保存在/etc/shadow 文件中
第三個字段1000:表示UID,用戶ID,若不手動指定,默認從上一個用戶的UID自動+1
第四個字段1000:表示GID,基本組ID,若不手動指定,默認從上一個用戶的GID自動+1
第五個字段cluster:表示備註信息(comment),比如用戶的電話,郵箱等信息,這裏cluster用戶沒 有添加其他信息
第六個字段/home/cluster:表示這個用戶的家目錄
第七個字段/bin/bash: 表示這個用戶的默認shell
/etc/shadow 文件格式
[root@localhost ~]# tail -1 /etc/shadow dayun:!!:17178:0:99999:7::: [root@localhost ~]# cat /etc/shadow |grep cluster cluster:$6$1P/OQypq$VhuzyGZRsjuSQkRcUslKArUn6iBBQ7QgQS6YHNdD.SuVwMzRkRlujKdUQ29A8g74LfKxVB 1S.JUIHxgTvjK.N/:17178:12:40:7:::
/etc/shadow文件中,以8個“;”分割,共九個字段。
賬號名稱,密碼是要跟賬號對應的,不然.....
這個字段的纔是真正的密碼,跟上邊passwd中的第二個字段x對應,而且還是經過加密的密碼,如果不加密,能看到這個文件就能知道其他賬號的密碼,那樣搞個破壞太容易了,這個加密算法,什麼DES,MD5,SHA128等等好多,得再開一篇了,就不展開說了。新建的賬號dayun中是兩個"!!"表示還沒有設置密碼,賬號被鎖定,不能登入。
最近更改密碼的日期,17178是時間戳,距離1970年1月1日有17178天,(換算一下,應該是2017/01/12,就是把17178換算成秒,然後網上搜時間戳轉換)
密碼不可被改動的天數(和第3個字段相比較),如果是12,意思就是根據第三個字段可知,我最近一次修改密碼是2017/01/12,根據第3,4,兩個字段,2017/01/12修改密碼的這一天開始算(爲起點),12天之內不能再修改密碼了,數了數手指頭,到2017/01/24才能修改密碼。
密碼需要重新更改的天數(與第3個字段相比)爲安全考慮,密碼需要經常更換,這個字段就是強制你更換密碼的,該字段爲99999,兩百多年,表示沒有強制設置更換密碼的期限。如果這個字段值爲40,日期爲(17189+40)*24*3600時間格式轉換日期爲2017/3/4即:2017/01/24到2017/3/4之間可以修改密碼
密碼需要更改期限前的警告天數(與第5個字段比較),例子中爲7,表示距離2017/3/4還有7天是發出警告,告訴用戶密碼快要到期了,及時修改密碼。
密碼過期後的賬號寬限天數(與第5個字段相比)
賬號失效日期,不管過期還是不過期,到這個時間後,
保留
/etc/group 文件格式
[root@localhost ~]# tail -2 /etc/group dayun:x:1001:xiaoliu xiaoliu:x:1002:
第一個字段:組名
第二個字段:組密碼佔位符,存放位置/etc/gshadow文件中
第三個字段:GID,即用戶組ID
第四個字段:以該組爲附加組的用戶,多個用戶時,用逗號隔開。
/etc/gshadow 文件格式
(組也需要密碼,臨時切換組的時候,需要組密碼,但是現在應用較少)
[root@localhost ~]# tail -2 /etc/gshadow dayun:!::xiaoliu xiaoliu:!::
第一個字段:用戶組名
第二個字段:密碼,!表示沒有密碼
第三個字段:用戶組管理員的賬號
第五個字段:該用戶組的所屬賬號
/etc/default/useradd
創建用戶時(例如:useradd dayun)設置默認創建信息的文件,來看看這個配置文件。
[root@localhost ~]# cat /etc/default/useradd # useradd defaults file GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes
GROUP=100 注:指的是初始用戶組使用的GID,但是在centos系統中不生效。centos中默認用戶組和賬戶名相同,UID等於GID。不必深究
HOME=/home 注:用戶的家目錄在/home/目錄下創建
INACTIVE=-1 注:密碼失效日,在/etc/shadow文件中的第七列,-1代表密碼永遠不會失效,30,30天后失效
EXPIRE= 注:賬號失效日,shadow中第八列。
SHELL=/bin/bash 注:默認shell
SKEL=/etc/skel 注:家目錄下的文件,默認從/etc/skel/目錄下複製
CREATE_MAIL_SPOOL=yes 注:是否創建郵件緩衝池,若yes,則在/var/mail/目錄下創建郵件緩衝池
/etc/skel/,新創建的主目錄下的隱藏文件是從/etc/skel/目錄下複製過來的。skeleton的簡寫(骨骼,框架)是用戶骨架搭建的有個目錄。這些隱藏文件保存用戶登入系統時,默認的環境變量。
[root@localhost home]# ls -a dayun/ . .. .bash_logout .bash_profile .bashrc .mozilla [root@localhost home]# ls -a /etc/skel/ . .. .bash_logout .bash_profile .bashrc .mozilla
/etc/login.defs
主要定義/etc/shadow文件中的一些默認設置的,以後總結。
三、創建用戶[選項]
useradd
-u 注: 指定用戶的UID,UID唯一,不能重複
-g 注: 指定GID,即指定用戶的基本組,但是GID要事先存在
-G 注: 指定用戶的額外組的GID,但是這個GID必須存在。
-d 注: 指定創建家目錄的路徑。這個目錄不能事先存在。如果存在會報錯。
-c 注: 備註信息
-s 注: 指定默認shell
-m 注: 創建用戶時,強制創建家目錄
-M 注: 創建用戶時,不創建家目錄
-D 注: 爲useradd命令創建新的默認值
-r 注: 創建一個系統賬戶。目的是爲了後臺進程的安全。
系統的用戶的特性:
UID:一般爲1-499
不給用戶創建家目錄,默認shell爲/sbin/nologin
groupadd
-g 注: 創建組併爲其指定GID
四、用戶類別
管理員 UID 0
普通用戶 UID 1-65535
系統用戶 1-499
可登入用戶 500+
現在linux系統UID爲2的32次方。可支持的更多了。
管理員組
普通組
以用戶的視角分類:
基本組: 顯示在/etc/passwd中GID字段所代表的組爲用戶的基本組
額外組:又稱爲附加組,/etc/group
五、查看用戶信息的命令
id UserName 查看用戶的UID,GID,
[root@localhost ~]# id xiaoliu uid=1002(xiaoliu) gid=1002(xiaoliu) groups=1002(xiaoliu),1001(dayun) #第一個字段爲UID,第二個字段爲基本組ID,帶三個字段爲該用戶所屬的所有組
echo $SHELL 查看當前系統上的默認shell
查看當前系統的可用shell,文件/etc/shells 中所列的shell,稱爲當前系統上安全的shell列表。用其他shell,很可能拒絕登入系統。
[root@localhost ~]# cat /etc/shells /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bin/bash /usr/sbin/nologin /bin/tcsh /bin/csh
未完,待續