linux用戶管理

linux用戶:  

    linux用戶大體分為兩種:一是:管理員用戶;二是普通用戶,普通用戶又可以分為系統用戶和登錄用戶。因為linux是一個多用戶多任務的系統,所以每一個要使用系統資源的用戶,都要向管理員申請一個賬號,使用這個賬號登錄到系統。每個用戶都擁有一個自己的名字和密碼,以登錄到用戶。

每個用戶都有唯一的用戶標識(userid,UID),是以16bits二進制數字來表示0-65535。以CentOS為例管理員用戶的UID是0;普通用戶的UID為1-65535,其中系統用戶的UID在centos6及早些版本為1-499,在CentOS7中為1-999。登錄用戶在CentOS6及早些版本為500-60000,在CentOS7中為1000-60000。


Linux組的類別:

    有些時候一些用戶需要統一管理,于是就可以創建一些用戶組。同理用戶組也分為管理員組和普通用戶組,他們也有他們的組標識(GID),他們的分配方法與UID的完全相同。有時一個用戶需要多重身統工作,所以用戶組又可以分為用戶的主組和附加組。也因為權限的不同可以分為私有組和公共組,顧名思義私有組屬于用戶自己私有,所以私有組與用戶名同名且只有一個用戶,公共組就可以擁有多個成員。


用戶的主要組(主組):

    用戶必須屬于一個且只有一個主組(基本組)

    組名同用戶名,且僅包含一個用戶:私有組

用戶的附加組(輔助組):

    一個用戶可以屬于零個或多個輔助組,可以使用id 或 groups命令來查看用戶所屬的組

如圖所示用戶 test 就有屬于兩個組,主組為root,附加組為nobody。

linux用戶管理1.PNG

用戶和組的配置文件

   當用戶登錄linux系統時,由于linux并不認識賬號名稱,所以它會先去查找一個名為/etc/passwd的文件,通過識別UID進行名稱解析,用戶組名稱也需要解析,但是它是通/etc/group的文件進行名稱解析。用戶的密碼存儲在/etc/shadow文件下,用戶組的密碼存儲在/etc/gshadow下。而為了防止賬戶丟失,密碼都是通過加密保存的,加密算法通常有以下三類:對稱加密,非對稱加密和單項加密

 

Linux用戶和組的主要配置文件:

  • /etc/passwd:用戶及其屬性信息(名稱、UID、主組ID等)

  • /etc/group:組及其屬性信息

  • /etc/shadow:用戶密碼及其相關屬性(只有管理員用戶可以查看)

  • /etc/gshadow:組密碼及其相關屬性(只有管理員用戶可以查看)

可以用man來查看一下文件的具體信息,使用whatis命令可以看到,所需要了解的為man手冊的第五章。

linux用戶管理2.png

man 5 passwd,可以看到這個文件中主要有這七個部分:

linux用戶管理3.png

下面我們來具體的了解一下這四個配置文件:

1、passwd 文件格式

  1. login name:登錄用名(wang)

  2. passwd:密碼(x)

  3. UID:用戶身份編號(1000)

  4. GID:登錄默認所在組編號(1000)

  5. GECOS:用戶全名或注釋

  6. home directory:用戶主目錄(/home/wang)

  7. shell:用戶默認使用shell (/bin/bash)

通過查看/etc/passwd這個文件可以查看用戶信息,也可以使用getent命令來實現

linux用戶管理4.png

   在文件中第二列密碼項是以“X”顯示,這是出于安全考慮,由于普通用戶也可以查看passwd文件,所以直接顯示密碼很不安全,所以這文件已密碼項用“X”取代,而真正的密碼存放著/etc/shadow文件中。 當然,我們也可以讓它顯示密碼,而帶來的結果就是/etc/shadow文件消失。

可以使用命令:pwunconv : passwd unconvert

使passwd文件中的密碼不轉換成x,而且shadow文件會消失

恢復命令 : pwconv

linux用戶管理5.png

linux用戶管理6.png

2、shadow文件格式

  1. 登錄用名

  2. 用戶密碼:一般用sha512加密

  3. 從1970年1月1日起到密碼最近一次被更改的時間

  1. 密碼再過幾天可以被變更(0表示隨時可被變更)  minimum password age

    #口令最短使用時間

  1. 密碼再過幾天必須被變更(99999表示永不過期)maximum password age

    #口令最長使用時間,若時間小于最短使用時間,則表示禁止用戶修改口令

  1. 密碼過期前幾天系統提醒用戶(默認為一周) password warning period

  1. 密碼過期幾天后帳號會被鎖定 password warning period

  1. 從1970年1月1日算起,多少天后帳號失效。account expiration date

密碼時間表,如圖所示:

linux用戶管理7.png

命令:chage -d0 USERNAME,,使用戶的最近一次被更改時間為0,迫使用戶下次登錄必須改口令

passwd -e USERNAME :迫使用戶下次登錄必須改口令

linux用戶管理8.png

查看用戶的密碼信息可以直接查看shadow文件也可以使用getent命令

linux用戶管理9.png

管理員可以使用命令鎖定用戶:usermod -L USERNAME

linux用戶管理10.png

可以看到用戶的密碼前多了一個!,這就代表著禁止登陸。


解鎖用戶usermod -U  USERNAME,

    解鎖用戶,將用戶/etc/shadow 密碼欄的! 拿掉

linux用戶管理11.png

注意:centos早期版本可以連續執行兩次,使用戶空密碼,但在centos6,7中禁止連續執行解除用戶密碼。

   可以看到用戶的第二列密碼項,是通過加密計算過的,加密算法通常有以下三類:對稱加密,非對稱加密和單項加密。


密碼加密

加密機制:

加密:明文–> 密文

解密:密文–> 明文

單向加密:哈希算法,原文不同,密文必不同

相同算法定長輸出,獲得密文不可逆推出原始數據

雪崩效應:初始條件的微小改變,引起結果的巨大改變

  • md5: message digest, 128bits

  • sha1: secure hash algorithm, 160bits

  • sha224: 224bits

  • sha256: 256bits

  • sha384: 384bits

  • sha512: 512bits

更改加密算法authconfig–passalgo=sha256 –update

(修改用戶以后新增或更改密碼的加密算法)

linux用戶管理12.png

 出于安全考慮密碼不僅經過了加密算法加密,而且還在其中加入了salt,這樣即使兩個用戶的密碼一樣,通過加入salt的加密,顯示也不會一樣。


我們平時使用密碼時,也需要一些密碼的安全策略,盡量使用復雜的密碼!

密碼的復雜性策略

  • 使用數字、大寫字母、小寫字母及特殊字符中至少3種

  • 足夠長

  • 使用隨機密碼

  • 定期更換;不要使用最近曾經使用過的密碼



3、group文件格式

  • 群組名稱:就是群組名稱

  • 群組密碼:通常不需要設定,密碼是被記錄在/etc/gshadow

  • GID:就是群組的ID

  • 以當前組為附加組的用戶列表(分隔符為逗號)

命令:groups,id 查看用戶的組

linux用戶管理13.png

更改用戶組成員關系后,必須從新登陸才能識別

從組中刪除用戶:groupmems  -d  USERNAME -g GROUP

4、gshdow文件格式

  • 群組名稱:就是群組名稱

  • 群組密碼:

  • 組管理員列表:組管理員的列表,更改組密碼和成員

  • 以當前組為附加組的用戶列表:(分隔符為逗號)

 用戶有密碼,用戶組也有密碼,但是用戶組的密碼和用戶的密碼用途有所不同。如若新用戶知道某個用戶組的密碼,那么用戶完全可以自己通過組密碼臨時加入用戶組,執行一些權限。(較為危險?。?/p>

命令:newgrp :臨時切換主組(臨時生效)

linux用戶管理14.png

用戶若知道組口令,則可以主動加入群組

  用戶和組的配置文件,已經大致的說了一下。我們可以通過修改配置文件來實現某些目的,然而有時直接修改配置文件,往往會有一些失誤的操作。所以,直接通過文本編輯器修改配置文件較為危險。那么我們可以通過一些命令來達到修改文件的目的。


文件操作命令

  • vipw和vigr

  • pwck和grpck

vipw = vi /etc/passwd  (可以檢查格式是否正確,較安全)

vigr = vi  /etc/group

pwck   passwd chcek (檢查passwd)

grpck   group check   ( 檢查group)



用戶和組管理命令

 用戶管理命令

    useradd

    usermod

    userdel

 組帳號維護命令

    groupadd

    groupmod

    groupdel

用戶管理命令:

 用戶創建:useradd

 語法:  useradd[options] LOGIN

選項:

  • -u UID: [UID_MIN, UID_MAX]定義在/etc/login.defs

  • -o 配合-u 選項,不檢查UID的唯一性

  • -g GID:指明用戶所屬基本組,可為組名,也可以GID

  • -c "COMMENT":用戶的注釋信息

  • -d HOME_DIR:以指定的路徑(不存在)為家目錄

  • -s SHELL: 指明用戶的默認shell程序

可用列表在/etc/shells文件中

  • -G GROUP1[,GROUP2,…]:為用戶指明附加組,組必須事先存在

  • -N 不創建私用組做主組,使用users組做主組

  • -r: 創建系統用戶CentOS 6: ID<500,CentOS 7: ID<1000

一條命令命令就可以創建用戶,而且文件的配置文件齊全,這是因為有默認值的存在,

默認值設定:/etc/default/useradd文件中

linux用戶管理15.png

顯示默認設置:

  • useradd-D

linux用戶管理16.png

更改默認設置:

  • useradd–D -s SHELL

linux用戶管理17.png

新建用戶的相關文件和命令

  • /etc/default/useradd   : 默認值的設定

  • /etc/skel/*    :  用戶家目錄創建時拷貝的模板

  • /etc/login.defs :  定義新建用戶的一些信息

命令:newusers

  • newusers passwd格式文件   :   批量創建用戶

1、創建一個文件,格式為/etc/passwd文件的格式

2、newusers FILENAME

  • chpasswd 批量修改用戶口令

1、創建一個文件,格式為      username:passwd

2、cat FILENAME | chpasswd

例:

1、創建用戶gentoo,附加組為bin和root,默認shell為/bin/csh,注釋信息為"Gentoo Distribution"

[root@localhost ~]# useradd -G bin,root -s /bin/csh -c "Gentoo Distribution" gentoo

linux用戶管理18.png

2、創建testuser uid 1234,主組:bin,輔助組:root,ftp,shell:/bin/csh home:/testdir/testuser

[root@localhost ~]# useradd -u 1234 -g bin -G root,ftp -s /bin/csh -d /testdir/testuser testuser

linux用戶管理19.png

[root@localhost testuser]# echo "centos" | passwd –stdin testuser

[root@localhost testuser]# cp -r /etc/skel/.[^.]* /testdir/testuser/

linux用戶管理20.png

用戶屬性修改: usermod

語法:usermod[OPTION] login

選項:

  • -u UID: 新UID

  • -g GID: 新基本組

  • -G GROUP1[,GROUP2,…[,GROUPN]]]:新附加組,原來的附加組將會被覆蓋;若保留原有,則要同時使用-a選項,表示append;

  • -s SHELL:新的默認SHELL;

  • -c 'COMMENT':新的注釋信息;

  • -d HOME: 新家目錄不會自動創建,原家目錄中的文件不會同時移動至新的家目錄;若要創建新家目錄并移動原家數據,同時使用-m選項

  • -l login_name: 新的名字;

  • -L: lock指定用戶,在/etc/shadow 密碼欄的增加!

  • -U: unlock指定用戶,將/etc/shadow 密碼欄的! 拿掉

  • -e YYYY-MM-DD: 指明用戶賬號過期日期;

  • -f INACTIVE: 設定非活動期限;

例:

3、修改testuser uid:4321,主組:root,輔助組:nobody, loginname :test,home:/home/test 家數據遷移

[root@localhost ~]# usermod -u 4321 -g root -G nobody -l test -d /home/test  -m  testuser

linux用戶管理21.png

刪除用戶:userdel

語法:userdel[OPTION]… login

選項-r: 刪除用戶家目錄;

linux用戶管理22.png

可以看到用戶及用用戶之前的家目錄被刪除。

  在平時的學習中,經常需要切換用戶來實現一些操作,如果退出再登陸用戶,有些麻煩。我們可以使用su命令,來切換用戶執行命令。

su命令:切換用戶或以其他用戶身份執行命令

語法:su [options…] [-] [user [args…]]

選項:   -l –login

    su-l UserName 相當于 su – UserName

linux用戶管理23.png

切換用戶的方式:

su UserName:非登錄式切換,即不會讀取目標用戶的配置文件,不改變當前工作目錄

24.pnglinux用戶管理

su – UserName:登錄式切換,會讀取目標用戶的配置文件,切換至家目錄,完全切換

25.pnglinux用戶管理

root su至其他用戶無須密碼;非root用戶切換時需要密碼

26.pnglinux用戶管理

有時切換用戶只是為了執行一條命令,那么這樣來回的切換也略顯得有些麻煩,那么我們可以使用su命令的其他選項。

換個身份執行命令:

    su [-] UserName -c 'COMMAND'

linux用戶管理27.png

執行完命令后 可以發現還是當前用戶

linux用戶管理1470224858458605.png

  前面我們也提到了保存密碼的文件,/etc/passwd和/etc/shadow文件,每次修改命令我們完全沒有必要去修改文件那么麻煩,下面我們就來說一下專門用來更改用戶密碼的命令–passwd

設置密碼 passwd

語法:passwd[OPTIONS] UserName: 修改指定用戶的密碼,僅root用戶權限

    passwd: 修改自己的密碼;

常用選項:

  • -l:鎖定指定用戶

  • -u:解鎖指定用戶

  • -e:強制用戶下次登錄修改密碼

  • -n mindays: 指定最短使用期限

  • -x maxdays:最大使用期限

  • -w warndays:提前多少天開始警告

  • -iinactivedays:非活動期限;

  • –stdin:從標準輸入接收用戶密碼;

  • echo "PASSWORD" | passwd–stdinUSERNAME

前面也提到了 passwd -e USERNAME命令,強制是用戶更改密碼,還有一種實現的方法也有提到,就是

chage -d0 USERNAME命令,而chage命令就是用來修改用戶的密碼策略的命令。

修改用戶密碼策略 chage

語法:chage[OPTION]… LOGIN

選項:

  • -d LAST_DAY

  • -E, –expiredateEXPIRE_DATE

  • -I, –inactive INACTIVE

  • -m, –mindaysMIN_DAYS

  • -M, –maxdaysMAX_DAYS

  • -W, –warndaysWARN_DAYS

  • –l,顯示密碼策略

下一次登錄強制重設密碼

chage -d0 USERNAME    #強制使用戶下次登陸修改密碼

chage -m 0 –M 42 –W 14 –I 7 USERNAME    #設置用戶的最小使用天數為0,最大使用天數為42天,提前14                              天提醒密碼即將到期,密碼過期后7天內可以修改,超過7天沒有                              修改密碼則鎖定賬號。

    

chage -E 2016-09-10 USERNAME  #用戶到指定日期鎖定。

 上文我們提到/etc/shadow文件的格式,(不記得的話向上翻頁查看),而chage命令就可以更改用戶密碼的使用策略。

創建組:groupadd

語法:groupadd[OPTION]… group_name

選項:

  -g GID: 指明GID號;[GID_MIN, GID_MAX]

  -r: 創建系統組;

    CentOS 6: ID<500

    CentOS 7: ID<1000

組屬性修改:groupmod

語法:groupmod [OPTION]… group

選項:

    -n group_name: 新名字

    -g GID: 新的GID;

組刪除:groupdel

語法:groupdel GROUP

   

    groupadd,groumod,groupdel的使用方法和useradd,usermod,userdel的使用方法非常相似,只是一個是針對于組一個是針對于用戶而已。我們學會了如何使用useradd命令,自己就會了groupadd命令。

組密碼:gpasswd

語法:gpasswd [OPTION] GROUP

選項:

    -a user: 將user添加至指定組中;

    -d user: 從指定組中移除用戶user

    -A user1,user2,…: 設置有管理權限的用戶列表

newgrp命令:臨時切換基本組;

如果用戶本不屬于此組,則需要組密碼

groups [OPTION].[USERNAME]… 查看用戶所屬組列表    

   gpasswd命令的使用方法和passwd的使用方法略有不同,gpasswd不僅可以更改組密碼,還可以增刪組成員。

29.PNG

而newgrp命令可以讓用戶暫時的加入某個組,并使這個組為主組,以方便一些操作。

30.PNG

知道了gpasswd命令可以增刪命令,還有一個命令比gpasswd的功能還要強大,它可以更改查看組的成員

更改和查看組成員:groupmems

語法:groupmems[options] [action]

options:

  • -g, –group groupname更改為指定組(只有root)

Actions:

  • -a, –add username 指定用戶加入組

  • -d, –delete username 從組中刪除用戶

  • -p, –purge 從組中清除所有成員

  • -l, –list 顯示組成員列表

31.PNG

原創文章,作者:Groot,如若轉載,請注明出處:http://www.www58058.com/28202

(0)
GrootGroot
上一篇 2016-08-04
下一篇 2016-08-04

相關推薦

  • 0804練習與作業

    0804練習與作業 練習  1 、找出ifconfig 命令結果中本機的所有IPv4 地址 答: 使用cut將電腦的IP地址提取出來。   經過觀察,這些信息極為不規則,沒有明顯的分隔符。這時們需要首先提取出IP地址所在的行,然后去定義一個合適的分隔符,再利用cut進行提取即可。(思路:化繁為簡,化不規則為規則,這樣才能更好的套用我們的命…

    Linux干貨 2016-08-08
  • rpm詳解

    rpm詳解 rpm詳解 rpm使用方法 rpm起源 rpm是什么 rpm命名格式 rpm優缺點 rpm獲取注意 rpm命令使用 rpm起源  由于在linux中安裝應用程序需要源碼包編譯安裝,對于非專業人員而言難度太大,因而出現一種將源碼編譯好的二進制程序,庫文件,配置文件,幫助文件等打包成一個或多個特定格式的程序包,而管理這類包的工具之一,則稱為…

    Linux干貨 2016-12-23
  • 周期性計劃任務crond講解

    crond是Linux或者unix系統的作業調度程序。運用它,在設定的時間段周期性執行某個命令或腳本。下文的例子均在centos 7.3上測試。一、crond組件 如果centos7.3最小化安裝,不一定存在crond服務,需要手動安裝,安裝之后手動啟動并設置以后自行開機啟動。 主要有cronie、cronie-anacron、crontabs三個程序包。 …

    Linux干貨 2017-03-27
  • shell腳本編程3

    補充,shift使用方法 root@localhost wang]# cat jiaoben1.sh  #!/bin/bash echo "$1" echo "$*" shift echo "$1" echo &quot…

    Linux干貨 2016-08-24
  • MySQL高可用架構之MHA

    MySQL高可用架構之MHA 1、關于MHA MHA(Master HA)是一款開源的MySQL的高可用程序,它為MySQL主從復制架構提供了automating master failover功能。MHA在監控到master節點故障時,會提升其中擁有的最新數據的slave節點成為新的master節點,在此期間,MHA會通過其它從節點獲取額外信息來避免一致性…

    Linux干貨 2017-03-30
  • 馬哥教育網絡班21期+第6周課程練習

    VIM基礎知識 常用模式: 編輯模式–>命令模式 輸入模式 末行模式:內置的命令行接口 模式轉換: 編輯模式–>輸入模式 i:在光標所在處前轉換為輸入模式; a:在光標所在后面轉入輸入模式; o:在當前光標所在行的下方打開一個新行,并轉為輸入模式; I:在當前光標所在行的行首輸入; A:在當前光標所在行的行尾輸入; O:在當前光標所在行的上方…

    Linux干貨 2016-08-15
欧美性久久久久