Linux用戶管理-中

来源:http://www.cnblogs.com/0zcl/archive/2017/05/31/6923454.html
-Advertisement-
Play Games

添加用戶組命令groupadd 提示:groupadd命令的使用非常簡單,但在生產環境中使用的不多,因此,會簡單應用即可。 與groupadd命令有關的文件有:/etc/group :用戶組相關文件/etc/gshadow :用戶組加密相關文件 groupadd命令語法 [root@chensiqi ...


 

 添加用戶組命令groupadd

提示:
groupadd命令的使用非常簡單,但在生產環境中使用的不多,因此,會簡單應用即可。

與groupadd命令有關的文件有:
/etc/group :用戶組相關文件
/etc/gshadow :用戶組加密相關文件

groupadd命令語法

[root@chensiqi ~]# man groupadd #查看groupadd命令的幫助信息
名稱:
    groupadd -建立新的用戶組
語法:
    groupadd 【-g gid [-o][-r][-f]】 groupname
描述:
    groupadd可指定用戶組名稱來建立新的用戶組賬號。需要時可從系統種取得新用戶組值。
View Code

為了方便閱讀和查看相關參數,我依然用表格的方式把groupadd參數選項展現給大家如下所示:
|groupadd參數選項|註釋說明(帶特殊顏色的表示重要,需要掌握)|
|--|--|
|-g gid|指定用戶組GID值。除非接-o參數(如:groupadd -g 1234 -o chensiqi),否則ID值必須是唯一的數字(不能負數)。如果不指定-g參數,則預設值會從500開始|
|-r|建立系統用戶組。GID值會比/etc/login.defs中定義的UID_MIN值小。|
|-f|新增一個賬戶,強制覆蓋一個已經存在的用戶組賬號|

groupadd命令實例

在生產環境中,一般增加用戶組的用法都是非常簡單的,比如下麵的例子,添加GID為802的用戶組chensiqi

[root@chensiqi ~]# groupadd -g 802 chensiqi #未必一定要指定GID。一般需求不加也可以

如果不需要指定用戶組ID值,可以直接執行

[root@chensiqi ~]# groupadd chensiqi

提示:未提到的groupadd的參數,大家可以暫時忽略掉,在實際工作中用的比較少。

 

用戶密碼相關命令passwd

前文我們已經學會如何添加用戶和用戶組了,本節我們來學習設置或修改用戶的密碼。passwd命令的用戶很多,但大多數用法在平時工作中都不經常使用,這裡我們挑選一些生產環境工作中常用的用法加以說明。

passwd命令介紹

普通用戶和超級用戶都可以運行passwd命令,但普通用戶只能更改自身的用戶密碼,超級用戶root則可以設置或修改所有用戶的密碼。

當直接執行passwd命令後面不接任何參數或用戶名時,則表示修改當前登錄用戶的密碼,請看下麵的例子:

[root@chensiqi1 ~]# passwd #root用戶下直接執行passwd,後面不接任何用戶表示修改root用戶的密碼:下麵也有提示。
Changing password for user root.
New password:  #輸入新密碼 
Retype new password:  #再次輸入新密碼
passwd: all authentication tokens updated successfully. #成功修改root密碼

提示:
普通用戶只能修改自身的密碼。如果想更改自身的密碼,同樣是直接運行passwd命令;比如當前操作系統用戶是chensiqi:

[chensiqi@chensiqi1 ~]$ passwd #普通用戶也輸入passwd修改密碼
Changing password for user chensiqi.
Changing password for chensiqi.
(current) UNIX password: #普通用戶必須先輸入舊密碼才能更改
New password: 
Password unchanged #新密碼不能和舊密碼相同。
New password: 
Password unchanged
New password: 

passwd 命令參數選項

[chensiqi@chensiqi1 ~]$ passwd --help
Usage: passwd [OPTION...] <accountName>
  -k, --keep-tokens       keep non-expired authentication tokens
                          #保留即將過期的用戶在期滿後仍能使用
  -d, --delete            delete the password for the named account (root only)
                          #刪除用戶密碼,僅能以root許可權操作
  -l, --lock              lock the password for the named account (root only)
                          #鎖住用戶無權更改密碼,僅能通過root許可權操作。
  -u, --unlock            unlock the password for the named account (root only)
                          #解除鎖定;
  -f, --force             force operation
                          #強制操作:僅root許可權才能操作
  -x, --maximum=DAYS      maximum password lifetime (root only)
  #兩次密碼修正的最大天數,後面接數字:僅root許可權操作
  -n, --minimum=DAYS      minimum password lifetime (root only)
  #兩次密碼修改的最小天數,後面接數字,僅能root許可權操作
  -w, --warning=DAYS      number of days warning users receives before password expiration (root only)     #在距多少天提醒用戶修改密碼:僅能root許可權操作
  -i, --inactive=DAYS     number of days after password expiration when an account becomes disabled(root only) #在距多少天提醒用戶修改密碼:僅能root許可權操作
  -S, --status            report password status on the named account (root only)                 #查詢用戶的密碼狀態,僅能root用戶操作。
View Code

為了方便查看,我們用表格方式把passwd命令的常用參數選項列表顯示,如下表所示:

 

passwd參數註釋說明(帶特殊顏色的表示重要,需要掌握)
-k --keep-tokens 保留即將過期的用戶在期滿後仍能使用
-d --delete 刪除用戶密碼,僅能以root許可權操作
-l, --lock 鎖住用戶無權更改密碼,僅能通過root全縣操作
-u, --unlock 解除鎖定
-f, --force 強制操作:僅root許可權才能操作
-x,--maximum=DAYS 兩次密碼修改的最大天數,後面接數字:僅能root許可權操作
-n --minimum=DAYS 兩次密碼修改的最小天數,後面接數字,僅能root許可權操作
-w --warning=DAYS 在距多少天提醒用戶修改密碼:僅能root許可權操作
-l --inactive=DAYS 在密碼過期後多少天,用戶被禁掉,僅能以root操作
-S --status 查詢用戶的密碼狀態,僅能root用戶操作
--stdin 從stdin讀入密碼

 

示例1:我們用-l參數來鎖定chensiqi用戶,使之不能修改密碼,然後再用-u參數來解除鎖定。

 1 [zcl@chengliang ~]$ passwd -S zcl
 2 Only root can do that.
 3 [zcl@chengliang ~]$ su - root
 4 Password: 
 5 [root@chengliang ~]# passwd -S zcl  #鎖定前zcl用戶的狀態信息
 6 zcl PS 2016-11-19 0 99999 7 -1 (Password set, SHA512 crypt.)
 7 [root@chengliang ~]# grep zcl /etc/shadow  # 查看密碼加密文件zcl用戶信息的變化
 8 zcl:$6$X.mR9wCK$J3VXtMEZ9jK0t1xgFKT3J1Yb6uD/hRAlqIG83PDDlViHA4abbwT0p3ay9jAHU1LgODr1bycXd8GaL3IVUBjdG.:17124:0:99999:7:::
 9 [root@chengliang ~]# passwd -l zcl  # 鎖定用戶zcl, 使之不能更改密碼。
10 Locking password for user zcl.
11 passwd: Success  # 鎖定成功
12 [root@chengliang ~]# grep zcl /etc/shadow
13 zcl:!!$6$X.mR9wCK$J3VXtMEZ9jK0t1xgFKT3J1Yb6uD/hRAlqIG83PDDlViHA4abbwT0p3ay9jAHU1LgODr1bycXd8GaL3IVUBjdG.:17124:0:99999:7:::
14 # 密碼信息前邊多了兩個嘆號!
15 [root@chengliang ~]# passwd -S zcl   #查看用戶狀態
16 zcl LK 2016-11-19 0 99999 7 -1 (Password locked.)
17 [root@chengliang ~]# su - zcl
18 [zcl@chengliang ~]$ passwd
19 Changing password for user zcl.
20 Changing password for zcl.
21 (current) UNIX password: 
22 passwd: Authentication token manipulation error  # 失敗不讓修改
23 [zcl@chengliang ~]$ exit
24 logout
25 [root@chengliang ~]# passwd -u zcl  # 通過-u參數,解除對用戶zcl的鎖定。
26 Unlocking password for user zcl.
27 passwd: Success
28 [root@chengliang ~]# passwd -S zcl
29 zcl PS 2016-11-19 0 99999 7 -1 (Password set, SHA512 crypt.)
30 [root@chengliang ~]# grep zcl /etc/shadow
31 zcl:$6$X.mR9wCK$J3VXtMEZ9jK0t1xgFKT3J1Yb6uD/hRAlqIG83PDDlViHA4abbwT0p3ay9jAHU1LgODr1bycXd8GaL3IVUBjdG.:17124:0:99999:7:::
32 # 感嘆號消失
33 [root@chengliang ~]# 
View Code

示例2:舉一個組合參數-x-n-w-i控制密碼時效的例子

[root@chensiqi1 ~]# date +%F    #顯示當前系統時間
2017-02-16
[root@chensiqi1 ~]# chage -l chensiqi  #查看當前賬戶狀態
Last password change                    : Feb 12, 2017
Password expires                    : Apr 13, 2017   
Password inactive                   : May 13, 2017
Account expires                     : never      #從不
Minimum number of days between password change      : 7   #7天後才能修改密碼
Maximum number of days between password change      : 60 #60天後必須再次修改密碼
Number of days of warning before password expires   : 10 #快過期提前10天通知用戶

示例3:下麵要求chensiqi用戶7天內不能更改密碼,60天以後必須修改密碼,過期前10天通知用戶,過期後30天禁止用戶登錄

[root@chensiqi1 ~]# passwd -n 7 -x 60 -i 30 -w 10 chensiqi
Adjusting aging data for user chensiqi.
passwd: Success
#chage -m 7 -M 60 -W 10 -I 30 chensiqi 命令也可以實現同樣功能,只是參數的寫法不同。
[root@chensiqi1 ~]# chage -l chensiqi  #查看修改後的結果
Last password change                    : Feb 12, 2017 #最後一次修改密碼
Password expires                    : Apr 13, 2017  #密碼過期時間
Password inactive                   : May 13, 2017 #密碼被禁用
Account expires                     : never
Minimum number of days between password change      : 7   #7天內禁止修改密碼
Maximum number of days between password change      : 60 #60天以後必須修改新密碼
Number of days of warning before password expires   : 10 #密碼過期前10天開始提醒

示例4:【必會】我們用--stdin參數實現非互動式的批量設置或修改密碼

[root@chensiqi1 ~]# useradd chensiqi2   #創建用戶
Creating mailbox file: File exists
[root@chensiqi1 ~]# echo "123123" | passwd --stdin chensiqi2
Changing password for user chensiqi2. #免交互輸出設置chensiqi2密碼
passwd: all authentication tokens updated successfully.
[root@chensiqi1 ~]# history -c
#將上面歷史命令清空,上面設置密碼雖然不需要交互了,但是密碼會以明文的方式保存在歷史記錄里,這點需要大家註意一下。一般批量設置密碼分發給管理員後,有強制大家更改密碼。

實現批量創建用戶,且批量創建用戶隨機密碼的例子。

#!/bin/env bash
# -*- conding:utf-8 -*-
# author:chensiqi
# qq:215379068

Userchars="chensiqi"    #用戶字元串,就是用戶名的前面部分。
for num in `seq 3`      #seq 3 表示1-3即,用戶名尾碼為1,2,3來區分不同用戶
do
    useradd $Userchars$num   #創建用戶的命令
    passwd=`echo $RANDOM|md5sum|cut -c3-20`     #按照隨機數(RANDOM)的md5加密取3-20之間的字元做為用戶密碼。此處要註意,密碼部分應該事先定義好變數,否則取值變化,導緻密碼生成錯誤。
    echo "$passwd"|passwd --stdin $Userchars$num    #這行就是利用--stdin無交互設置密碼的參數
    echo -e "user:$userchars$num\tpasswd:$passwd">>/tmp/user.log    #輸出創建的用戶和密碼到user.log文件
done
---------------------------分界線
[root@chensiqi1 ~]# cat /tmp/user.log  #查看用戶的賬號和密碼
user:chensiqi1  passwd:0e07e85b8ff84f04d9
user:chensiqi2  passwd:2362c5ade9629b2782
user:chensiqi3  passwd:7f17100a32ddf668f3

#提示:有關shell編程,後面的章節會詳細講解,這裡不太理解也沒關係
View Code

 

passwd特殊許可權說明

[root@chensiqi1 ~]# which passwd #查看passwd完成路徑
/usr/bin/passwd
[root@chensiqi1 ~]ls -l /usr/bin/passwd 
-rwsr-xr-x. 1 root root 30768 Nov 23  2015 /usr/bin/passwd #發現屬主許可權位帶了個s(setuid位)
[root@chensiqi1 ~]# ls -l /etc/passwd
-rw-r--r--. 1 root root 1301 Feb 17 21:41 /etc/passwd #/etc/passwd從許可權上看僅允許root用戶更改。
為什麼其他用戶可以更改/etc/passwd自己的密碼呢?

我們看到/usr/bin/passwd文件的屬主許可權里呆了s許可權,這是setuid許可權位,這表示允許普通用戶以/usr/bin/passwd屬主root的許可權來執行普通用戶本來無法執行的功能。比如:普通用戶是沒有許可權修改/etc/passwd的(從上文可以看到)。因為/usr/bin/passwd命令文件已經設置了setuid許可權位(也就是-rwsr-xr-x中的s),所以普通用戶在執行/usr/bin/passwd命令時能夠使用root用戶的許可權,間接的修改/etc/passwd文件,以達到修改自己口令的目的。

總結:

  • 有關passwd命令的用法暫時就介紹這些,在實際工作中,最常用的用法就是直接使用passwd加用戶名設置和修改密碼,其次是加--stdin參數批量無交互設置密碼,其他的參數用的很少(包括-l-u-S等),大家如果想瞭解更多參數,可參考man passwd或passwd --help
  • 最後提醒下同學們,在生產環境中,我們設置密碼時應儘可能的複雜且無規律,但又利用用戶自己記憶。比較好的密碼是數字字母(包括大小寫)及特殊符號的組合,並且8位以上。

 

修改用戶密碼有效期限相關命令chage

chage命令是用來修改用戶密碼有效期限的。(chage - change user password expiry information)

chage命令的用法很多,和passwd等命令功能也有不少是重覆的,這裡我們還是挑選一些工作中常用的用法加以說明;

chage語法

[root@chensiqi ~]# chage --help
用法:chage [選項] 用戶名

為了方便同學們查看,我們用表格的方式把chage命令的常用參數列表顯示,如下表所示:
|chage 參數選項|註釋說明(帶特殊顏色的表示重要,需要掌握)|
|--|--|
|-d,--lastday 最近日期|將最近一次密碼設置時間設為“最近日期”|
|-E,--expiredate過期日期|將賬戶過期時間設為“過期日期”|
|-h,--help|顯示此幫助信息並退出|
|-l,--inactive失效密碼|在密碼過期後多少天,用戶被禁掉,僅能以root操作|
|-l,--list|顯示賬戶年齡信息|
|-m,--mindays最小天數|將兩次改變密碼之間間距的最小天數設為“最小天數”|
|-M,--maxdays最大天數|將兩次改變密碼之間間距的最大天數設為“最大天數”|
|-W,-warndays警告天數|將過期警告天數設為“警告天數”|

示例1:chage -l 查看賬戶信息

[root@chensiqi1 ~]# chage -l chensiqi
Last password change                : Feb 12, 2017 #對應參數-d
Password expires                    : Apr 13, 2017 
Password inactive                   : May 13, 2017 #對應參數-I
Account expires                     : never #對應-E參數
Minimum number of days between password change      : 7 #對應m參數
Maximum number of days between password change      : 60 #對應M參數
Number of days of warning before password expires   : 10 #對應W參數
示例2:舉一個組合參數-m,-M,-W,-I控制密碼時效的例子(同passwd命令示例)

[root@chensiqi1 ~]# chage -l chensiqi
Last password change                    : Feb 12, 2017
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 #99999天後必須修改密碼
Number of days of warning before password expires   : 7 #過期前提前7天提醒chensiqi用戶
示例3:下麵求chensiqi用戶7天內不能更改密碼,60天後必須修改密碼,過期前提前10天通知chensiqi用戶,過期後30天後禁止用戶登錄。

[root@chensiqi1 ~]# chage -m 7 -M 60 -W 10 -I 30 chensiqi
[root@chensiqi1 ~]# chage -l chensiqi #查看修改後的結果
Last password change                    : Feb 12, 2017
Password expires                    : Apr 13, 2017
Password inactive                   : May 13, 2017
Account expires                     : never
Minimum number of days between password change      : 7 #7天內禁止修改密碼
Maximum number of days between password change      : 60 #60天內必須修改新密碼
Number of days of warning before password expires   : 10 #密碼過期前10天開始提醒
提示:經過對比,我們發現修改後和前面講解的passwd -n 7 -x 60 -W 10 -i 30 chensiqi命令修改結果一摸一樣
View Code

總結:

在平時生產場景工作中,偶爾會用到chage的-l和-E參數,其他的參數,使用就很少了,這裡不多介紹(知識是無限的,對於初學者,學會科學的取捨知識很重要)。當然,如果想瞭解更多,請參考man chage和chage --help。另外,有關賬戶實際過期的實際結論,在前文講解useradd命令時就詳細講解過了,這裡就不介紹了。

有關用戶密碼時效

  • 根據前文的講解,我們知道passwd和chage等均可以設置或更改指定賬戶密碼的安全信息(有效期等),我們也可以通過/etc/login.defs配置文件或/etc/default/useradd針對所有賬戶全局修改。
  • 設置用戶密碼的時效有利有弊:優點是可以防止運維人員離職一段時間後發現用戶還可以登錄(也可能不是自己的用戶),如果設置了賬戶有效期,即使用戶未被清理,那麼,一段時間內也會因為過期而無法登陸了,另外,在伺服器數量很多的情況,更改密碼是很大的工作量。所以,對於用戶密碼的時效功能,我們根據實際的工作需求,綜合運用。在大規模的運維環境中,使用LDAP服務(微軟活動目錄)對linux賬戶統一認證,批量管理,也是不錯的方法。

 

刪除用戶相關命令userdel

從userdel命令名稱就可以知道,它的功能就是刪除用戶及用戶相關的信息,與這個命令有關的文件有:

  • /etc/passwd :用戶賬號資料文件
  • /etc/shadow :用戶賬號資訊加密文件
  • /etc/group : 用戶組資訊文件
  • /etc/gshadow :用戶組密碼資訊文件

1)userdel 語法

[root@chensiqi ~]# man userdel
名稱:
    userdel -刪除系統用戶賬號及相關目錄及文件
語法:
    userdel [-r] 用戶名
    userdel 用戶名,用戶名必須是系統已存在的
    -r 用戶目錄下的檔案一併移除。在其他位置上的相關文件也將一一找出並刪除。
相關文件
    /etc/passwd : 用戶賬號資料文件
    /etc/shadow : 用戶賬號咨詢加密文件
    /etc/group : 用戶組資訊文件
提示:使用userdel命令的結果實際上就是在更改維護以上的文件

 企業場景刪除用戶處理方法:

一般不能確認用戶相關目錄有沒有重要數據就不能用-r
刪除經驗:

  1. vi /etc/passwd,然後註釋掉用戶,觀察1個月,這樣出問題可以還原。相當於操作前備份。
  2. 把登錄shell /bin/bash 改成 /sbin/nologin.
  3. openldap(類似活動目錄)賬號統一管理的,ldap庫里幹掉用戶。所有伺服器全部都沒了。
    提示:只要修改和刪除都要小心謹慎!

userdel實例

示例1:刪除指定賬戶hah

[root@chensiqi1 ~]# grep chensiqi2 /etc/passwd 
chensiqi:x:808:808:num3 chensiqi:/chensiqi2017-02-11:/bin/bash
chensiqi2:x:810:810::/home/chensiqi2:/bin/bash
[root@chensiqi1 ~]# userdel chensiqi2 #刪除賬戶,但不刪除家目錄
[root@chensiqi1 ~]# ls /home  #家目錄仍舊存在
chensiqi  chensiqi1  chensiqi2  chensiqi3  mysql
[root@chensiqi1 ~]# grep chensiqi2 /etc/passwd  #賬戶已經沒了
chensiqi:x:808:808:num3 chensiqi:/chensiqi2017-02-11:/bin/bash

總結:

  • 使用“userdel 用戶名”,這樣的方法刪除用戶時,僅會刪除用戶本身,其家目錄及相關文件並不會被刪除。一般生產場景種,當無法確定被刪除用戶家目錄是否有用或者有不規範用戶已在家目錄下跑了腳本或程式的時候,就不要使用“userdel -r 用戶名”這樣的危險命令,而直接使用”userdel 用戶名“命令刪除即可。
  • 當然,我們還可以直接使用vi編輯/etc/passwd,找到要處理的用戶,先註釋一段時間,確認真的沒問題了,然後在清理其家目錄,註釋的作用和userdel命令刪除的效果一樣,就是實現了被註釋的用戶無法登錄了(註釋掉用戶當前行即可),註釋有類似回收站的作用,一旦發現問題,我們可以進行恢復工作。當然對於對門戶上千台伺服器大規模運維的情況,我們可以使用ldap等服務實現賬戶統一認證,批量的添加刪除管理。

示例2:userdel -r 用戶名 方式刪除
如果在userdel命令後加參數-r,表示在刪除該用戶的同時,一併把用戶的家目錄及本地郵件存儲的目錄和文件也一同刪除。因此,要謹慎使用。

[root@chengliang ~]# ls /home/
cheng  chengliang  hah  student  teacher  test  test2  zcl
[root@chengliang ~]# userdel -r test  # 刪除用戶包含它的家目錄
[root@chengliang ~]# ls /home  #用戶家目錄已經被刪除
cheng  chengliang  hah  student  teacher  test2  zcl
[root@chengliang ~]# grep "test" /etc/passwd
test2:x:812:812::/home/test2:/bin/bash
[root@chengliang ~]# 

 

刪除用戶組相關命令groupdel

groupdel是用來刪除用戶組的,要求用戶組必須是已存在的。用groupdel刪除用戶組實際就是修改/etc/group(用戶組文件)和/etc/gshadow(用戶組加密文件)文件。

語法格式:groupdel 用戶組

[root@chensiqi1 ~]# groupadd zhangsan #創建用戶組
[root@chensiqi1 ~]# grep zhangsan /etc/group  #查看文件有記錄
zhangsan:x:810:
[root@chensiqi1 ~]# grep zhangsan /etc/gshadow #查看文件有記錄
zhangsan:!::
[root@chensiqi1 ~]# groupdel zhangsan #刪除用戶組
[root@chensiqi1 ~]# grep zhangsan /etc/group #無記錄
[root@chensiqi1 ~]# grep zhangsan /etc/gshadow #無記錄

groupdel 比較簡單,工作中使用的頻率非常少,大家會以上簡單應用就可以了。

 

用戶信息修改相關命令usermod

usermod命令功能十分強大,在生產場景中使用頻率雖然不是很多,但還是比較重要的。它不僅能更改用戶的shell類型,所歸屬用戶組,還能改用戶密碼的有效期,登錄名等很多用戶的信息。
與usermod命令有關的文件有:

/etc/passwd :用戶賬號資料文件
/etc/shadow :用戶賬號資訊加密文件
/etc/group :用戶組資訊文件
/etc/gshadow :組密碼文件

1)usermod語法
|usermod參數選項|註釋說明(帶特殊顏色的表示重要,需要掌握)|
|--|--|
|-c comment|增加用戶賬號/etc/passwd中的註解說明欄(第5欄)。這個-c參數功能也可以使用chfn命令來修改,當然也可以手工修改/etc/passwd文件來實現|
|-d home_dir|更新用戶新的家目錄。如果給定-m選項,用戶舊的家目錄會搬到新的家目錄去,如舊的家目錄不存在則建個新的。|
|-e expire_date|加上用戶賬號停止日期。日期格式為:MM/DD/YY|
|-f inactive_days|賬號過期幾日後永久停權。當值為0時賬號則立刻被停權。而當值為-1時則關閉此功能。預設值-1|
|-g initial_group|更新用戶新的起始登入用戶組。用戶組名需已存在。用戶組ID必須參照既有的用戶組。用戶組ID預設值為1|
|-G group【...】|定義用戶為一堆groups的成員。每個用戶組使用“,”逗號隔開。用戶組名同-g選項的限制|
|-l login_name|變更用戶login時的名稱為login_name.其餘信息不變|
|-s shell|指定新登入shell。如此欄留白,系統將選用系統預設shell。這個-s參數功能也可以使用chsh命令來修改。當然也可以手工修改/etc/passwd文件來實現|
|-u uid|指定用戶UID值。除非接-o參數,否則ID值必須是唯一的數字(不能是負數)|
|-L|凍結用戶的密碼,使之無法登錄,實際就是間接修改/etc/shadow的密碼欄。在密碼欄的開頭加上“!”號,即表示凍結。這個凍結密碼的功能和usermod -e,useradd -e,chage -E或passwd -l等命令參數都有類似的功效,那就是讓用戶無法正常登陸。|
|-U|取消凍結用戶的密碼,使之恢復登錄,實際同樣是修改/etc/shadow的密碼欄。在密碼欄的開頭取消“!”號,即表示恢復。|

2)usermod實例

實例1:使用不同的方法修改/etc/passwd中用戶的說明欄

[root@chensiqi1 ~]# tail -1 /etc/passwd #修改前查看一下
chensiqi1:x:809:809::/home/chensiqi1:/bin/bash
[root@chensiqi1 ~]# usermod -c 00chensiqi1 chensiqi1 #修改賬戶的註釋說明信息
[root@chensiqi1 ~]# tail -1 /etc/passwd #查看修改結果
chensiqi1:x:809:809:00chensiqi1:/home/chensiqi1:/bin/bash
[root@chensiqi1 ~]# chfn -f information chensiqi1  #chfn也可以修改
Changing finger information for chensiqi1.
Finger information changed.
[root@chensiqi1 ~]# tail -1 /etc/passwd 
chensiqi1:x:809:809:information:/home/chensiqi1:/bin/bash
提示:實例1的用法,僅在這裡說明用,真正工作中使用的不多,屬於瞭解內容。

由於有前面useradd命令的講解基礎了,這裡就不過多演示了。
View Code

 

2.3 用戶管理命令小結

1,和用戶相關的配置文件知識點:
/etc/passwd 賬號文件及不同列內容
/etc/shadow 賬號密碼文件及不同列內容
/etc/group 組的文件及不同列內容
/etc/gshadow 組密碼文件及不同列內容
2,用戶管理命令
useradd -u -g -G -s -M -e -c -d
初始化用戶對應的幾個文件/etc/skel,/etc/default/useradd,/etc/login.defs
userdel -r
usermod -L -U
chage -l(小寫) -E
passwd --stdin
3,組管理命令
groupadd -g

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 計數行 直接上慄子:客戶想要知道有多少pet了, 腫麽辦?(需要用到一個COUNT(*)的函數) 操作如下: SELECT COUNT(*) FROM pet; mysql> SELECT COUNT(*) FROM pet;+ +| COUNT(*) |+ +| 9 |+ +1 row in se ...
  • 一、 創建用戶: 命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 說明:username - 你將創建的用戶名, host - 指定該用戶在哪個主機上可以登陸,如果是本地用戶可用localhost, 如果想讓該用戶可以從任意遠程主 ...
  • 在MySQL 中,主要有四種類型的索引,分別為:B-Tree 索引,Hash 索引,Fulltext 索引和RTree索引 1、B-Tree 索引 B-Tree 索引是MySQL 資料庫中使用最為頻繁的索引類型,除了Archive 存儲引擎之外的其他所有的存儲引擎都支持B-Tree 索引。不僅僅在M ...
  • 2017年5月31日,天氣陰。近期事情頗多,心情比較沉重。 端午剛過,早上上課,很多同學還處在端午的疲憊狀態中沒有回過神來,當然我也不例外。端午奔波三天,加上畢設的事情,可以說身心俱疲。狀態不佳,整理了一下以前的筆記,發現很多知識點記憶不清了,甚至有些幾乎沒印象了。下麵把自己對DDL、DML和DCL ...
  • Redis 小白指南(二)- 基礎命令和五大類型:字元串、散列、列表、集合和有序集合 引言 開篇已經介紹了 Redis 安裝、GUI 和 C# 驅動等基本知識,這一篇主要是梳理一下 Redis 的 5 種類型的信息與指令。 目錄 字元串類型 散列類型 列表類型 集合類型 有序集合類型 其它命令 字元 ...
  • 【事務】一組SQL語句操作單元,組內所有SQL語句,完成一個業務。 若整組成功,意味著組內的全部操作都成功; 反之,若其中任何一條語句失敗,意味著整個操作都失敗。 操作失敗,意味著整個過程都是沒有意義的,應使資料庫回到操作前的初始狀態。 【point】1. 失敗後,能回到開始位置; 2. 成功之前, ...
  • 上一篇,我們講述了HBase的協處理器。    下麵我們開始介紹Impala的介紹及安裝。 ...
  • Redis 小白指南(一)- 簡介、安裝、GUI 和 C# 驅動介紹 目錄 簡介 安裝 入門指令 GUI 工具 C# 驅動介紹 簡介 ANSI C 編寫,開源,基於記憶體,可持久化,一個鍵值對的資料庫,用法簡單。 支持的類型:字元串、散列、列表、集合和有序集合。 因為 Redis 預設將所有數據都存儲 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...