linux常用命令-用戶相關
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 此命令將用戶sam的登錄Shell修改為ksh,主目錄改為/home/z,用戶組改為developer。
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;顯示版本信息。
參數
用戶:指定要切換身份的目標用戶。
實例
變更帳號為root並在執行ls指令後退出變回原使用者:
su -c ls root
變更帳號為root並傳入-f
選項給新執行的shell:
su root -f
變更帳號為test並改變工作目錄至test的家目錄:
su -test
2、logname命令用來顯示用戶名稱。
語法
logname(選項)
選項
--help:在線幫助;
--vesion:顯示版本信息。
3、id命令可以顯示真實有效的用戶ID(UID)和組ID(GID)。UID 是對一個用戶的單一身份標識。組ID(GID)則對應多個UID。id命令已經默認預裝在大多數Linux系統中。要使用它,只需要在你的控制臺輸入id。不帶選項輸入id會顯示如下。結果會使用活躍用戶。
當我們想知道某個用戶的UID和GID時id命令是非常有用的。一些程序可能需要UID/GID來運行。id使我們更加容易地找出用戶的UID以GID而不必在/etc/group
文件中搜尋。如往常一樣,你可以在控制臺輸入man id
進入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)
linux常用命令-用戶相關