linux用戶的創建與管理(命令學習之五)

一、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個“;”分割,共九個字段。


  1. 賬號名稱,密碼是要跟賬號對應的,不然.....

  2. 這個字段的纔是真正的密碼,跟上邊passwd中的第二個字段x對應,而且還是經過加密的密碼,如果不加密,能看到這個文件就能知道其他賬號的密碼,那樣搞個破壞太容易了,這個加密算法,什麼DES,MD5,SHA128等等好多,得再開一篇了,就不展開說了。新建的賬號dayun中是兩個"!!"表示還沒有設置密碼,賬號被鎖定,不能登入。

  3. 最近更改密碼的日期,17178是時間戳,距離1970年1月1日有17178天,(換算一下,應該是2017/01/12,就是把17178換算成秒,然後網上搜時間戳轉換)

  4. 密碼不可被改動的天數(和第3個字段相比較),如果是12,意思就是根據第三個字段可知,我最近一次修改密碼是2017/01/12,根據第3,4,兩個字段,2017/01/12修改密碼的這一天開始算(爲起點),12天之內不能再修改密碼了,數了數手指頭,到2017/01/24才能修改密碼。

  5. 密碼需要重新更改的天數(與第3個字段相比)爲安全考慮,密碼需要經常更換,這個字段就是強制你更換密碼的,該字段爲99999,兩百多年,表示沒有強制設置更換密碼的期限。如果這個字段值爲40,日期爲(17189+40)*24*3600時間格式轉換日期爲2017/3/4即:2017/01/24到2017/3/4之間可以修改密碼

  6. 密碼需要更改期限前的警告天數(與第5個字段比較),例子中爲7,表示距離2017/3/4還有7天是發出警告,告訴用戶密碼快要到期了,及時修改密碼。

  7. 密碼過期後的賬號寬限天數(與第5個字段相比)

  8. 賬號失效日期,不管過期還是不過期,到這個時間後,

  9. 保留


  • /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


未完,待續

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章