Linux系統是一個多用户多任務的分時操作系統,任何一個要使用系統資源的用户,都必須首先向系統管理員申請一個賬號,然後以這個賬號的身份進入系統。

用户的賬號一方面可以幫助系統管理員對使用系統的用户進行跟蹤,並控制他們對系統資源的訪問;另一方面也可以幫助用户組織文件,併為用户提供安全性保護。

每個用户賬號都擁有一個惟一的用户名和各自的口令。

用户在登錄時鍵入正確的用户名和口令後,就能夠進入系統和自己的主目錄。

實現用户賬號的管理,要完成的工作主要有如下幾個方面:

用户賬號的添加、刪除與修改。

用户口令的管理。

1、添加新的用户賬號使用useradd命令,其語法如下:useradd 選項用户名

參數説明:

  • 選項:
  • -c comment 指定一段註釋性描述。
  • -d 目錄 指定用户主目錄,如果此目錄不存在,則同時使用-m選項,可以創建主目錄。
  • -g 用户組 指定用户所屬的用户組。
  • -G 用户組,用户組 指定用户所屬的附加組。
  • -s Shell文件 指定用户的登錄Shell。
  • -u 用户號 指定用户的用户號,如果同時有-o選項,則可以重複使用其他用户的標識號。
  • 用户名:

實例1# useradd –d /usr/sam -m sam 此命令創建了一個用户sam,其中-d和-m選項用來為登錄名sam產生一個主目錄/usr/sam(/usr為默認的用户主目錄所在的父目錄)。

實例2 # useradd -s /bin/sh -g group –G adm,root gem 此命令新建了一個用户gem,該用户的登錄Shell是 /bin/sh,它屬於group用户組,同時又屬於adm和root用户組,其中group用户組是其主組。

增加用户賬號就是在/etc/passwd文件中為新用户增加一條記錄,同時更新其他系統文件如/etc/shadow, /etc/group等。Linux提供了集成的系統管理工具userconf,它可以用來對用户賬號進行統一管理。

 2、刪除帳號 刪除一個已有的用户賬號使用userdel命令,其格式如下:userdel 選項用户名  常用的選項是 -r,它的作用是把用户的主目錄一起刪除。

例如:# userdel -r sam 此命令刪除用户sam在系統文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的記錄,同時刪除用户的主目錄。

 如果一個用户的賬號不再使用,可以從系統中刪除。刪除用户賬號就是要將/etc/passwd等系統文件中的該用户記錄刪除,必要時還刪除用户的主目錄。

3、修改帳號 修改用户賬號就是根據實際情況更改用户的有關屬性,如用户號、主目錄、用户組、登錄Shell等。

修改已有用户的信息使用usermod命令,其格式如下:usermod 選項用户名 常用的選項包括-c, -d, -m, -g, -G, -s, -u以及-o等,這些選項的意義與useradd命令中的選項一樣,可以為用户指定新的資源值。

例如:# usermod -s /bin/ksh -d /home/z –g developer sam

4、用户口令的管理 用户管理的一項重要內容是用户口令的管理。用户賬號剛創建時沒有口令,但是被系統鎖定,無法使用,必須為其指定口令後才可以使用,即使是指定空口令。

指定和修改用户口令的Shell命令是passwd。超級用户可以為自己和其他用户指定口令,普通用户只能用它修改自己的口令。命令的格式為:passwd 選項用户名

可使用的選項:

  • -l 鎖定口令,即禁用賬號。
  • -u 口令解鎖。
  • -d 使賬號無口令。
  • -f 強迫用户下次登錄時修改口令。

如果默認用户名,則修改當前用户的口令。

例如,假設當前用户是sam,則下面的命令修改該用户自己的口令:

$ passwd 
Old password:****** 
New password:******* 
Re-enter new password:*******

如果是超級用户,可以用下列形式指定任何用户的口令:

# passwd sam 
New password:******* 
Re-enter new password:*******

普通用户修改自己的口令時,passwd命令會先詢問原口令,驗證後再要求用户輸入兩遍新口令,如果兩次輸入的口令一致,則將這個口令指定給用户;而超級用户為用户指定口令時,就不需要知道原口令。

為用户指定空口令時,執行下列形式的命令:# passwd -d sam 此命令將用户sam的口令刪除,這樣用户sam下一次登錄時,系統就不再詢問口令。

passwd命令還可以用-l(lock)選項鎖定某一用户,使其不能登錄,例如:passwd -l sam

 

與用户賬號有關的系統文件

完成用户管理的工作有許多種方法,但是每一種方法實際上都是對有關的系統文件進行修改。與用户和用户組相關的信息都存放在一些系統文件中,這些文件包括/etc/passwd, /etc/shadow, /etc/group等。

1、/etc/passwd文件是用户管理工作涉及的最重要的一個文件。Linux系統中的每個用户都在/etc/passwd文件中有一個對應的記錄行,它記錄了這個用户的一些基本屬性。

2、/etc/shadow中的記錄行與/etc/passwd中的一一對應,它由pwconv命令根據/etc/passwd中的數據自動產生。

3、用户組的所有信息都存放在/etc/group文件中。將用户分組是Linux 系統中對用户進行管理及控制訪問權限的一種手段。

1、su命令用於切換當前用户身份到其他用户身份,變更時須輸入所要變更的用户帳號與密碼。

su(選項)(參數)

選項

-c<指令>或--command=<指令>:執行完指定的指令後,即恢復原來的身份;
-f或——fast:適用於csh與tsch,使shell不用去讀取啓動文件;
-l或——login:改變身份時,也同時變更工作目錄,以及HOME,SHELL,USER,logname。此外,也會變更PATH變量;
-m,-p或--preserve-environment:變更身份時,不要變更環境變量;
-s<shell>或--shell=<shell>:指定要執行的shell;
--help:顯示幫助;
--version;顯示版本信息。

參數

用户:指定要切換身份的目標用户。

實例

ls指令後退出變回原使用者:

su -c ls root

變更帳號為root並傳入-f選項給新執行的shell:

su root -f

變更帳號為test並改變工作目錄至test的家目錄:

su -test

2、logname命令用來顯示用户名稱。

語法

logname(選項)

選項

/etc/group
man id

語法

id [-gGnru][--help][--version][用户名稱]

選項

-g或--group   顯示用户所屬羣組的ID。
-G或--groups   顯示用户所屬附加羣組的ID。
-n或--name    顯示用户,所屬羣組或附加羣組的名稱。
-r或--real    顯示實際ID。
-u或--user    顯示用户ID。
-help         顯示幫助。
-version      顯示版本信息。

實例

[root@localhost ~]# id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)

解釋:用户root的UID號碼 = 0,GID號碼 = 0。用户root是下面組的成員:

  • root組GID號是:0
  • bin組GID號是:1
  • daemon組GID號是:2
  • sys組GID號是:3
  • adm組GID號是:4
  • disk組GID號是:6
  • wheel組GID號是:10

打印用户名、UID 和該用户所屬的所有組,要這麼做,我們可以使用 -a 選項:

[root@localhost ~]# id -a
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)

輸出所有不同的組ID ,有效的,真實的和補充的,我們可以使用 -G 選項來實現:

[root@localhost ~]# id -G
0 1 2 3 4 6 10

結果只會顯示GID號。你可以和/etc/group文件比較。下面是/etc/group文件的示例內容:

只輸出有效的組ID,通過使用 -g 選項來只輸出有效組ID:

[root@localhost ~]# id -g
0

輸出特定用户信息,我們可以輸出特定的用户信息相關的UID和GID。只需要在id命令後跟上用户名:

[root@localhost ~]# id www
uid=500(www) gid=500(www) groups=500(www)