06-Linux用戶和組管理

關於用戶和組的知識

  • 家目錄

用戶都有家目錄:root用戶家目錄爲/root。其他用戶的家目錄在/home/,如user1的家目錄爲/home/user1
當我們創建用戶時,系統就會自動創建該用戶的家目錄。
家目錄用~表示。cd ~表示移動到家目錄中。

  • 用戶

用戶的信息被保存在/etc/passwd。該文件保存了用戶名、用戶id、用戶所在的組id和shell等信息。
用戶都擁有id號。用uid表示。

組的概念:將用戶分組。這樣就可以將用戶按組來管理。
組都有id號。用gid表示。
組分爲主組和副組。用戶所在的主組只能有一個,副組可以有多個。
默認情況下,創建用戶時,自動創建該用戶的主組。用戶id和主組id相同。

關於用戶的命令

last        #查看服務器的用戶登錄信息(tty表示物理機登錄,pts表示遠程登錄)
whoami      #查看當前登錄用戶(我是誰)
who         #查看當前登錄用戶(現在有誰登錄這臺服務器)
id          #查看當前用戶id信息(uid和gid)

管理員用戶

管理員用戶是一個特殊用戶,他擁有很大的權限(僅此於root)。

  • 添加一個管理員用戶
[root@localhost ~]$ vim /etc/sudoers
	user1	ALL(ALL)	ALL         #添加管理員user1

#這樣就可以擁有很大的權限,比如:
[user1@localhost ~]$ sudo systemctl restart firewalld    #重啓服務(在命令前加sudo)

關於用戶和組的管理文件

/etc/passwd
cat /etc/passwd

輸出:

......
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
user1:x:1000:1000::/home/user1:/bin/bash

這個文件分爲多個字段,字段之間用冒號:隔開。
字段分別是 用戶名:x表示密碼:uid:gid:用戶的描述信息:家目錄:用戶默認的shell
其中第二個字段表示密碼,用x佔位,真正的密碼保存在/etc/shadow文件中。
如果用戶默認的shell爲/sbin/nologin,表示用戶無法登陸。

  • uid

root的UID爲0
系統用戶UID爲1~999
普通用戶UID爲1000+

/etc/shadow

這個文件保存着用戶的密碼(散列值)。

  • 查看/etc/shadow
cat /etc/shadow

輸出:

root:$6$9tYeXsFoaHYvM.X4$c6g4oDV9A/l7OYerkrYmr1hNJXNccboRWUqnn4sjCvWnsPWNOO1S21OHqR1gTiGaUZhr9OxCYqv4aWugZGe9L1::0:99999:7:::
......

解釋:

格式
    $id$salt$encrypted
解釋
    id爲1,md5加密
    id爲5,SHA256加密
    id爲6,SHA512加密
    salt爲鹽值,是對密碼進行hash的一個干擾值

注意:
這個文件非常重要,不能讓他人得到。
密碼最好最好定期更換,且設置複雜密碼。
否則容易被他人破解:https://blog.csdn.net/netrookiex/article/details/96431981

用戶管理命令

su-切換用戶
su user1    #切換到user1(不改變當前所在目錄)
su - user1  #切換到user1(改變當前所在目錄->user1的家目錄)
su			#切換到超級用戶root
exit        #退出當前用戶
增加用戶

創建用戶時,系統會自動創建出家目錄、郵箱目錄(/var/spool/mail/<用戶名>)

比如:

useradd user1       #增加用戶user1
passwd user1        #修改用戶user1的密碼

參數:

-d	#指定家目錄
-g	#指定基本組(主組)
-G	#指定擴展組(副組)
-u	#指定用戶UID
-s	#指定Shell解釋器
-e	#指定賬戶到期時間(YYYY-MM-DD)
-c	#用戶描述

比如:

useradd -d /user3 user3     #創建用戶user3,並指定家目錄爲/user3,而不是/home/user3
useradd -s /sbin/nologin user4     #創建用戶user4,但是這個用戶無法登陸

  • 增加組的命令類似:
groupadd userGroup	#添加組userGroup

修改用戶信息
usermod	    #用法、參數與useradd幾乎一樣
    -L	#鎖定用戶(禁止登陸)
    -U	#解除鎖定(允許登陸)
    -md	#修改家目錄,並轉移舊數據至新家目錄
修改用戶密碼
passwd user1    #修改user1的密碼
    -l	#鎖定用戶(禁止登陸)
    -u	#解除鎖定(允許登陸)
    -d	#使用戶可使用空密碼(需要系統允許)
    -e	#下次登陸時修改密碼
    -S	#顯示用戶密碼配置信息
    --stdin		#從標準輸入中讀入密碼

舉例:

echo "123" | passwd --stdin user6       #user6的密碼變成了123,而不是用戶輸入
刪除
userdel user6       #刪除用戶user6
    -r	#同時刪除用戶相關目錄

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