Linux 用戶管理經常使用命令

前言linux

在上一篇博客中咱們說了一下,權限管理的相關命令,這一篇博客中咱們說一下,用戶管理的相關命令!shell

1. 用戶名和密碼安全

在linux的管理中,至關重要的一環就是管理用戶,不是什麼人均可以登陸服務器的,如有人要登陸服務器,必須申請相關的權限,通過管理員許可才能夠登陸服務器。雖然咱們登陸服務器時輸入的是用戶名和密碼,可是linux主機是不認識你的用戶名和密碼的,他只認識ID號,其實就是一組數字(咱們稱爲UID),因爲計算機僅認識 0 與 1,因此主機對於數字比較有概念的;至於用戶名只是爲了讓人們容易記憶而已。 而你的 ID 與用戶名的對應就在 /etc/passwd,那下面咱們就說一下/etc/passwdbash

2. /etc/passwd 文件服務器

[root@drbd1 boot]# cat /etc/passwd | head -5
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

上面有五行代碼,我看每一行,總7七段,分別用:隔開,下面咱們說一下,各段的意義!分別是用戶名,密碼,UID,GID,用戶說明信息,家目錄,默認shell咱們下面分別的說一說詳細意義!ide


  • 用戶名: 就是咱們經常使用來登陸系統的帳戶,這裏的用戶名和UID相對應 ui

  • 密碼: 不用說了,但這裏是個X,防止被竊取,放在了別一個文件中/etc/shadow 加密

  • UID: 對應咱們的用戶名,主機可經過這個識別咱們用戶名 orm

  • GID: 咱們在前一篇博客中說了,每一個用戶都對應一個用戶組,這裏的GID標識了組名,在另外一個文件中/etc/group ip

  • 用戶說明信息: 沒有什麼重要用途,只是用來解釋這個帳號的意義

  • 家目錄: 用戶的家目錄,以上面爲例, root 的家目錄在 /root ,因此當 root 登錄以後,就會馬上跑到 /root 目錄裏

  • 默認shell: 當用戶登錄系統後就會取得一個Shell 來與系統的核心溝通以進行用戶的操做任務

3. /etc/shadow 文件

咱們在上面說過,/etc/shadow文件是主要存放,用密碼的,下面咱們就來詳細的看一下

[root@drbd1 boot]# cat /etc/shadow | head -5    
root:$1$GErxq.OA$jxK.VBTpJkbr.XTIYnZR6/:15783:0:99999:7:::
bin:*:15783:0:99999:7:::
daemon:*:15783:0:99999:7:::
adm:*:15783:0:99999:7:::
lp:*:15783:0:99999:7:::
從上面的代碼能夠看出,shadow 字段也是由:隔開的,共有9段,下面咱們就說一下每段的意義


  • 用戶名: 不說了

  • 密碼: 通過加密處理,提升安全性

  • 最近更改密碼的日期: 更動口令那一天日期

  • 密碼不可被更改的時間: 配置爲20天的話,那麼當你配置了密碼以後, 20 天以內都沒法改變這個密碼

  • 密碼須要從新更改的天數: 爲了強制要求用戶變動密碼,這個字段能夠指定在最近一次更改密碼後, 在多少天數內須要再次的變動密碼才行

  • 密碼須要更改期限前的警告天數: 上面例子,密碼到期以前的 7 天以內,系統會警告該用戶

  • 密碼過時後可使用的天數: 密碼過了該期限後用戶依舊沒有升級密碼,那該密碼就算過時了。 雖然密碼過時可是該帳號仍是能夠用來進行其餘工做的,包括登錄系統取得 bash

  • 帳號失效日期: 這個帳號在此字段規定的日期以後,將沒法再使用

  • 保留:最後一個字段是保留的,看之後有沒有新功能加入

4.  /etc/group 文件

上面咱們說了,用戶名與密碼的存放文件,下面咱們說一下,組名的存放文件

[root@drbd1 boot]# cat /etc/group | head -5
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
adm:x:4:root,adm,daemon
你們看到了,上面共有4個字段,也是由:分隔,那麼咱們說一下具體意義
  • 組名: 不說了

  • 羣組密碼: 這個配置一般是給羣組管理員使用的,不多使用一樣的口令存放到 /etc/gshadow 中

  • GID: /etc/passwd 第四個字段使用的 GID 對應的羣組名,就是由這裏對應出來的

  • 此羣組支持的其餘用戶: 知道一個用戶能夠加入多個羣組,那某個帳號想要加入此羣組時,將該帳號填入這個字段便可

5. 與用戶管理相關的命令

上面咱們說了,與用戶和組相關的配置文件,分別爲/etc/passwd,/etc/shadow/,/etc/group,下面咱們就來講一下,管理用戶和組的相關命令

  • 管理用戶: useradd, passwd, usermod, userdel

  • 管理組: groupadd, groupmod, groupdel

那咱們就一個個說:

(1). useradd 命令

useradd [-u UID] [-g 初始羣組] [-mM]  [-c 說明欄] [-d 家目錄絕對路徑] [-s shell] 使用者帳號名 選項與參數:
-u :後面接的是 UID ,是一組數字。直接指定一個特定的 UID 給這個帳號
-g :後面接的那個組名,該羣組的 GID 會被放置到 /etc/passwd 的第四個字段內
-G :後面接的組名則是這個帳號還能夠加入的羣組。 這個選項與參數會修改 /etc/group 內的相關數據
-M :強制,不要建立用戶家目錄!(系統帳號默認值)
-m :強制,要建立用戶家目錄!(通常帳號默認值)
-c :這個就是/etc/passwd 的第五欄的說明內容啦,能夠隨便咱們配置的
-d :指定某個目錄成爲家目錄,而不要使用默認值。務必使用絕對路徑
-r :建立一個系統的帳號,這個帳號的 UID 會有限制 (參考 /etc/login.defs)
-s :後面接一個 shell ,若沒有指定則默認是 /bin/bash 的啦~
-e :後面接一個日期,格式爲『YYYY-MM-DD』此項目可寫入 shadow 第八字段, 亦即帳號失效時間的配置
-f :後面接 shadow 的第七字段項目,指定口令是否會失效。0爲馬上失效, -1 爲永遠不失效(口令只會過時而強制於登錄時從新配置而已)

(2). passwd 命令

passwd [-l] [-u] [--stdin] [-S] [-n 日數] [-x 日數] [-w 日數] [-i 日期] 帳號 <==root 功能 選項與參數:
--stdin :能夠經過來自前一個管道的數據,做爲口令輸入,對 shell script 有幫助
-l :是 Lock 的意思,會將 /etc/shadow 第二欄最前面加上 ! 使口令失效
-u :與 -l 相對,是 Unlock 的意
-S :列出口令相關參數,亦即 shadow 文件內的大部分信息
-n :後面接天數,shadow 的第 4 字段,多久不可修改口令天數
-x :後面接天數,shadow 的第 5 字段,多久內必需要更動口令
-w :後面接天數,shadow 的第 6 字段,口令過時前的警告天數
-i :後面接日期,shadow 的第 7 字段,口令失效日期
例: echo "123456" | passwd --stdin test

(3). usermod 命令

usermod [-c d e g G l s u L U] username 選項與參數:
-c :後面接帳號的說明,即 /etc/passwd 第五欄的說明欄,能夠加入一些帳號的說明
-d :後面接帳號的家目錄,即修改 /etc/passwd 的第六欄
-e :後面接日期,格式是 YYYY-MM-DD 也就是在 /etc/shadow 內的第八個字段數據
-f :後面接天數,爲 shadow 的第七字段
-g :後面接初始羣組,修改 /etc/passwd 的第四個字段,亦便是 GID 的字段
-G :後面接次要羣組,修改這個使用者可以支持的羣組,修改的是 /etc/group
-a :與-G 合用,可添加次要羣組的支持而非配置
-l :後面接帳號名稱。亦便是修改帳號名稱, /etc/passwd 的第一欄
-s :後面接 Shell 的實際文件,例如 /bin/bash 或 /bin/csh ……
-u :後面接 UID 數字,即 /etc/passwd 第三欄的數據
-L :暫時將用戶的口令凍結,讓他沒法登錄。其實僅改 /etc/shadow 的口令欄
-U :將 /etc/shadow 口令欄的 ! 拿掉,解凍

(4). userdel 命令

userdel [-r] username 選項與參數:
-r :連同用戶的家目錄也一塊兒刪除


(5). groupadd 命令

groupadd [-g gid] [-r] 組名 選項與參數:
-g :後面接某個特定的 GID ,用來直接給予某個 GID
-r :建立系統羣組與 /etc/login.defs 內的 GID_MIN 有關

(6). groupmod 命令

groupmod [-g gid] [-n group_name] 羣組名 選項與參數:
-g :修改既有的 GID 數字
-n :修改既有的組名

(7). groupdel 命令

groupdel [groupname]
例: groupdel mygroup

以上就把用戶與組管理的基本命令講解完了,你會了嗎?下面咱們就拓展一些命令!

6. 其它命令

(1). id 命令

id [username]
例: id root
[root@drbd1 ~]# id root
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)

(2). finger 命令

finger [-s] username 選項與參數:
-s :僅列出用戶的帳號、全名、終端機代號與登錄時間等等
-m :列出與後面接的帳號相同者,而不是利用部分比對 (包括全名部分)
例:
[root@drbd1 ~]# finger -s root
Login     Name       Tty      Idle  Login Time   Office     Office Phone
root      root       pts/0          May 23 09:29 (192.168.18.138)
[root@drbd1 ~]# finger -m root
Login: root                             Name: root
Directory: /root                        Shell: /bin/bash
On since Thu May 23 09:29 (CST) on pts/0 from 192.168.18.138
New mail received Thu May 23 09:30 2013 (CST)
     Unread since Wed May 15 10:17 2013 (CST)
No Plan.


總結:

到這裏咱們的用戶管理基本講完了,至於用戶管理的高級應用(如,ACL應用,SU應用)我會在後博客中講解!下一篇咱們來講一說,Linux 時間與日期管理!

相關文章
相關標籤/搜索