使用者管理命令5

語言: CN / TW / HK

1.useradd命令

useradd命令 建立新使用者或更新預設的新使用者資訊

uid範圍:

centos6:

1|1-499 系統使用者
2|500+  普通使用者

centos7:

1| 0 超級管理員    
2| 1-200 系統使用者,由系統分配給系統程序使用
3| 201-999 系統使用者,用來執行服務賬戶,不需要登陸系統(動態分配)
4| 1000+ 普通使用者

案例:

# 新建使用者加入組:
useradd –g sales jack –G company,employees    //-g:加入主要組、-G:加入次要組
# 建立一個新使用者賬戶,並設定ID:
useradd caojh -u 544

2.usermod命令

usermod命令: 修改系統已經存在的使用者屬性。

引數:

-c<備註>:修改使用者帳號的備註文字;
-d<登入目錄>:修改使用者登入時的目錄;
-e<有效期限>:修改帳號的有效期限;
-f<緩衝天數>:修改在密碼過期後多少天即關閉該帳號;
-g<群組>:修改使用者所屬的群組;
-G<群組>;修改使用者所屬的附加群組;
-l<帳號名稱>:修改使用者帳號名稱;
-L:鎖定使用者密碼,使密碼無效;
-s<shell>:修改使用者登入後所使用的shell;
-u<uid>:修改使用者ID;
-U:解除密碼鎖定。

案例:

# 將newuser2新增到組staff中:
usermod -G staff newuser2
 
# 修改newuser的使用者名稱為newuser1:
usermod -l newuser1 newuser
 
# 鎖定賬號newuser1:
usermod -L newuser1
 
# 解除對newuser1的鎖定:
usermod -U newuser1

3.userdel命令

userdel命令: 刪除給定的使用者,以及與使用者相關的檔案。若不加選項,則僅刪除使用者帳號,而不刪除相關檔案。

引數:

-f:強制刪除使用者,即使使用者當前已登入;
-r:刪除使用者的同時,刪除與使用者相關的所有檔案。

案例:

userdel linuxde       //刪除使用者linuxde,但不刪除其家目錄及檔案;
userdel -r linuxde    //刪除使用者linuxde,其家目錄及檔案一併刪除;

4.groupadd命令

groupadd命令: 用於建立一個新的工作組,新工作組的資訊將被新增到系統檔案中。

引數:

-g:指定新建工作組的id;
-r:建立系統工作組,系統工作組的組ID小於500;
-K:覆蓋配置檔案“/ect/login.defs”;
-o:允許新增組ID號不唯一的工作組。

案例:

# 建立一個新組,並設定組ID加入系統:
[root@xxx ~]# groupadd -g 344 linuxde

5.passwd命令

**passwd命令:**用於設定使用者的認證資訊,包括使用者密碼、密碼過期時間等。系統管理者則能用它管理系統使用者的密碼。只有管理者可以指定使用者名稱稱,一般使用者只能變更自己的密碼。

引數:

-d:刪除密碼,僅有系統管理者才能使用;
-f:強制執行;
-k:設定只有在密碼過期失效後,方能更新;
-l:鎖住密碼;
-s:列出密碼的相關資訊,僅有系統管理者才能使用;
-u:解開已上鎖的帳號。

案例:

# root賬戶能修改密碼,普通使用者只能修改自己的密碼
[root@localhost ~]# passwd linuxde    //更改或建立linuxde使用者的密碼;
Changing password for user linuxde.
New UNIX password:          //請輸入新密碼;
Retype new UNIX password:   //再輸入一次;
passwd: all authentication tokens updated successfully. //成功;
# 普通使用者如果想更改自己的密碼,直接執行passwd即可,比如當前操作的使用者是linuxde。
[linuxde@localhost ~]$ passwd
Changing password for user linuxde. //更改linuxde使用者的密碼;
(current) UNIX password:   //請輸入當前密碼;
New UNIX password:         //請輸入新密碼;
Retype new UNIX password:  //確認新密碼;
passwd: all authentication tokens updated successfully. //更改成功;
# 讓某個使用者不能修改密碼,可以用`-l`選項來鎖定:
[root@localhost ~]# passwd -l linuxde    //鎖定使用者linuxde不能更改密碼;
Locking password for user linuxde.
passwd: Success           //鎖定成功;
 
[linuxde@localhost ~]# su linuxde   //通過su切換到linuxde使用者;
[linuxde@localhost ~]$ passwd      //linuxde來更改密碼;
Changing password for user linuxde.
Changing password for linuxde
(current) UNIX password:          //輸入linuxde的當前密碼;
passwd: Authentication token manipulation error     //失敗,不能更改密碼;
# -d引數清空使用者密碼
[root@localhost ~]# passwd -d linuxde  //清除linuxde使用者密碼;
Removing password for user linuxde.
passwd: Success                         //清除成功;
 
[root@localhost ~]# passwd -S linuxde    //查詢linuxde使用者密碼狀態;
Empty password.                         //空密碼,也就是沒有密碼;

6.chage命令

chage命令: 用來修改帳號和密碼的有效期限。

引數:

-m:密碼可更改的最小天數。為零時代表任何時候都可以更改密碼。
-M:密碼保持有效的最大天數。
-w:使用者密碼到期前,提前收到警告資訊的天數。
-E:帳號到期的日期。過了這天,此帳號將不可用。
-d:上一次更改的日期。
-i:停滯時期。如果一個密碼已過期這些天,那麼此帳號將不可用。
-l:例出當前的設定。由非特權使用者來確定他們的密碼或帳號何時過期。

案例:

# 檢視root賬戶密碼的策略
[root@clq ~]# chage -l root
Last password change                                    : never
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 0
Maximum number of days between password change          : 99999
Number of days of warning before password expires       : 7
 
#密碼保持有效的最大天數
[root@clq ~]# chage -l boy
Last password change                                    : Jul 19, 2019
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 0
Maximum number of days between password change          : 99999
Number of days of warning before password expires       : 7
 
[root@clq ~]# chage -M 60 boy
 
[root@clq ~]# chage -l boy
Last password change                                    : Jul 19, 2019
Password expires                                        : Sep 17, 2019
Password inactive                                       : never
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

7.id命令

id命令: 列印真實有效的使用者和組id

引數:

-g或--group   顯示使用者所屬群組的ID。
-G或--groups   顯示使用者所屬附加群組的ID。
-n或--name    顯示使用者,所屬群組或附加群組的名稱。
-r或--real    顯示實際ID。
-u或--user    顯示使用者ID。
-help         顯示幫助。
-version      顯示版本資訊。

案例:

# 使用者組為1000
[root@xclq ~]# id -g boy
1000
 
# 附加組為1000
[root@clq ~]# id -G boy
1000
 
# 使用者uid為1000
[root@clq ~]# id -u boy
1000

8.su命令

su命令: 使用替代使用者和組ID執行命令

引數:

-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;顯示版本資訊。

**案例:

# 切換後boy沒有許可權訪問root的家目錄
[root@clq ~]# su -c ls boy
ls: cannot open directory .: Permission denied
[root@clq ~]# su -c ls root
1          2.txt            mongodb-linux-x86_64-rhel70-4.0.10.tgz  test2.txt
1.txt      anaconda-ks.cfg  pwd
1.txt.bak  etc.tar.gz       sent
# 切換為boy同時更換家目錄
[root@clq ~]# su -l boy
Last login: Fri Jul 19 04:22:40 EDT 2019 on pts/0
[boy@clq ~]$ pwd
/home/boy

9.visudo命令

visudo命令: 編輯 / etc/sudoers 檔案的專屬命令。

引數:

**案例:

[root@clq~]# cat /etc/sudoers
## Sudoers allows particular users to run various commands as  
## the root user, without needing the root password.  
## 該檔案允許特定使用者像root使用者一樣使用各種各樣的命令,而不需要root使用者的密碼  

## This file must be edited with the 'visudo' command.  
## 該檔案必須使用"visudo"命令編輯 
##等等

10.sudo命令

sudo命令: 用來以其他身份來執行命令,預設的身份為root。在/etc/sudoers中設定了可執行sudo指令的使用者。若其未經授權的使用者企圖使用sudo,則會發出警告的郵件給管理員。使用者使用sudo時,必須先輸入密碼,之後有5分鐘的有效期限,超過期限則必須重新輸入密碼。

引數:

-b:在後臺執行指令;
-h:顯示幫助;
-H:將HOME環境變數設為新身份的HOME環境變數;
-k:結束密碼的有效期限,也就是下次再執行sudo時便需要輸入密碼;。
-l:列出目前使用者可執行與無法執行的指令;
-p:改變詢問密碼的提示符號;
-s<shell>:執行指定的shell;
-u<使用者>:以指定的使用者作為新的身份。若不加上此引數,則預設以root作為新的身份;
-v:延長密碼有效期限5分鐘;
-V :顯示版本資訊。

**案例:

# 開啟日誌記錄功能
1.建立sudo.log檔案
touch /var/log/sudo.log
 
2./etc/rsyslog.conf配置檔案最後面新增一行
local2.debug          /var/log/sudo.log            #空白處不能用空格鍵,必需用tab鍵
 
3./etc/ sudoers配置檔案最後新增如下
 
Defaults logfile=/var/log/sudo.log
Defaults loglinelen=0
Defaults !syslog
 
4.重啟syslog服務
[root@localhost .ssh]systemctl restart syslog
 
5.確定程序
[root@localhost .ssh]# ps -aux |grep rsyslog
 
6.測試
測試賬戶使用sudo命令,在root使用者檢視是否有記錄
# 第一個終端記錄sudo
[root@xxx ~]# tail -f /var/log/sudo.log
Jul 19 05:12:36 : root : TTY=pts/1 ; PWD=/root ; USER=root ; COMMAND=/bin/ls
# 第二個終端使用sudo
[root@xxx ~]# sudo ls
1          2.txt            mongodb-linux-x86_64-rhel70-4.0.10.tgz  test2.txt
1.txt      anaconda-ks.cfg  pwd
1.txt.bak  etc.tar.gz       sent
 

11程式的組成

二進位制主程式 命令
配置檔案 .cfg .ini
庫檔案 .so
幫助文件 .doc
日誌檔案 .log 用於記錄服務執行狀態 error
標頭檔案 .h include





12/標識解釋

/media 用來掛載U盤
/mnt 用來掛載硬碟、光碟機
/opt用於安裝軟體
/usr/local用於安裝軟體
/proc 偽檔案系統 內部沒有任何東西
/sys 偽檔案系統 內部沒有任何東西





13fat32 ntfs exfat

fat32 單個檔案不能超過4G(windows)
ntfs 單個檔案可以超過4G(windows、在macbook只讀)
exfat 單個檔案可以超過4G且可以跨平臺(windows/linux/unix)