Linux 用戶和組管理

介紹3A安全機制:

    Authentication:認證
linux

    Authorization:受權
算法

    Accouting|Audition :審計
shell

linux 運行的程序是以進程發起者的身份運行的,進程所能訪問資源的權限取決於進程的運行者的身份centos


用戶 user:安全

令牌 token,identitybash

Linux用戶:username/UIDapp

管理員:root,0ide

普通用戶:1-65535    ui

    系統用戶:centos6是1-499,centos7是1-999,對守護進程獲取資源進行權限分配 加密

    登陸用戶:centos6是500+,centos7是1000+,交互式登陸



組 group:

Linux組:groupname/GID

管理員:root,0

普通組:1-65535

    系統組:centos6是1-499,centos7是1-999

    普通組:centos6是500+,centos7是1000+


Linux的組分兩類

  一個是用戶的主要組(主組):

    用戶必須屬於一個且只有一個主組

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

  一個是用戶的附加組(輔助組):

    一個用戶能夠屬於零個或多個輔助組



用戶和組的配置文件:


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

/etc/group : 組及其屬性信息 group_name:password:GID:user_list

/etc/shadow : 用戶密碼及其相關屬性

/etc/gshadow : 組密碼及其相關屬性


/etc/passwd文件格式:

  • name:登陸用戶名

  • password:密碼用X顯示

  • UID:用戶的身份編號

  • GID:登陸默認所在組的編號

  • GECOS:用戶全名或註釋

  • directory:用戶主目錄

  • shell:用戶默認使用的shell


/etc/group文件格式

  • group_name:羣組名稱

  • password:羣組密碼,一般不須要設定

  • GID:羣組的ID

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


/etc/shadow文件格式:

信息是以 : 爲分隔符,包含如下信息:

  •  login name :登陸用戶名

  •  encrypted password :  加密密碼,通常使用sha512加密

  •  date of last password change :最近一次密碼更改日期

  •  minimum password age:密碼再過幾天能夠被變動(0表示隨時能夠變動)

  •  maximum password age: 密碼再過幾天必須變動(99999表示永不過時)

  •  password warning period:密碼警告期,默認爲一週

  •  password inactivity period:密碼不活躍期(密碼過時後幾天後帳號被鎖到)

  •  account expiration date:帳戶有效期

  •  reserved field:保留字段

blob.png

/etc/gshadow文件格式:

  •   group name:組名字

  •   encrypted password:加密的密碼

  •   administrators:組管理員

  •   members:組用戶成員



密碼加密:


加密機制:

 加密:明文-->密文

 解密:密文-->明文

單項加密:哈希算法,原文不一樣,密文也必不相同

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

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

足夠長,使用隨機密碼 ,按期更換,不要使用最近曾經使用過的密碼 





好比把用戶 cent 的密碼改成123 能夠執行此命令

echo 123 | passwd --stdin cent > /dev/null

echo #? 查看是否執行成功

此命令有兩個做用,第一就是改密碼,而後改密碼後不會在屏幕上顯示,由於將屏幕輸出重定向到/dev/null


/dev/null  該設備是一個相似黑洞的設備,全部文件重定向此設備都不會泛起一絲漣漪,是一個超級垃圾箱

chfn 該命令能夠更改用戶信息

finger cent 命令查看cent用戶信息

chsh -s /bin/bash cent 把cent用戶的shell改成bash

特殊的shell /sbin/nologin 沒法登錄

/etc/skel:用戶家目錄的模板

/etc/default/useradd:建立用戶的配置文件




例如:

1,建立用戶gentoo,附加組爲bin和root,默認shell爲/bin/csh,註釋信息爲"Gentoo Distribution"

    seradd -G bin,root -s /bin/csh -c "Gentoo Distribution" gentoo

blob.png

blob.png


2,建立下面的用戶、組和組成員關係

名字爲admins 的組

用戶natasha,使用admins 做爲附屬組

用戶harry,也使用admins 做爲附屬組

用戶sarah,不可交互登陸系統,且不是admins 的成員,natasha,harry,sarah密碼都是centos


groupadd admins
useradd  -G admins  natasha
useradd  -G admins  harry
echo centos | passwd --stdin harry
echo centos | passwd --stdin natasha
useradd -s /sbin/nologin sarah
echo centos | passwd --stdin sarah



useradd:用戶的建立


 useradd [options] LOGIN


options:

  •    -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 不建立私用組做主組,使用usrs組爲主組

  •   -r 建立系統用戶 centos 6 :ID<5000 centos 7 :ID <100



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

顯示或更改默認設置:

    useradd -D

    useradd -D -s SHELL //修改默認shell




groupadd命令: 添加組

groupadd [選項] group_name 

  -g GID:指定GID:默認是上一個組的GID+1 

  -r 建立系統組 

groupmod:修改組屬性 

groupmod [選項] GROUP 

  -g GID: 修改GID 

  -n new_name:修改組名 

groupdel:刪除組 groupdel [選項] GROUP



useradd 命令:建立用戶

 useradd [選項] 登陸名
 -u , --uid UID :指定UID
 -g , --gid GROUP :指定基本組ID,此組需事先存在
 -G , --groups GROUP1[,GROUP2,..[,GROUPN]] :指明用戶所屬的附加組,多個組織間用逗號分隔
 -c , --comment COMMENT:指明註釋信息
 -d ,--home HOME_DIR:以指定的路徑爲用戶的家目錄,經過複製 /etc/skel此目錄並重命名實現,指定的家目錄路徑存在,則不會爲用戶複製環境配置文件
 -s , --shell SHELL:指定用戶的默認shell,可用的全部shell列表存儲在/etc/shells文件中
 -r ,--system :建立系統用戶

useradd -D:用來建立用戶默認配置 

useradd -D [options] 修改默認選項的值 /etc/login.defs   

自定義配置(建立用戶時諸多默認配置),修改的結果保存在/etc/default/useradd文件中  


usermod命令:修改用戶屬性

usermod  [選項] 登陸 

-u , --uid UID: 修改用戶的ID爲指定的心UID 

-g, --gid GROUP  修改用戶所屬的基本組 

-G,--groups GROUP1[,GROUP2,...[,GROUP]]]: 修改用戶所屬的附加組,原來的附加組會被覆蓋 

-a ,--append: 與 -G 一同使用,用於爲用戶追加新的附加組 

-c,--comment COMMENT:修改註釋信息 

-d, --home HOME_DIR 修改用戶的家目錄,用戶原有的文件不會轉移到新位置 

-m, --move-home:只能和-d一塊兒使用,用於將原來的家目錄移動到新的目錄 

-l --login NEW_NAME  修改用戶名 

-s ,--shell SHELL:  修改用戶默認的shell 

-L, --lock  鎖定用戶密碼:既在用戶原來密碼字符串以前添加一個 "!" 

-U,--unlock  解鎖密碼 


userdel命令:刪除用戶 userdel [選項] 登陸 

-r:刪除用戶時一併把用戶的家目錄刪除  


passwd 命令:

passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactive‐days] [-S] [--stdin] [username] 

1· passwd:修改用戶本身的密碼 

2·passwd username :直接修改username用戶的密碼   

 -l,-u  加鎖,解鎖用戶 

 -d 清除用戶密碼串 

 -e DAYS: 過時期限,日期 

 -i DAYS: 非活動期限 

 -n DAYS:密碼的最短使用期限 

 -x DAYS:密碼的最長使用期限 

 -w DAYS:警告期限 


 --stdin:  echo "password" | passwd --stdin username


echo "nineven" | passwd  --stdin test   &> /dev/null

echo $?

0

//經過管道的方式一次性更改test用戶密碼爲 nineven

 


gpasswd命令

gpasswd [選項] group 

 組密碼文件:/etc/gshadow 

 -a username :向組中添加用戶 

 -d username :  向組中刪除用戶  


newgrp命令:臨時切換指定的組爲基本組

newgrp [-] [group]  

  - :會模擬用戶從新登陸以實現從新初始化其工做環境  

 

chage 命令:更改密碼的過時信息 

id命令:顯示用戶的真實和有效的ID 

su命令:切換用戶   

    1.登陸式切換: 會從新讀取用戶的配置文件來從新初始化 

     su - USERNAME su -l USERNAME   

    2.非登陸式切換:不會從新讀取用戶的配置文件來從新初始化 

     su USERNAME 注意:管理員無需密碼可切換到其餘用戶   

   -c 'COMMAND' :僅以指定用戶身份運行此處指定的命令   

相關文章
相關標籤/搜索