用戶和組的管理

通過命令、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
下一篇 2017-12-17

相關推薦

  • 馬哥教育網絡班21期-第九周課程練習

    "1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現; #!/bin/bash # declare -i login_user=0 declare -i nologin_user=0 whil…

    Linux干貨 2016-09-15
  • Linux三劍客之sed

    sed:全稱stream EDit 行文本編輯器 作用:是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在模式空間,接著用 sed命令處理緩沖區中的內容,處理完成后,把模式空間的內容輸出到標準輸出。接著處理下一行,這樣不斷重復,直到文件末尾。文件內容并沒有改變,除非你使用重定向存儲輸出。 Sed主要用來自動編輯一個或多個文件,簡化對文件的反復操…

    Linux干貨 2016-08-12
  • 馬哥教育網絡班20期+第5周課程練習

    1、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行; grep "^[[:space:]]\+.*" /boot/grub/grub.conf   2、顯示/etc/rc.d/rc.sysinit文件中以#開頭,后面跟至少一個空白字符,而后又有至少一個非空白字符的行; grep&nb…

    Linux干貨 2016-07-12
  • LVS小記

    19.LVS小記    LVS的類型:        nat:是一種基于IP的DNAT的,通過目標端口與目標地址利用特定的算法選取出響就的主機進行響應,通過RS(Real Server)的地址和端口進行轉發            特點:&n…

    2017-05-15
  • corosync + pacemaker搭建高可用http

    一、實驗圖:    二、實驗環境準備:  1)時間同步(172.16.2.15是時間服務器) [root@web1 ~]# crontab  -e   */5 * * * * /usr/sbin/ntpdate&nbsp…

    Linux干貨 2015-06-30
  • 正則表達式

    正則表達式:             由一類特殊字符及文本字符所編寫的模式,其中有些字符(元字符)不表示字符            字面意義,而表示控制或通配的功能程序支持:  grep,sed,awk,vim,less…

    2017-08-05
欧美性久久久久