1、adduser與useradd的區別linux
在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
因此在用法上二者沒有區別。shell
在ubuntu系統上,useradd和adduser的用法差異較大,後續總結。如下操做不特別強調,均爲Centos系統中操做。ubuntu
2、建立用戶(默認設置)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 useraddbash
/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的信息ide
[root@localhost ~]# cat /etc/passwd |grep cluster cluster:x:1000:1000:cluster:/home/cluster:/bin/bash
第一個字段cluster:表示用戶名爲clusterui
第二個字段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文件中的一些默認設置的,之後總結。
3、建立用戶[選項]
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
4、用戶類別
管理員 UID 0
普通用戶 UID 1-65535
系統用戶 1-499
可登入用戶 500+
如今linux系統UID爲2的32次方。可支持的更多了。
管理員組
普通組
以用戶的視角分類:
基本組: 顯示在/etc/passwd中GID字段所表明的組爲用戶的基本組
額外組:又稱爲附加組,/etc/group
5、查看用戶信息的命令
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
未完,待續