一、用戶管理命令
相關命令:useradd、userdel、usermod、passwd、su、sudo、id
用戶管理文件 /etc/passwd
各字段解釋,以root用戶為例
root:x:0:0:root:/root:/bin/bash
2.useradd命令
Linux useradd 命令用於建立用戶帳號。
語法: useradd -D [-b][-e <有效期限>][-f <緩沖天數>][-g <群組>][-G <群組>][-s <shell>]
參數說明:
- -c<備注> 加上備注文字。備注文字會保存在passwd的備注欄位中。
- -d<登入目錄> 指定用戶登入時的起始目錄。
- -D 變更預設值.
- -e<有效期限> 指定帳號的有效期限。
- -f<緩沖天數> 指定在密碼過期后多少天即關閉該帳號。
- -g<群組> 指定用戶所屬的群組。
- -G<群組> 指定用戶所屬的附加群組。
- -m 自動建立用戶的登入目錄。
- -M 不要自動建立用戶的登入目錄。
- -n 取消建立以用戶名稱為名的群組.
- -r 建立系統帳號。
- -s<shell> 指定用戶登入后所使用的shell。
- -u<uid> 指定用戶ID。
3.userdel命令
Linux userdel命令用於刪除用戶帳號。
語法: userdel [-r][用戶帳號]
參數說明:
- -r 刪除用戶登入目錄以及目錄中所有文件。
4.usermod命令
Linux usermod命令用於修改用戶帳號。
語法: usermod [-LU][-c <備注>][-d <登入目錄>][-e <有效期限>][-f <緩沖天數>][-g <群組>][-G <群組>][-l <帳號名稱>][-s <shell>][-u <uid>][用戶帳號]
參數說明:
- -c<備注> 修改用戶帳號的備注文字。
- -d登入目錄> 修改用戶登入時的目錄。
- -e<有效期限> 修改帳號的有效期限。
- -f<緩沖天數> 修改在密碼過期后多少天即關閉該帳號。
- -g<群組> 修改用戶所屬的群組。
- -G<群組> 修改用戶所屬的附加群組。
- -l<帳號名稱> 修改用戶帳號名稱。
- -L 鎖定用戶密碼,使密碼無效。
- -s<shell> 修改用戶登入后所使用的shell。
- -u<uid> 修改用戶ID。
- -U 解除密碼鎖定。
5.passwd命令
Linux passwd命令用來更改使用者的密碼
語法:passwd [-k] [-l] [-u [-f]] [-d] [-S] [username]
必要參數:
- -d 刪除密碼
- -f 強迫用戶下次登錄時必須修改口令
- -w 口令要到期提前警告的天數
- -k 更新只能發送在過期之后
- -l 停止賬號使用
- -S 顯示密碼信息
- -u 啟用已被停止的賬戶
- -x 指定口令最長存活期
- -g 修改群組密碼
- 指定口令最短存活期
- -i 口令過期后多少天停用賬戶
6.su命令
Linux su(英文全拼:switch user)命令用於變更為其他使用者的身份,除 root 外,需要鍵入該使用者的密碼。
使用權限:所有使用者。
語法:su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]]
參數說明:
- -f 或 --fast 不必讀啟動檔(如 csh.cshrc 等),僅用於 csh 或 tcsh
- -m -p 或 --preserve-environment 執行 su 時不改變環境變數
- -c command 或 --command=command 變更為帳號為 USER 的使用者並執行指令(command)后再變回原來使用者
- -s shell 或 --shell=shell 指定要執行的 shell (bash csh tcsh 等),預設值為 /etc/passwd 內的該使用者(USER) shell
- --help 顯示說明文件
- --version 顯示版本資訊
- - -l 或 --login 這個參數加了之后,就好像是重新 login 為該使用者一樣,大部份環境變數(HOME SHELL USER等等)都是以該使用者(USER)為主,並且工作目錄也會改變,如果沒有指定 USER ,內定是 root
- USER 欲變更的使用者帳號
- ARG 傳入新的 shell 參數
細節
su -: 會切換root用戶,也會把用戶變量也切換到root的環境變量
su : 只是會切換root用戶,但是當前的環境變量還是以前用戶的環境變量
7.sudo命令
Linux sudo命令以系統管理者的身份執行指令,也就是說,經由 sudo 所執行的指令就好像是 root 親自執行。
使用權限:在 /etc/sudoers 中有出現的使用者。
參數說明:
- -V 顯示版本編號
- -h 會顯示版本編號及指令的使用方式說明
- -l 顯示出自己(執行 sudo 的使用者)的權限
- -v 因為 sudo 在第一次執行時或是在 N 分鍾內沒有執行(N 預設為五)會問密碼,這個參數是重新做一次確認,如果超過 N 分鍾,也會問密碼
- -k 將會強迫使用者在下一次執行 sudo 時問密碼(不論有沒有超過 N 分鍾)
- -b 將要執行的指令放在背景執行
- -p prompt 可以更改問密碼的提示語,其中 %u 會代換為使用者的帳號名稱, %h 會顯示主機名稱
- -u username/#uid 不加此參數,代表要以 root 的身份執行指令,而加了此參數,可以以 username 的身份執行指令(#uid 為該 username 的使用者號碼)
- -s 執行環境變數中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell
- -H 將環境變數中的 HOME (家目錄)指定為要變更身份的使用者家目錄(如不加 -u 參數就是系統管理者 root )
- command 要以系統管理者身份(或以 -u 更改為其他人)執行的指令
8.id命令
Linux id命令用於顯示用戶的ID,以及所屬群組的ID。
id會顯示用戶以及所屬群組的實際與有效ID。若兩個ID相同,則僅顯示實際ID。若僅指定用戶名稱,則顯示目前用戶的ID。
語法:id [-gGnru][--help][--version][用戶名稱]
參數說明:
- -g或--group 顯示用戶所屬群組的ID。
- -G或--groups 顯示用戶所屬附加群組的ID。
- -n或--name 顯示用戶,所屬群組或附加群組的名稱。
- -r或--real 顯示實際ID。
- -u或--user 顯示用戶ID。
- -help 顯示幫助。
- -version 顯示版本信息。