1. 程式人生 > >Linux學習之使用者管理命令

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