本次記錄以下命令如useradd, usermod, passwd, userdel, groupadd, groupmod, groupdel, gpasswd, su, id, chfn, chsh, chage, finger的使用格式、常用選項及它們有哪些使用實例等。
1. useradd 創建新用戶命令
創建新用戶命令格式:useradd [OPTION] LOGIN
[root@www ~]# useradd -u 600 -g users t1
[root@www ~]# ll -d /home/t1
drwx------. 4 t1 users 4096 8月 31 19:31 /home/t1
-c 用戶信息說明
-d 指定某個目錄成爲主文件夾,使用絕對路徑
-G 指定所屬的附加組(還可以加入的用戶組)
[root@www ~]# useradd -u 3000 -g database -G sql -c DBA -d /home/database Oracle
[root@www ~]# grep Oracle /etc/passwd /etc/shadow /etc/group
/etc/passwd:Oracle:x:3000:502:DBA:/home/database:/bin/bash
/etc/shadow:Oracle:!!:16678:0:99999:7:::
/etc/group:sql:x:503:Oracle
[root@www ~]# id Oracle
uid=3000(Oracle) gid=502(database) 組=502(database),503(sql)
-s 指定用戶shell
-M 不要創建用戶主文件夾(系統賬號默認值)
-m 要創建用戶主文件夾(一般賬號默認值)
-r 創建系統賬戶
[root@www ~]# useradd -r sysaccount
[root@www ~]# grep sysaccount /etc/passwd /etc/shadow /etc/group
/etc/passwd:sysaccount:x:495:491::/home/sysaccount:/bin/bash
/etc/shadow:sysaccount:!!:16678::::::
/etc/group:sysaccount:x:491:
useradd參考文件
[root@www ~]# useradd -D
GROUP=100 <-- 默認用戶組
HOME=/home <-- 默認的主文件夾所在目錄
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash <-- 默認的shell
SKEL=/etc/skel <-- 用戶主文件夾的內容數據參考目錄
CREATE_MAIL_SPOOL=yes
2. passwd設置密碼命令
設置密碼命令格式:passwd [OPTION] [USERNAME]
OPTION:
-u未鎖定密碼
[root@www etc]# passwd -l Oracle
鎖定用戶 Oracle 的密碼 。
passwd: 操作成功
[root@www etc]# passwd -S Oracle
Oracle LK 2015-08-31 0 60 7 10 (密碼已被鎖定。)
[root@www etc]# grep Oracle /etc/shadow
Oracle:!!$6$7f.VFz5z$TocJp42wo8V6DdsgcF.7TOxGLJwfsCQGuwpqyHSVhQ6hER6K3Kyr0CDQmdaPzCS.kyWySlwElYdTUwuNRuciG1:16678:0:60:7:10::
-n 多久不可修改密碼天數
-x 多久內必須要改動密碼
-w 密碼過期前的警告天數
-i 密碼失效日期
[root@www ~]# passwd lab_test1
更改用戶 lab_test1 的密碼 。
新的 密碼:
無效的密碼: 過短
無效的密碼: 過於簡單
重新輸入新的 密碼:
passwd: 所有的身份驗證令牌已經成功更新。
-S 列出密碼相關參數
[root@www etc]# passwd -S Oracle
Oracle PS 2015-08-31 0 99999 7 -1 (密碼已設置,使用 SHA512 加密。)
每60天需要更改密碼,密碼過期後10天未使用就宣告密碼失效
[root@www etc]# passwd -x 60 -i 10 Oracle
調整用戶密碼老化數據Oracle。
passwd: 操作成功
[root@www etc]# passwd -S Oracle
Oracle PS 2015-08-31 0 60 7 10 (密碼已設置,使用 SHA512 加密。)
--stdin 從標準輸出接收用戶密碼
[root@www etc]# echo "abcdefg" | passwd --stdin Oracle
更改用戶 Oracle 的密碼 。
passwd: 所有的身份驗證令牌已經成功更新。
3. chage密碼過期時間設置命令
修改賬號和密碼的有效期限。
密碼過期時間設置命令格式:chage [OPTION]...LOGIN
[root@www ~]# chage -l Oracle
Last password change : Aug 31, 2015
Password expires : Oct 30, 2015
Password inactive : Nov 09, 2015
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 60
Number of days of warning before password expires : 7
-d 最近一次更改密碼的日期,格式YYYY-MM-DD
讓用戶在第一次登錄時強制他們一定要更改密碼後才能夠使用系統資源
[root@www ~]# useradd agetest
[root@www ~]# echo "agetest" | passwd --stdin agetest
更改用戶 agetest 的密碼 。
passwd: 所有的身份驗證令牌已經成功更新。
[root@www ~]# chage -d 0 agetest
You are required to change your password immediately (root enforced)
WARNING: Your password has expired.
You must change your password now and login again!
Changing password for user agetest.
Changing password for agetest.
(current) UNIX password: <-- 這個賬號被強制要求必須更改密碼!
-E 賬號失效日,格式YYYY-MM-DD
-I 密碼失效日期
-m密碼最短保留天數
-M密碼多久需要進行更改
-W密碼過期前警告日期
4. usermod賬號屬性修改命令
用於修改用戶的基本信息,它不允許你改變正在線上的使用者賬號名稱。當usermod命令用來改變user id,必須確認這名user沒有在電腦上執行任何程序。
賬號屬性修改命令格式:usermod [OPTION]...LOGIN
OPTION:
-c修改賬號的說明
[root@www ~]# usermod -c "lab_test1 is test Account" lab_test1
[root@www ~]# grep lab_test1 /etc/passwd
lab_test1:x:501:501:lab_test1 is test Account:/home/lab_test1:/bin/bash
-u 修改用戶ID
-g 修改用戶所屬的基本組
-G 修改用戶所屬的附加組
-l 修改用戶賬號名稱
-d 修改用戶登入時的目錄(主文件夾)
[root@www ~]# usermod -u 666 -g root -G lab_test1 -l test1_lab -d /account_lab lab_test1
lab_test1:x:501:501::/home/lab_test1:/bin/bash
[root@www /]# grep "test1_lab" /etc/passwd /etc/shadow /etc/group
/etc/passwd:test1_lab:x:666:0:lab_test1 is test Account:/account_lab:/bin/bash
/etc/shadow:test1_lab:$6$r26qUB6T$udvZrhtQh342s40B.QPX.gjkBi.jv8YZitOAu8F40k/9iJ0cBS3b/cz.2qDO5j3rrmIYT6d.BgdTWSW5Zr3xl.:16678:0:99999:7:::
/etc/group:lab_test1:x:501:test1_lab
-L 鎖定用戶密碼,使密碼無效
-U 解除密碼鎖定
-s 修改用戶登入後所使用的shell
5. userdel刪除賬號命令
用於刪除給定的用戶,以及與用戶相關的文件。若不加選項,則僅刪除用戶賬號,而不刪除相關文件。
刪除賬號命令格式:userdel [OPTION]...LOGIN
OPTION:
-f 強制刪除用戶,即使用戶當前已登錄
-r 刪除用戶的同時,刪除與用戶相關的所有文件
用戶賬號/密碼相關參數:/etc/passwd, /etc/shadow
用戶組相關參數:/etc/group, /etc/gshadow
用戶個人文件數據:/home/username, /var/spool/mail/username
t1:x:600:100::/home/t1:/bin/bash
[root@www ~]# userdel -r t1
[root@www ~]# ll -d /home/t1
ls: 無法訪問/home/t1: 沒有那個文件或目錄
6. groupadd創建新工作組命令
創建一個新的工作組,其信息將被添加到系統文件中。
創建新工作組命令格式:groupadd [OPTION]...GROUPNAME
OPTION:
-g 指定新建工作組的ID
-r 創建系統工作組,系統工作組的組ID小於500
[root@www ~]# groupadd -g 600 lab_group1
[root@www ~]# grep lab_group1 /etc/group /etc/gshadow
/etc/group:lab_group1:x:600:
/etc/gshadow:lab_group1:!::
7. groupmod工作組屬性更改命令
工作組屬性更改命令格式:
groupmod [OPTION]...GROUPNAME
OPTION:
-g 修改既有的GID
-n 修改既有的組名稱
[root@www ~]# groupmod -g 488 -n group1 lab_group1
[root@www ~]# grep group1 /etc/group /etc/gshadow
/etc/group:group1:x:488:
/etc/gshadow:group1:!::
8. groupdel刪除工作組命令
刪除指定的工作組,本命令要修改的系統文件包括/etc/group和/etc/gshadow。若該羣組中仍包括某些用戶,則必須先刪除這些用戶後,方能刪除羣組。
刪除工作組命令格式:groupdel GROUPNAME
[root@www ~]# groupdel group1
[root@www ~]# grep group1 /etc/group /etc/gshadow
9. gpasswd工作組密碼設定命令
如果系統管理員沒時間幫用戶加入到指定工作組內,這時可新建“用戶組管理員”來管理指定賬號加入/移出有關用戶組。
工作組密碼設定命令格式:gpasswd [OPTION]...GROUPNAME
OPTION:
不帶任何參數,表示給予groupname一個密碼(/etc/gshadow)
-A 指定某用戶賬號爲指定工作組的管理員
[root@www ~]# gpasswd -A Allen users
[root@www ~]# grep users /etc/group /etc/gshadow
/etc/group:users:x:100:
/etc/gshadow:users::Allen:
-r 將groupname的密碼刪除
-R 讓groupname密碼欄失效
-a 添加用戶到指定組中
-d 從指定組中刪除用戶
[Allen@www ~]$ gpasswd -a lab_test2 users
Adding user lab_test2 to group users
[Allen@www ~]$ grep users /etc/group
users:x:100:lab_test2
用戶功能相關命令
10. finger查看用戶信息命令
用於查看用戶信息,包括本地與遠端主機的用戶皆可,帳號名稱沒有大小寫的差別。(大部分是/etc/passwd裏面的信息)
單獨執行finger指令,它會顯示本地主機現在所有的用戶的登陸信息,包括帳號名稱,真實姓名,登入終端機,閒置時間,登入時間以及地址和電話。
查看用戶信息命令格式:finger [OPTION] USERNAME OPTION:
-s 列出該用戶的帳號名稱,真實姓名,登入終端機,閒置時間,登入時間以及地址和電話;
[root@NTPServer ~]# finger -s
Login Name Tty Idle Login Time Office Office Phone
root root pts/1 Sep 1 10:28 (10.10.6.240)
[root@NTPServer ~]# finger root
Login: root Name: root
Directory: /root Shell: /bin/bash
On since 二 9月 1 10:28 (CST) on pts/1 from 10.10.6.240
New mail received 二 9月 1 10:28 2015 (CST)
Unread since 二 10月 8 12:23 2013 (CST)
11. chfn改變finger顯示信息命令
改變finger命令顯示的信息。這些信息都存放在/etc目錄裏的passwd文件裏。若不指定任何選項,則chfn命令會進入問答式界面。
改變finger顯示信息命令格式:chfn [OPTION] [USERNAME] OPTION:
-f 設置真實姓名
-h 設置家中的電話號碼
-o 設置辦公室地址
-p 設置辦公室的電話號碼
[root@www ~]# chfn -f Allen.Huang
Changing finger information for root.
Finger information changed.
[root@www ~]# grep root /etc/passwd
root:x:0:0:Allen.Huang:/root:/bin/bash
12. chsh更改shell命令
更換登錄系統時使用的shell。若不指定任何參數與用戶名稱,則chsh會以應答的方式進行設置。
更改shell命令格式:chsh [OPTION] [USERNAME]
OPTION:
-l 列出目前系統可用的shell清單(/etc/shells)
[Allen@www ~]$ chsh -l
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh
-s 更改用戶預設的shell環境
[root@www ~]# chsh -s /bin/csh Allen; grep Allen /etc/passwd
Changing shell for Allen.
Shell changed.
root:x:0:0:Allen.Huang:/root:/bin/bash
Allen:x:500:500:Allen.Huang:/home/Allen:/bin/csh
13. id查詢賬戶信息命令
顯示真實有效的用戶ID(UID)和組ID(GID)。UID 是對一個用戶的單一身份標識。組ID(GID)則對應多個UID。
查詢賬戶信息命令格式:id [OPTION] [USERNAME]
OPTION:
-g顯示用戶所屬羣組的ID
-G顯示用戶所屬附加羣組的ID
-u顯示用戶ID
[root@www ~]# id root
uid=0(root) gid=0(root) 組=0(root)
14. su切換用戶身份命令
用於切換當前用戶身份到其他用戶身份,變更時須輸入所要變更的用戶帳號與密碼。
切換用戶身份命令格式:su [OPTION]...[USERNAME]
OPTION:
- 代表切換爲root身份
-l 改變身份時,也同時變更工作目錄,以及HOME,SHELL, USER, LOGNAME。也會變更PATH變量
-m,-p變更身份時,不要變更環境變量
-c執行完指定的指令後,即恢復原來的身份
使用root切換成爲任何用戶時,並不需要輸入新用戶的密碼。
[root@www ~]# su -l Allen
[Allen@www ~]$ env |grep Allen <--用戶的環境變量
HOME=/home/Allen
USER=Allen
LOGNAME=Allen
PWD=/home/Allen
GROUP=Allen
MAIL=/var/spool/mail/Allen
[Allen@www ~]$ useradd –D <--此用戶無權限執行此命令
useradd: Command not found.
[Allen@www ~]$ su - -c "useradd -D" <--Root權限執行此命令
密碼:
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
[Allen@www ~]$ su -
密碼:
[root@www ~]#