用戶和組的管理

通過命令、passwd和shadow的格式,講述了用戶和組的管理

用戶和組的管理

一、用戶的分類

按照用戶的權限分類,分成了管理員用戶與普通用戶。管理員用戶(root)擁有至高的權限,應避免在企業的運維中,使用root登錄 ,root用戶的ID為0;應該使用普通用戶登錄到系統,如果執行的程序需要使用管理員,則使用sudo臨時進行切換。
普通用戶按照用戶是否需要登錄到系統,分成了系統用戶和非系統用戶,系統用戶,一般用于某個服務使用,非系統用戶,就是我們常見的登錄用戶, 系統用戶、系統組與普通的登錄用戶、組,在其ID上存在區別,
在CentOS 7上,系統用戶的ID號1-999,普通用戶的ID號1000-60000, 在CentOS 6上,系統用戶的ID號是1-499,普通用戶的ID從500-60000

二、創建、刪除用戶

1. 創建用戶 useradd
使用方法: useradd [選項] 登錄名

選項
-c: 指定注釋信息
-d 家目錄: 指定家目錄的位置
-e EXPIRE_DATE: 用戶賬戶被禁用的日期,日期以YYYY-MM-DD格式指定
-f INACTIVE: 密碼過期后,賬戶被徹底禁用之前的天數。0表示立即禁用,-1表示禁用這個功能
-g GROUP: 用戶初始登錄組的組名或號碼,這個組應該已經存在于系統中
-G GROUP: 指定用戶的附加組
-r: 創建一個系統賬戶
-s SHELL: 指定用戶登錄的shell名
-u UID: 指定用戶ID的數字值

2. 刪除用戶 userdel

使用方法: userdel [選項] 登錄名
選項: -r 在刪除用戶時,一并刪除用戶的家目錄,默認情況下,不會刪除用戶的家目錄。

三、 passwd和shadow文件的格式

1. ? passwd文件的格式

tail /etc/passwd
fedora:x:4002:4002:Fedora Core:/home/fedora:/bin/tcsh
passwd文件的格式
1. account: 用戶賬號
2. password: 加密的密碼或者密碼占位符
3. UID: 用戶的ID號
4. GID: 用戶的基本組ID
5. GECOS: 注釋信息
6. directory: 用戶的家目錄位置
7. shell: 用戶登錄時的shell

shadow文件的格式:

1. 登錄名
2. 加密了的密碼
3. 上次更改密碼的日期:表示從1970年1月1日開始的天數。
4. 密碼最小使用期限
5. 密碼最大使用期限
6. 密碼警告時間段:密碼過期之前,提前警告用戶的天數
7. 密碼禁用期: 密碼過期以后,仍然接受此密碼的天數,在此期間登錄,會強制用戶修改密碼,當密碼過期并且已經過了這個寬限期以后,使用用戶的當前密碼將不能登錄系統。用戶需要聯系管理員( password inactivity period)
8. 賬戶過期日期:賬戶過期的日期,表示從1970年1月1日開始的天數,賬戶過期日期不同于密碼過期,賬戶過期時,用戶將不允許登錄;密碼過期時,用戶將不被允許使用其密碼登錄。(account expiration date)
9. 保留字段

##########################################################################

tail -2 /etc/shadow
liuqing:$6$RbuXUmQFp70flw05$1RalKHCSJhiwi1bjO1Nsjd200rNbd..M.djiTh2KQhwRoMJSGalUi4i0ICWt1TXiQ4C0nyy6ev8TRXk5ztoCu0::0:99999:7:::
liu008qing:$6$wh82xgsZ$3yDbq0Z4MLsuX9dW/DT9lrY9cy7/Jer51cnkICZo7/mh82ru88Lu1SR.Sn./7lmX8PAqaO0mSMZV3tsB29K5b/:17497:0:99999:7:::

示例:
1. 創建一個用戶liu008qing,注釋為”Liuqing login”, 家目錄為/var/liuqing,shell為/bin/tcsh
[root@localhost ~]# useradd -c “Liuqing login” -d /var/liuqing -s /bin/tcsh liu008qing
liu008qing:x:4003:4003:Liuqing login:/var/liuqing:/bin/tcsh

2. 賬戶禁用的寬限期實驗
[root@localhost ~]# useradd -f 12 test2
[root@localhost ~]# tail -1 /etc/shadow
test2:!!:17497:2:6699:7:12::

3. 賬戶禁用的寬限期、賬戶過期實驗
[root@localhost ~]# useradd -f 12 -e 2018-02-05 test3
[root@localhost ~]# tail -1 /etc/shadow
test3:!!:17497:2:6699:7:12:17567:

如何更改賬戶的密碼最長使用時間、最短使用時間、密碼過期警告時間:
1. 如果針對所有的用戶,可以修改/etc/login.defs,并修改以下項
PASS_MAX_DAYS:9999
PASS_MIN_DAYS:0
PASS_WARN_AGE:7

2. 如果針對特定的用戶,編輯/etc/shadow,用戶對應的那一行,進行修改。

當達到了告警的時間,會如下顯示:
Warning: your password will expire in 4 days
Last failed login: Mon Nov 27 17:10:41 CST 2017 from 192.168.58.158 on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Mon Nov 27 17:08:46 2017

zhangsan:$6$tbNWSlL6$0gCBRp3YdHDNEjJZuIpALdlu32ZvO0lVrt473.MivOJAzWlSEoBdc9VfVUq7SYBGIT/j/sL.x5K6IPqIjqinN/:17493:2:8:7:::
實驗時間為17497,將密碼最小時間改成2天,最大時間改成8天,過期警告時間改成7天,并且將上次密碼修改時間改成了4天以前。就出現了如上的提示。

##########################################################################

四、 修改用戶屬性

man usermod
usermod [選項] 登錄名

-u: 修改用戶的ID為此處指定的新UID
-g: 修改用戶所屬的基本組
-G: 修改用戶所屬的附加組,原來的附加組會被覆蓋,
-a -G: 追加用戶的附加組。
-c: 修改備注信息
-d: 修改用戶的家目錄,家目錄的原有的文件丟失
-d -m: 將用戶原有家目錄移動到新目錄
-l: 修改用戶名
-s: 修改用戶的默認shell
-L: 鎖定用戶密碼,禁止用戶登錄 即在用戶原來的密碼字符串之前添加一個”!”
-U: 解鎖用戶的密碼

##########################################################################

[root@localhost ~]# tail -1 /etc/passwd
test3:x:4006:4006::/home/test3:/bin/bash

[root@localhost ~]# usermod -u 1888 test3
[root@localhost ~]# tail -1 /etc/passwd
test3:x:1888:4006::/home/test3:/bin/bash

[root@localhost ~]# usermod -g 1999 test3
[root@localhost ~]# tail -1 /etc/passwd
test3:x:1888:1999::/home/test3:/bin/bash

[root@localhost ~]# id test3
uid=1888(test3) gid=1999(corun) 組=1999(corun)
[root@localhost ~]# usermod -a -G liuqing,mygrp test3
[root@localhost ~]# id test3
uid=1888(test3) gid=1999(corun) 組=1999(corun),1000(liuqing),1002(mygrp)

[root@localhost ~]# tail -1 /etc/passwd
test3:x:1888:1999::/home/test3:/bin/bash
[root@localhost ~]# usermod -c “This is test3” test3
[root@localhost ~]# tail -1 /etc/passwd
test3:x:1888:1999:This is test3:/home/test3:/bin/bash

##########################################################################

五、使用chage來更改賬戶的過期時間

[root@localhost ~]# tail -1 /etc/shadow
test3:!!:17497:2:6699:7:12:17567:

[root@localhost ~]# chage -d 17488 test3
[root@localhost ~]# tail -1 /etc/shadow
test3:!!:17488:2:6699:7:12:17567:

[root@localhost ~]# chage -E 18000 test3
[root@localhost ~]# tail -1 /etc/shadow
test3:!!:17488:2:6699:7:12:18000:

[root@localhost ~]# chage -m 4 test3
[root@localhost ~]# tail -1 /etc/shadow
test3:!!:17488:4:6699:7:12:18000:

[root@localhost ~]# chage -M 9 test3
[root@localhost ~]# tail -1 /etc/shadow
test3:!!:17488:4:9:7:12:18000:

六、基本組與附加組:

一個用戶只能有一個基本組,一個用戶可以擁有多個附加組; 用戶在創建文件時,其中組的權限,會賦予給基本組,即文件的所屬組是文件屬主的基本組; 用戶的附加組屬于某一個組,如果這個組是文件的屬組,則用戶擁有屬組的權限。
更改用戶的基本組與附加組,在前面已經介紹了,使用usermod -g來更改用戶的基本組,使用usermode -a -G來添加用戶的附加組,如果不使用-a選項,則會清空原有的附加組。

組密碼的設置及其作用: 對組設置一個密碼,當一個用戶需要使用某個組做為屬組來創建、訪問文件時,使用newgrp來進行切換,切換后,用戶的基本組就是我們設置的這個組。

##########################################################################

[root@localhost ~]# gpasswd corun
正在修改 corun 組的密碼
新密碼:

[liuqing@localhost ~]$ newgrp corun
密碼:
[liuqing@localhost ~]$ touch /tmp/liuqing.test
[liuqing@localhost ~]$ ll /tmp/liuqing.test:
-rw-r–r–. 1 liuqing corun 0 11月 27 20:48 /tmp/liuqing.test

##########################################################################

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/90202

(0)
神策神策
上一篇 2017-12-17 10:18
下一篇 2017-12-17 17:06

相關推薦

  • Java線程

    線程是一個單獨程序流程。多線程是指一個程序可以同時運行多個任務,每個任務由一個單獨的線程來完成。也就是說,多個線程可以同時在一個程序中運行,并且每一個線程完成不同的任務。程序可以通過控制線程來控制程序的運行,例如線程的等待、休眠、喚起線程等。本章將向讀者介紹線程的機制、如何操作和使用線程以及多線程編程。  1. 線程的基本知識   &nb…

    2015-06-08
  • day5作業

    軟硬鏈接區別: 1 硬鏈接會增加連接數,而軟鏈接不會。 2 硬鏈接始終表示的只是一個文件,只是名字不同而已,而軟鏈接本身就是一個獨立的文件,文件內容為指向的文件的路徑。 3 命令格式不同。 硬鏈接: ln filename linkname 軟鏈接: ln -s filename&nbsp…

    系統運維 2016-08-08
  • N26-第二周作業-邢巖(2)

     馬哥門徒-N26-邢巖   我們接著說今天的分享,接著,我們來看看bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容好了。    1.bash的基礎特性之:命令的執行狀態結果      bash通過狀態返回值來輸出此結果:       成功:0 …

    Linux干貨 2017-02-10
  • Shell腳本編程中作業

    一、作業: 1、1、編寫服務腳本/root/bin/testsrv.sh,完成如下要求 (1) 腳本可接受參數:start, stop, restart, status (2) 如果參數非此四者之一,提示使用格式后報錯退出 (3) 如是start:則創建/var/lock/subsys/SCRIPT_NAME, 并顯示“啟動成功” 考慮:如果事先已經啟動過一…

    Linux干貨 2016-08-24
  • centos查看和修改文件權限

      查看權限在終端輸入: ?ls -l?xxx.xxx (xxx.xxx是文件名)那么就會出現相類似的信息,主要都是這些:-rw-r–r–其中: 最前面那個 – 代表的是文件類型中間那三個 rw- 代表的是所有者(user)然后那三個 r– 代表的是組群(group)最后那三個 r– ? …

    2017-11-26
  • 帶你走進PI的世界-Raspbian Pi上實現LAMP

     初識   Raspbian PI                   前段時間,出于興趣,入手一個樹莓派(Raspbian PI…

    Linux干貨 2016-01-05
欧美性久久久久