Linux學習之使用者管理命令
1、groupadd命令:- create a new group
groupadd命令用於建立一個新的使用者組
(1)使用格式
groupadd [options] group
(2)option
groupadd -g
:(gid)指定GID——預設是上一個組的GID+1
groupadd -r
:指定建立系統組
補充:
(1)、執行中的系統:就是在後臺運行了很多的程序,kenel和許多執行緒,服務管理程序 (2)、後臺程序:即開機啟動的程式 (3)、對檔案的訪問:都是在該使用者許可權下,後臺程序對檔案的訪問 (4)、命令發起的許可權一定是在該使用者的許可權之內 (5)、開機啟動程式以誰的許可權進行啟動? 開機啟動程式程式就是以一般普通使用者身份進行啟動 (6)、系統使用者:不用登陸系統;僅僅只是開啟一些開機啟動程式(以非管理員全線執行) (7)、安全上下文: 程序以其發起者身份執行 程序對檔案的訪問許可權,取決於發起此程序的使用者許可權
2、groupmod命令:- modify a group definition on the system
groupmod命令用於修改組的屬性
(1)使用格式
groupmod [options] GROUP
(2)option
groupmod -g
:修改組的GID——不要與現有的組GID相同
[[email protected] /]# cat /etc/group
test1:x:5006:
[[email protected] /]# groupmod -g 5001 test1
test1:x:5001:
groupmod -n
:修改組的名字
[ [email protected] /]# cat /etc/group
test1:x:5001:
[[email protected] /]# groupmod -n te test1
[[email protected] /]# cat /etc/group
te:x:5001:
3、groupdel命令:- delete a group
groupdel命令用於刪除使用者組
(1)使用格式
groupdel [options] GROUP
(2)option
注意:若為某使用者的附加組則刪除此組會使該組對應的使用者失去組
4、useradd命令:- create a new user or update default new user information
useradd命令用於建立一個新的使用者或更新預設新使用者資訊
(1)使用格式
A、useradd [options] LOGIN
B、useradd -D
C、useradd -D [options]
(2)option
A、格式下的使用
useradd -u
:指定使用者的UID
[[email protected] /]# useradd -u 100 tt
tt:x:100:5002::/home/tt:/bin/bash
useradd -g
:指定使用者的基本組ID——但此組事先必須存在
[[email protected] /]# useradd -u 5008 -g 5002 teb
teb:x:5008:5002::/home/teb:/bin/bash
useradd -G
:指明使用者所屬的附加組,多個組之間用逗號分隔
[[email protected] /]# useradd -u 5005 -g 5002 -G test1 test
test1:x:5002:test
useradd -c
:指明註釋資訊
[[email protected] /]# useradd -c "sodjgwiejg" tt
tt:x:5006:5006:sodjgwiejg:/home/tt:/bin/bash
useradd -d
:用指定的路徑為使用者的家目錄——最好是指定不存家目錄
補充:
通過複製/etc/shel此目錄並重命名實現環境變數配置;若指定的家目錄事先存在則不會為使用者複製環境變數配置檔案
useradd -s
:指定使用者預設shell,可用的所有shell列表為—/etc/shells檔案中
[[email protected] ~]# useradd -u 5004 -g 5002 -c "cl-13312342345" -s /bin/csh test1
test1:x:5004:5002:cl-13312342345:/home/test1:/bin/csh
useradd -r
:建立系統使用者
useradd -m
:若使用者家目錄不存在則建立新的使用者家目錄,骨架目錄中的檔案會複製到主目錄中。
useradd -M
:不建立使用者家目錄即使系統設定了也不建立
useradd -f
:密碼過期後,賬戶徹底禁用之前的天數——0-表示立即禁用;-1 表示禁用此功能
B、格式下使用
useradd -D
:表示建立使用者時預設資訊
[[email protected] ~]# useradd -D
GROUP=100 ==>表示與使用者同名的組
HOME=/home ==>建立家目錄的起始位置,在此位置下建立一個與使用者名稱相同的目錄
INACTIVE=-1 ==>非活動期限為永不過期
EXPIRE= ==>
SHELL=/bin/bash ==>預設shell
SKEL=/etc/skel ==>使用者環境資訊複製地址
CREATE_MAIL_SPOOL=yes ==>是否建立郵筒——yes表示自動建立
C、格式下使用
useradd -D option
:用於修改和更改預設值
[-b][-e <有效期限>][-f <緩衝天數>][-g <群組>][-G <群組>][-s <shell>]
==注意:
/etc/login.defs:建立使用者時預設設定儲存的資料夾
/etc/default/useradd:儲存修改的結果
5、usermod命令:- modify a user account
useradd命令用於修改使用者的屬性
(1)使用格式
usermod [options] LOGIN
(2)option
usermod -u
:修改使用者的UID
test1:x:5004:5002:cl-13312342345:/home/test1:/bin/csh ==>修改前
[[email protected] ~]# usermod -u 5006 test1
[[email protected] ~]# cat /etc/passwd
test1:x:5006:5002:cl-13312342345:/home/test1:/bin/csh ==>修改後
usermod -g
:修改使用者所屬的基本組
test1:x:5006:5002:cl-13312342345:/home/test1:/bin/csh ==>修改前
[[email protected] ~]# usermod -g 1000 test1
test1:x:5006:1000:cl-13312342345:/home/test1:/bin/csh ==>修改後
usermod -G
:修改使用者所屬的附加組,若原使用者有附加組則用新的組覆蓋原附加組
jack:x:5003: ==>修改之前
[[email protected] ~]# usermod -G jack test1
jack:x:5003:test1 ==>修改後新增到了Jack組
usermod -a
:與-G一同使用,用於使用者追加新的附加組
jack2:x:5004:
[[email protected] ~]# usermod -a -G jack2 test1
jack2:x:5004:test1
usermod -c
:修改註釋資訊
test1:x:5006:1000:cl-13312342345:/home/test1:/bin/csh
[[email protected] ~]# usermod -c "cl 13315824456" test1
test1:x:5006:1000:cl 13315824456:/home/test1:/bin/csh
usermod -d
:修改使用者家目錄,但檔案並不會轉移到修改的路徑下
test1:x:5006:1000:cl 13315824456:/home/test1:/bin/csh
[[email protected] ~]# usermod -d /recover test1
test1:x:5006:1000:cl 13315824456:/recover:/bin/csh
ls: cannot access /recover/test1: No such file or directory
[[email protected] ~]# ls /recover ==>僅僅是更改了家目錄路徑並沒有將檔案移動到此目錄
cptest io
usermod -m
:只能與-d一同使用;用於將原來的家目錄移到新的路徑下
usermod -l
:修改使用者名稱
test1:x:5006:5003:cl 13315241379:/recover/test1:/bin/csh
[[email protected] ~]# usermod -l test2 test1
test2:x:5006:5003:cl 13315241379:/recover/test1:/bin/csh
usermod -s
:修改使用者預設shell
test2:x:5006:5003:cl 13315241379:/recover/test1:/bin/csh
[[email protected] ~]# usermod -s /bin/bash test2
test2:x:5006:5003:cl 13315241379:/recover/test1:/bin/bash
usermod -L
:鎖定使用者密碼,禁止登陸——即在原密碼字串前面新增一個“!”
[[email protected] ~]# usermod -L test2
test2:!$6$qKLAjX5V$E
usermod -U
:解鎖使用者的密碼
[[email protected] ~]# usermod -U test2
test2:$6$qKLAjX5V$E
6、userdel命令:- delete a user account and related files
userdel命令用於刪除使用者
(1)使用格式
userdel [options] LOGIN
(2)option
userdel -r
:表示刪除使用者同時刪除使用者家目錄
[[email protected] ~]# ll /home
total 8
drwx------. 14 hu hu 4096 Oct 24 19:53 hu
drwx------. 3 test2 jack 4096 Nov 28 22:33 test1
[[email protected] ~]# userdel -r test1
[[email protected] ~]# ls /home
hu
7、passwd命令:- update user’s authentication tokens
passwd命令用於修改使用者的密碼
(1)使用格式
passwd :表示不帶引數是修改自己的密碼
passwd username:有使用者名錶示修改指定使用者的密碼——預設root使用者才有此許可權
(2)option
passwd -l
:表示用於鎖定使用者
[[email protected] ~]# passwd -l test1
Locking password for user test1.
passwd: Success
passwd -u
:表示用於解鎖使用者
[[email protected] ~]# passwd -u test1
Unlocking password for user test1.
passwd: Success
passwd -d
:清除使用者密碼
passwd -e
:密碼過期期限的日期
passwd -i
:非活動期限
passwd -n
:密碼最短使用期限
passwd -x
:密碼最常使用期限
passwd -w
:警告期限
[[email protected] ~]# passwd -i 800
:17864:30:900:10:800::
passwd --stdin
:通過標準輸入或檔案中的文字設定為密碼
[[email protected] ~]# echo "test1"|passwd --stdin test1
Changing password for user test1.
passwd: all authentication tokens updated successfully.
或者
[[email protected] recover]# cat test.txt | passwd --stdin test1
Changing password for user test1.
passwd: all authentication tokens updated successfully.
8、gpasswd命令:- administer /etc/group and /etc/gshadow
gpasswd命令用於管理組、管理組密碼和修改組密碼
(1)使用格式
gpasswd [option] group
(2)option
gpasswd groupname
:修改指定組的密碼
[[email protected] hu]# gpasswd jack
Changing the password for group jack
New Password:
gpasswd -a
:向組中新增使用者
[[email protected] hu]# gpasswd -a test1 jack2
Adding user test1 to group jack2
gpasswd -d
:從組中移除使用者
[[email protected] hu]# gpasswd -d test1 jack2
Removing user test1 from group jack2
9、newgrp命令: - log in to a new group
newgrp命令用於切換使用者所在使用者組命令 登入另一個群組
說明:如果一個使用者同時隸屬於兩個或兩個以上分組,需要切換到其它使用者組來執行一些操作,就用到了newgrp命令切換當前登陸所在組
(1)使用格式
newgrp [-] [group]
例:
[[email protected] hu]# newgrp - jack2
歡迎進入Linux世界,盡情期待!
[[email protected] ~]#
補充:
若加 “—”則模擬使用者重新登入以後再進入到臨時指定的基本組,若不加則直接切換到臨時指定的基本組中。
10、chage命令:- change user password expiry information
chage命令用於修改使用者密碼和密碼到期資訊
(1)使用格式
chage [options] LOGIN
(2)option
11、id命令:- print real and effective user and group IDs
id命令用於列印真實有效的使用者和組id
(1)使用格式
id [OPTION]... [USER]
(2)option
id -u
:僅顯示有效的ID
id -g
:僅顯示GID
id -G
:顯示所有組的組ID
id -n
:顯示名稱
[[email protected] hu]# id -G -n test1 ==>顯示所屬組的組名稱
jack jack2
12、su命令:- run a command with substitute user and group ID
su命令用於切換使用者
補充:
1)、有兩種切換方式
登入時切換——完全切換:會通過重新讀取使用者配置檔案來重新初始化
非登入式切換——半切換:不會讀取目標使用者配置檔案進行初始化
注意:若要完全切換工作目標使用者環境下應使用登入切換
2)、兩種登陸如何實現
登入式:su - username
su -l username
非登入式:su username
注意:管理員可以無密碼切換到其他任意使用者;非管理員切換至目標使用者必須使用目標使用者密碼——否則無法切換
(1)使用格式
su - username
su username
(2)option
su - user -c ‘command’
:僅利用指定使用者身份執行此處指定的命令
[[email protected] ~]$ su - root -c 'cat /recover/test.txt'
Password:
123456
13、chsh命令:- change your login shell
chsh命令用於修改當前使用者或指定使用者的shell(僅在root使用者下)
(1)使用格式
chsh [-s shell] [-l] [-u] [-v] [username]
14、chfn命令:- change your finger information
chfn命令用於修改finger資訊
(1)使用格式
chfn [-f full-name] [-o office] ,RB [ -p office-phone] [-h home-phone] -u] [-v] [username]
15、finger命令:
finger命令用於使用者資訊查詢的工具
16、whoami命令:- print effective userid
whoami命令用於列印當前登陸的使用者
(1)使用格式
whoami [OPTION]...
17、pwck命令:- verify integrity of password files
pwck命令用於驗證密碼的完整性——即檢查使用者存在哪些問題
(1)使用格式
pwck [options] [passwd [ shadow ]]
[[email protected] hu]# pwck
user 'ftp': directory '/var/ftp' does not exist
user 'saslauth': directory '/run/saslauthd' does not exist
user 'avahi-autoipd': directory '/var/lib/avahi-autoipd' does not exist
user 'pulse': directory '/var/run/pulse' does not exist
user 'gnome-initial-setup': directory '/run/gnome-initial-setup/' does not exist
pwck: no changes
18、grpck命令:- verify integrity of group files
grpck命令用於驗證組檔案完整性
(1)使用格式
grpck [options] [group [ shadow ]]
vipw
vigr
groups
ac
grpconv
grpunconv
lastlog
logname
users
lastb