CentOS 7創建用戶兩種方式


什么是用戶

登錄進系統的用戶對硬件資源的操作都需要通過操作系統,操作系統的開發者們都專門開發了安全機制,要使用操作系統必須事先輸入正確的用戶名和密碼。

為何要有用戶

系統上的每一個進程,都需要一個特定的用戶運行,一個用戶擁有特定的權限,該用戶運行的進程與用戶權限一致。

通常在生產環境是使用普通用戶管理服務器,因為root權限過大,容易出問題。

查看用戶信息的命令

  • id:查看用戶信息
[chirou@duorou ~]$ id
uid=1001(chirou) gid=1001(chirou) 組=1001(chirou) 環境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
  • whoami:查看當前用戶是誰
  • who:查看當前登錄的所有用戶登錄時間及終端信息
[chirou@duorou ~]$ who
root     tty1         2020-10-28 08:50
chirou   pts/0        2020-10-28 08:52 (192.168.12.102)
test     pts/1        2020-10-28 15:07 (192.168.12.102)
  • w:查看當前登錄的所有用戶詳細信息
[chirou@duorou ~]$ w
 19:19:16 up 10:32,  3 users,  load average: 0.00, 0.03, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      08:50   30:20   0.11s  0.11s -bash
chirou   pts/0    192.168.12.102   08:52    1:40   0.68s  0.19s sshd: chir
test     pts/1    192.168.12.102   15:07    4.00s  0.31s  0.21s sshd: test

Linux系統中對用戶的划分

Linux系統中對用戶主要分為管理員root與其他用戶,管理員擁有最高權限,其他用戶根據管理員的分配擁有不同的權限。

在Linux系統中是通過UID和GID來區分不同用戶和組的,用戶的名稱是給人類看的,系統僅僅能夠識別ID這樣的數字。

  • UID:用戶ID,唯一標識一個用戶的數字。
    • 在CentOS 系統中UID為0的用戶為管理員root用戶,CentOS 7之前UID1-499為系統用戶,為了滿足文件或服務啟動的需要,一般不能登錄,UID500之后為普通用戶。CentOS 7中UID1-200為運行系統自帶進程的系統用戶,201-999為安裝程序的系統用戶。1000+為普通用戶。
  • GID:組ID,唯一標識一個組的數字。

每個用戶可以屬於多個組,用戶必須有一個主組,其他為用戶的附加組。每個組里可以包含多個用戶。

用戶相關文件

文件 作用
/etc/passwd 記錄用戶賬號信息
/etc/shadow 記錄用戶密碼信息
/etc/group 記錄組信息
/etc/gshadow 記錄組密碼信息
/home/USER_NAME 用戶家目錄
/etc/skel 用戶家目錄的模板目錄
/var/spool/mail/USER_NAME 郵箱文件
  • /etc/passwd以冒號:分隔,分為七個字段

    • 第一字段:用戶名
    • 第二字段:密碼占位符,
    • 第三字段:UID
    • 第四字段:GID
    • 第五字段:用戶注釋信息
    • 第六字段:用戶家目錄
    • 第七字段:用戶的登錄SHELL
    [chirou@duorou ~]$ head /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    
  • /etc/shadow以冒號:分隔,分為九個字段

    • 第一字段:用戶名
    • 第二字段:加密后的密碼,!!表示沒有密碼
    • 第三字段:最近一次更改密碼的時間,記錄的是當前時間距離Unix元年的天數
    • 第四字段:密碼最少使用天數,0表示無限制
    • 第五字段:密碼最長使用天數,99999表示無限制。
    • 第六字段:密碼距離過期天數的預警時間。
    • 第七字段:密碼過期后的寬恕時間,在此時間內用戶可以更改密碼,過了此時間后系統會禁用此用戶,不能再登錄。
    • 第八字段:賬號過期時間,如果值為空則表示永久可用。
    • 第九字段:保留字段,未使用。
    [root@duorou /home]# head -1 /etc/shadow
    root:$6$.zQAsXpp$3cwrj/2R1rtf.NuMd.PdJX3Wvh8.uRl3z9BvSVzSjiID9jPFIV/ItSX48oaiaknZ1qKhTybiq8vp7DQixET9F0:18554:0:99999:7:::
    
  • /etc/group:組信息文件,分成四個字段

    • 第一字段:組名稱。
    • 第二字段:組密碼占位符。
    • 第三字段:GID。
    • 第四字段:顯示該組作為哪個用戶的附加組,多個用逗號分隔。
    [root@duorou /home]# head -1 /etc/group
    root:x:0:
    
  • /etc/gshadow:組密碼文件,分為四段

    • 第一段:組名稱。
    • 第二段:組密碼,如果是空或者!表示沒有密碼。
    • 第三段:用戶組管理者,空表示沒有管理者,如果有多個用逗號分隔。
    • 第四段:顯示該用戶組作為哪個用戶的附加組,若有多個用逗號分隔。
    [root@duorou /home]# head -1 /etc/gshadow
    root:::
    
  • /etc/skel:存放用戶家目錄模板文件,新用戶家目錄內的初識內容從該目錄內復制。

[panghu@duorou ~]$ ll -a /etc/skel
總用量 24
drwxr-xr-x.   3 root root   78 10月  6 10:14 .
drwxr-xr-x. 146 root root 8192 10月 28 20:31 ..
-rw-r--r--.   1 root root   18 4月   1 2020 .bash_logout
-rw-r--r--.   1 root root  193 4月   1 2020 .bash_profile
-rw-r--r--.   1 root root  231 4月   1 2020 .bashrc
drwxr-xr-x.   4 root root   39 10月  6 10:14 .mozilla
  • /var/spool/mail/:用戶郵箱文件所在目錄
[panghu@duorou ~]$ ll /var/spool/mail
總用量 0
-rw-rw----. 1 chirou mail 0 10月 27 19:45 chirou
-rw-------. 1 root   mail 0 10月 20 21:02 root
-rw-rw----. 1 rpc    mail 0 10月  6 10:14 rpc
-rw-rw----. 1 test   mail 0 9月  26 10:46 test

用戶管理命令

創建用戶:useradd

  • -u:指定UID
  • -g:指定主組
  • -G:指定附加組,附加組必須事先存在。
  • -d:指定家目錄
  • -c:指定備注信息
  • -s:指定shell
  • -e:修改過期時間
  • -M:不創建家目錄
  • -r:創建系統賬號,UID處於系統用戶范圍內,默認沒有家目錄
[test@duorou ~]$ useradd chirou
# 默認會創建一個與用戶名同名的組,組員為該用戶,會在/home目錄下創建一個與用戶同名的目錄,shell為/bin/bash,UID為1000+,永不過期,/var/spool/mail目錄下會創建一個與用戶名相同的郵箱文件。家目錄中會存在.bash_*環境變量相關的文件,這些文件默認從/etc/skel目錄中拷貝。這個默認拷貝環境變量位置是由/etc/default/useradd和/etc/login.defs兩個配置文件定義的。

# 當普通用戶在家目錄下執行了rm -rf *命令,下次登錄系統時會出現-bash-4.1$這樣的提示符,解決方法就是在/etc/skel目錄中拷貝需要的環境變量文件,然后重新登錄即可。
cp -a /etc/skel/.bash* ./

設置密碼:passwd

普通用戶只能修改自己的密碼,root用戶可以修改所有用戶密碼。

passwd chirou
# 執行完后即成功創建了一個普通用戶,可以正常登錄使用。

echo “密碼” | passwd --stdin 用戶名
# 非交互式設置密碼,常用於批量添加用戶。

# 可用系統內置變量生成隨機字符來充當密碼
echo $RANDOM | md5sum | cut -c 1-10

手動創建用戶

useradd和passwd命令創建用戶本質上也是在修改賬戶相關文件,那么我們也可以通過直接編輯這些文件來創建一個新用戶。下述操作都需要root權限才能進行。

  • 1、首先編輯/etc/passwd文件,添加新的一行,指定用戶名、UID、GID、家目錄和shell。

  • 2、編輯/etc/shadow文件,在最下面添加新的一行,指定與上面相同的用戶名,添加秘文密碼。在shadow文件中密碼都是以秘文形式存放,可以通過openssl passwd命令生成加密的密碼,然后粘貼到密碼字段即可。/etc/shadow的權限是000,修改后需要在末行模式下執行:wq!來強制保存。

  • 3、編輯/etc/group文件,添加一行。

  • 4、編輯/etc/gshadow文件。

  • 5、在/home目錄中創建與用戶名同名的目錄。

  • 6、將/etc/skel中的文件復制至該目錄中,並修改屬性。

  • 7、創建郵箱文件並修改屬性。

此時新用戶創建完成,可以正常登錄系統。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM