Linux用戶管理

在Linux中,有三種用戶:linux

  • Root 用戶:也稱爲超級用戶,對系統擁有徹底的控制權限。超級用戶能夠不受限制的運行任何命令。Root 用戶能夠看作是系統管理員。shell

  • 系統用戶:系統用戶是Linux運行某些程序所必須的用戶,例如 mail 用戶、sshd 用戶等。系統用戶一般爲系統功能所必須的,不建議修改這些用戶。ssh

  • 普通用戶:通常用戶都是普通用戶,這些用戶對系統文件的訪問受限,不能執行所有Linux命令。ide


Linux支持用戶組,用戶組就是具備相同特徵的用戶的集合。一個組能夠包含多個用戶,每一個用戶也能夠屬於不一樣的組。用戶組在Linux中扮演着重要的角色,方便管理員對用戶進行集中管理。加密

與用戶和組有關的系統文件

與用戶和組有關的系統文件:
spa

系統文件 說明
/etc/passwd 保存用戶名和密碼等信息,Linux系統中的每一個用戶都在/etc/passwd文件中有一個對應的記錄行。這個文件對全部用戶都是可讀的。
/etc/shadow /etc/shadow中的記錄行和/etc/passwd中的相對應,他由pwconv命令根據/etc/passwd中的數據自動產生,它的格式和/etc/passwd相似,只是對密碼進行了加密。並非全部的系統都支持這個文件。
/etc/group 以記錄行的形式保存了用戶組的全部信息。


來看一下/etc/passwd文件的結構:orm

$cat /etc/passwd
root:x:0:0:Superuser:/:
daemon:x:1:1:System daemons:/etc:
bin:x:2:2:Owner of system commands:/bin:
sys:x:3:3:Owner of system files:/usr/sys:
adm:x:4:4:System accounting:/usr/adm:
uucp:x:5:5:UUCP administrator:/usr/lib/uucp:
auth:x:7:21:Authentication administrator:/tcb/files/auth:
cron:x:9:16:Cron daemon:/usr/spool/cron:
listen:x:37:4:Network daemon:/usr/net/nls:
lp:x:71:18:printer administrator:/usr/spool/lp:
sam:x:200:50:Sam san:/usr/sam:/bin/sh

能夠看到,/etc/passwd文件中一行記錄對應着一個用戶,每行記錄又被冒號分隔爲7個字段,其格式和具體含義以下圖所示:


對每一個字段的說明:
blog

字段 說明
用戶名 用戶名是唯一的,長度根據不一樣的linux系統而定,通常是8位。
密碼 因爲系統中還有一個/etc/shadow文件用於存放加密後的口令,因此在這裏這一項是「x」來表示,若是用戶沒有設置口令,則該項爲空。若是passwd字段中的第一個字符是「*」的話,那麼,就表示該帳號被查封了,系統不容許持有該帳號的用戶登陸。
用戶ID 系統內部根據用戶ID而不是用戶名來識別不一樣的用戶,用戶ID有如下幾種:
  • 0表明系統管理員,若是你想創建一個系統管理員的話,能夠創建一個普通賬戶,而後將該帳戶的用戶ID改成0便可。token

  • 1~499系統預留的ID。(原文爲:1~500,查證後得知500屬於普通用戶ID)it

  • 500以上是普通用戶使用。

組ID 其實這個和用戶ID差很少,用來管理羣組,與/etc/group文件相關。
描述信息 這個字段幾乎沒有什麼用,只是用來解釋這個帳號的意義。在不一樣的Linux系統中,這個字段的 格式並無統一。在許多Linux系統中,這個字段存放的是一段任意的註釋性描述文字,用作finger命令的輸出。
用戶主目錄 用戶登陸系統的起始目錄。用戶登陸系統後將首先進入該目錄。root用戶默認是/,普通用戶是/home/username。
用戶Shell 用戶登陸系統時使用的Shell。

管理用戶和組

下面是一些經常使用的管理用戶和組的命令:

命令 說明
useradd 添加用戶。
usermod 修改用戶信息。
userdel 刪除用戶。
groupadd 添加用戶組。
groupmod 修改用戶組信息。
groupdel 刪除用戶組。

建立用戶組

添加用戶時,能夠將用戶添加到現有的用戶組,或者建立一個新的用戶組。能夠在 /etc/groups 文件中看到全部的用戶組信息。

默認的用戶組一般用來管理系統用戶,不建議將普通用戶添加到這些用戶組。使用groupadd命令建立用戶組的語法爲:

groupadd [-g gid [-o]] [-r] [-f] groupname

每一個選項的含義以下:

選項 說明
-g GID 以數字表示的用戶組ID。
-o 可使用重複的組ID。
-r 創建系統組,用來管理系統用戶。
-f 強制建立。
groupname 用戶組的名稱。


若是不指定選項,系統將使用默認值。例如建立一個 developers 用戶組:

$ groupadd developers

修改用戶組

groupmod命令能夠用來修改用戶組,語法爲:

$ groupmod -n new_modified_group_name old_group_name

例如,將用戶組 developers_2 重命名爲 developer:

$ groupmod -n developer developer_2

將developer用戶組的ID改成545:

$ groupmod -g 545 developer

刪除用戶組

經過groupdel命令能夠刪除用戶組。例如,刪除developer組:

$ groupdel developer

groupdel 僅僅刪除用戶組,並不刪除與之相關的文件,這些文件仍然能夠被全部者訪問。

添加用戶

添加用戶可使用useradd命令,語法爲:

useradd -d homedir -g groupname -m -s shell -u userid accountname

每一個選項的含義以下:

選項 描述
-d homedir 指定用戶主目錄。
-g groupname 指定用戶組。
-m 若是主目錄不存在,就建立。
-s shell 爲用戶指定默認Shell。
-u userid 指定用戶ID。
accountname 用戶名。


若是不指定任何選項,系統將使用默認值。useradd 命令將會修改 /etc/passwd、/etc/shadow、and /etc/group 三個文件,並建立用戶主目錄。

下面的例子將會添加用戶 mcmohd,並設置主目錄爲 /home/mcmohd,用戶組爲 developers,默認 Shell 爲  Korn Shell:

$ useradd -d /home/mcmohd -g developers -s /bin/ksh mcmohd

注意:添加用戶前請確認 developers 用戶組存在。

用戶被建立後,可使用 passwd 命令來設置密碼,例如:

$ passwd mcmohd20
Changing password for user mcmohd20.
New Linux password:******
Retype new UNIX password:******
passwd: all authentication tokens updated successfully.

注意:若是你是管理員,輸入 $ passwd username 能夠修改你所管理的用戶的密碼;不然只能修改你本身的密碼(不須要提供username)。

修改用戶

usermod 命令能夠修改現有用戶的信息。usermod 命令的選項和 useradd 相同,不過能夠增長 -l 選項來更改用戶名。

下面的例子將用戶 mcmohd 的用戶名修改成 mcmohd20,主目錄修改成 /home/mcmohd20:

$ usermod -d /home/mcmohd20 -m -l mcmohd mcmohd20

刪除用戶

userdel 命令能夠用來刪除現有用戶。userdel 是一個危險的命令,請謹慎使用。

userdel 命令僅有一個選項 -r,用來刪除用戶主目錄和本地郵件。例如,刪除用戶  mcmohd20:

$ userdel -r mcmohd20

爲了便於恢復被誤刪的用戶,能夠忽略 -r 選項,保留用戶主目錄,以後確認無誤能夠隨時刪除主目錄。

相關文章
相關標籤/搜索