Linux作業系統用戶管理

Linux操作系統中用戶有著不同功能的身份。

Linux系統中用戶的分類

1)超級用戶: root uid=0

2)系統用戶:不需要登錄系統,服務於應用程序,維護系統的運行,如 bin,nobody uid=1-499

3)普通用戶:可以登錄的用戶 uid>=500

UID:用戶標識

系統文件:

/etc/passwd:用戶信息

/etc/shadow:用戶密碼相關的信息

對用戶的操作:新增、刪除、修改、查看、設置密碼

1、查看用戶 id

# id //默認查看的是當前用戶的信息

uid=0(root) gid=0(root) groups=0(root)

# whoami //查看當前用戶是誰

root

# id lp //查看指定用戶的信息

uid=4(lp) gid=7(lp) groups=7(lp)

uid:用戶標識

gid:組標識,用戶的主組

groups:用戶所屬組信息

2、添加用戶 useradd

注意:添加用戶的操作只有 root 能操作

# useradd niulang

反例:

# su - niulang // switch user切換用戶

$ useradd zhinv

-bash: /usr/sbin/useradd: Permission denied 權限被拒絕,普通用戶是無法添加用戶的

$ exit

logout

# id niulang

uid=500(niulang) gid=500(niulang) groups=500(niulang)

添加用戶時,如果不指定用戶的組,那麼默認會創建一個與用戶名同名的組作為用戶的主要組。

1)添加用戶時指定選項 man useradd

-c:註釋性的描述信息

-d:指定用戶的家目錄

默認情況下:

root 的家目錄是 /root

普通用戶的家目錄是 /home

-g:指定用戶的主要組,前提是組必須存在

-G:指定用戶的附加組(附屬組),前提是組必須存在

-s:指定用戶的登錄 shell

-u:指定用戶的uid

# head -1 /etc/passwd

root:x:0:0:root:/root:/bin/bash

用戶名:密碼位:uid:gid:註釋性描述:用戶的家目錄:用戶的登錄shell

-u

-g

-c

-d

-s

# echo $SHELL //查看當前 shell,echo 可以用來打印變量

/bin/bash

要求區分的兩種 shell

/bin/bash:可登錄 shell,如果用戶的 shell 是這個,那麼該用戶可以登錄到系統中

/sbin/nologin:非登錄shell,如果用戶的 shell 是這個,那麼該用戶是不允許登錄到系統的

格式:useradd 選項 選項的參數 ... 用戶名

例子:

# useradd -u 600 -s /sbin/nologin zhinv

# id zhinv

uid=600(zhinv) gid=600(zhinv) groups=600(zhinv)

注意:添加用戶時,實際上執行了以下操作

1、修改了 /etc/paasswd 文件

2、修改了 /etc/shadow 文件

3、修改了 /etc/group 文件

4、修改了 /etc/gshadow 文件

5、創建了家目錄 /home

6、創建了郵箱帳號 /var/spool/mail/

# tail -1 /etc/passwd

zhinv:x:600:600::/home/zhinv:/sbin/nologin

# useradd -g 502 wangmu 錯的

useradd: group '502' does not exist

# useradd -g zhinv wangmu

# id wangmu

uid=601(wangmu) gid=600(zhinv) groups=600(zhinv)

同時添加多個用戶時,命令中間可以使用分號隔開

3、刪除用戶 userdel

# userdel wangmu //刪除的時候不會刪除用戶的家目錄和郵箱

# useradd wangmu //能添加,但是會有提示消息

useradd: warning: the home directory already exists.

Not copying any file from skel directory into it.

Creating mailbox file: File exists

-r: //可以乾淨的刪除一個用戶

# userdel -r wangmu

# cd /var/spool/mail/ //郵箱所在位置

4、給用戶設置密碼

passwd

超級用戶:既可以修改自己的密碼,又可以修改別人的密碼,無需提供當前密碼

普通用戶:只能修改自己的密碼,要求嚴格,並且需要提供當前密碼,而且密碼不能過於簡單

# passwd //默認修改當前用戶的密碼

Changing password for user root.

New password:

BAD PASSWORD: it is based on a dictionary word

BAD PASSWORD: is too simple

Retype new password:

passwd: all authentication tokens updated successfully.

# passwd niulang //修改指定用戶的密碼

Changing password for user niulang.

New password:

BAD PASSWORD: it is too short

BAD PASSWORD: is too simple

Retype new password:

passwd: all authentication tokens updated successfully.

反例:

# su - niulang

$ passwd zhinv

passwd: Only root can specify a user name.

普通用戶修改自己的密碼,需要當前密碼,而且長度最少6位,而且不能是字典單詞

$ passwd

Changing password for user niulang.

Changing password for niulang.

(current) UNIX password:

New password:

BAD PASSWORD: it is based on a dictionary word

New password:

Retype new password:

passwd: all authentication tokens updated successfully.

/etc/shadow:存放用戶密碼信息的文件

# head -1 /etc/shadow

root:$6$9AOmQbxm$3X1qbP0srKNql7jCXpmwhyNxGTHmIbT65zF.:16276:0:99999:7:::

用戶名:加密後的密碼:....

$6$:加密算法是sha512

$1$:加密算法是md5

-l 鎖定密碼 (實際是給密碼前加 !!)

-u 解鎖密碼 (取消密碼前的 !!)

5、修改用戶:不常用

usermod: //modify:修改

-G:修改用戶的附屬組,不管用戶原來的附屬組如何,直接覆蓋

-g:修改用戶的主要組

-a:一般和-G聯合使用,追加附屬組

-u:修改用戶的uid

-d:修改用戶的家目錄

-s:修改用戶的shell

-L : 鎖定賬戶 (實際是給賬戶密碼前加 !)

-U: 解鎖賬戶 (取消賬戶密碼前的 !)

# useradd -G niulang,zhinv sha

# id sha

uid=601(sha) gid=601(sha) groups=601(sha),500(niulang),600(zhinv)

# useradd sha2

# usermod -G sha2 sha

# id sha

uid=601(sha) gid=601(sha) groups=601(sha),602(sha2)

# usermod -a -G niulang sha

# id sha

uid=601(sha) gid=601(sha) groups=601(sha),500(niulang),602(sha2)

謝謝您的閱讀!


分享到:


相關文章: