用戶及組詳解
概論:
現今,大多數操作系統都是多用戶(Multi-tasks)多任務(Mulit-Users)的系統.在多年前,計算機資源遠沒有現在這么豐富,都是多人使用同一臺計算機,為了保障使用計算機的用戶權益不受到損害,完成資源使用隔離,人們采取了用戶機制標識使用者的方法.
每個使用者都是用戶,用戶是由UID進行標識,通過密碼進行身份驗證機制.而為了方便管理用戶,人們又發明了組,組是用戶的集合,由GID進行標識.在用戶創建時,系統要求用戶必須指定一個主組,且主組是唯一的,也可以不加或添加多個附加組.
在對用戶和組的管理上,為了安全性,有3A機制進行保護用戶和組.3A分別為:
認證機制:Authentication 登錄 (用戶名+密碼)
授權機制:Authorization 設置權限
審計機制:Audition 使用過程記錄日志
安全上下文(senurity context):
進程以其發起者的身份運行,擁有發起者的權限
進程對文件(系統資源)的訪問權限,取決于發起此進程的用戶及用戶所屬組的權限 而不是進程本身的權限 最好是所需要擁有的最小權限,不能擁有管理員權限
為了能夠讓那些后臺進程或服務進程以非管理員的身份運行,通常需要為此創建多個普通用戶,這類用戶從來不用登錄系統 成為系統用戶。
用戶及組的介紹:
用戶及組的類別:
用戶分類:
管理:
普通:
系統用戶
登錄用戶
用戶標識:UserID,UID (16bits 二進制數字:1-65535)
管理員:0
普通用戶:1-65535
系統用戶:1-499(centos6),1-999(centos7)
登錄用戶:500-60000(centos6),1000-60000(centos7)
名稱解析:名稱轉換
Username <–> UID
根據名稱解析庫進行:根據用戶輸入的名稱與庫(/etc/passwd)的數據做對比,轉化名稱,判斷用戶名是否存在,存在進入下一步登錄,不存在則報錯.
組分類:
組類別1:
管理員組:
普通用戶組:
系統組:
登錄組:
組標識:GroupID,GID
管理員組:0
普通用戶組:1-65535
系統用戶組:1-499(centos6),1-999(centos7)
登錄用戶組:500-60000(centos6),1000-60000(centos7)
名稱解析:groupname <—->gid解析 庫文件:/etc/group
組類別2
用戶的基本組: 用戶的主組,每個用戶只有一個
用戶的附加組:用戶的附加組,可以沒有且有多個
組類別3:
私有組:組名同用戶名,且只包含一個用戶
公共組:組內包含了很多個用戶
用戶及組的認證信息:
通過比對事先存儲的密碼信息,判斷與登錄時提供的信息是否一致
password:
/etc/shadow 用戶密碼庫文件
/etc/gshadow 組密碼庫文件
密碼的使用策略:
1.使用隨機密碼
2.最短長度不低于8位
3.大小字母,數字,標點符號組合使用
4.定期更換 (隨機生成字符串命令: openssl rand -base64 10(20))
密碼加密算法:
對稱加密 :加密和解密使用同一個密碼
加密機:輸入明文,輸出密文 解密機:輸入密文,輸出明文
非對稱加密:加密和解密使用的一對密鑰。 使用公鑰加密的,使用同對的密鑰解密
公鑰:public key
私鑰:private key
單向加密;只能加密,不能解密。提取數據特征碼,例如:指紋,瞳 借助salt完成
特征:
定長輸出, 2的512次方
[root@wen-7 shell]# echo “wen1”|sha512sum f7a02b034fffa7ee6faecdfd9114cee0a79467f76a379e7a4e7141c0fe9ed506df54c5c13ebbb3f85bed174f691670f761135720252674c673c2a3ab1388a864 - [root@wen-7 shell]# echo “wen1rsdasdsadsa”|sha512sum 18c75133db89c3f4054c4933db1041a8ab962f9d6b5bef4130a873f9bbfd37d6bf5e19c9fb13b0ff98f4e7aa618d891eadfb3497d85d10a0a61098096fb2259c -
雪崩效應,初始條件的微小改變,引起整體巨大變化,一個字符的變化,結果完全不同
[root@wen-7 shell]# echo “wen”| md5sum 28dea8a57263903409d64b9e9731b5c0 - [root@wen-7 shell]# echo “wen1”| md5sum 1d1f3e6cdcbb3b13b5b13d7a56119cbd -
算法的種類:
MD5 128bit (centos5系以下默認使用)
sha1 160bit
sha224 224bit
sha256 256bit
sha385 385bit
sha512 512bit (centos6系以上默認使用
密碼創建時,用戶輸入的密碼加隨機數(salt),生成密文,保存在庫文件中。用戶再次登錄時,輸入密碼,系統會自動把在密碼庫保存的上次使用的隨機數補在用戶輸入字符串中,生成密文,與庫文件中的實現存放的密文比較,如果密文一樣,則表示密碼正確,允許用戶登錄,不一樣則報密碼錯誤.
在計算之時加salt,添加的隨機數,相同的密碼明文,密文不同
root@w6 home]# echo "centos" | passwd --stdin gentoo [root@w6 home]# getent shadow gentoo gentoo:$6$j9cSCq/L$7EwxsVScKKD176GnRiEzDAIBB2ewADEDSFcyBN12mza1JRhoMzvwueA1Tt1A1C4c4Q3.qHLyZMMv3KdCiXfEB/:17012:0:99999:7::: [root@w6 home]# echo "centos" | passwd --stdin gentoo [root@w6 home]# getent shadow gentoo gentoo:$6$JH5FOiaJ$3d0jDjigI5J7ZQoetn0J.lVdE9SjUAiIFOv08YEOlJ.COe8eR.0/YPZBNHlRHHzSuG74pyDoHl41/yd.NwuQU0:17012:0:99999:7:::
可以更改系統默認密碼算法,
authconfig --passalgo=sha512 --update
命令如下:
[root@w6 home]# authconfig --passalgo=sha512 --update [root@w6 home]# tail -5 /etc/login.defs #此目錄記載著創建用戶的默認配置 # Use SHA512 to encrypt password. ENCRYPT_METHOD SHA512 MD5_CRYPT_ENAB no [root@w6 home]# authconfig --passalgo=sha256 --update [root@w6 home]# tail -5 /etc/login.defs # Use SHA512 to encrypt password. ENCRYPT_METHOD SHA256 MD5_CRYPT_ENAB no
用戶及組的密碼庫格式:
1./etc/passwd/格式:
account:password:UID:GID:GECOS:directory:shell
(帳號:密碼:用戶ID:組ID:一般的信息:目錄:shell)
name;用戶名
password:可以是加密的密碼,也可以是占位符X /etc/shadow保存加密密碼(man pwconv :影子密碼)
UID:用戶ID
GID:用戶所屬的主組的ID號
GECOS:可選的 提供用戶的注釋信息
directory:用戶的家目錄
shell:用戶的默認shell類型,登錄時默認shell程序
2./etc/shadow
wen:$6$FGHaaLgp2OWH/K03sMzZDNmN.0AD0:17001:0:99999:7:::
登錄名:
加密的字碼串: 不設密碼的用戶,此位默認為!!;
最后一次更改密碼的日期(從1970年1月1開始計算的天數):
密碼最短使用期限:這些天之后,用戶必須更改密碼。
密碼最長使用期限:這些天之后,用戶必須更改密碼。
密碼警告時間段:密碼過期之前,提前警告用戶的的天數
密碼禁用期:密碼過期后,仍然接受此密碼的天數,在此期間,用戶應該在下次登錄時修改碼)。
密碼到期并且過了這個寬限期之后,使用用戶的當前的密碼將會不能登錄。用戶需要聯系統管理員
賬戶過期日期:賬戶過期不同于密碼過期。賬戶過期時,用戶將不被允許登錄;密碼過期時,用戶將不被允許使用其密碼登錄。
保留字段
pwunconv pwnconv 開啟|關閉密碼轉化命令,實現密碼加密分位存放 關閉后,/etc/shadow文件會消失
[root@w6 home]# pwunconv #關閉密碼轉換 [root@w6 home]# ll /etc/shadow #保存密文密碼文件 不存在 ls: cannot access /etc/shadow: No such file or directory [root@w6 home]# useradd yum1 ;echo "yum123"|passwd --stdin yum1 Changing password for user yum1. passwd: Authentication token manipulation error [root@w6 home]# getent passwd yum1 yum1:!!:506:507::/home/yum1:/bin/bash #新創建用戶 密碼格式異常 [root@w6 ~]# pwconv #開啟密碼轉換 [root@w6 ~]# exit #命令生效,需重新登錄用戶 [root@w6 ~]# ll /etc/shadow #保存密文密碼文件恢復 -r--------. 1 root root 1946 Jul 30 15:27 /etc/shadow [root@w6 ~]# useradd yum3 ;echo "yum123"|passwd --stdin yum3 Changing password for user yum3. passwd: all authentication tokens updated successfully. [root@w6 ~]# getent shadow yum3 #用戶密碼繼續用密文存儲 yum3:$6$oW7NIo9Z$b53zN7S.m/nt/WDgUl5wMun9YA1jVkjieNQeEYPUJNcIU9iRteR1FhruUeGz66aGF6569eHDQYaQK9SHHStOb.:17012:0:99999:7:::
3./etc/group 組的信息庫
admins:x:502:natasha,harry
group_name:passwd:GID:user_list
group_name:組名
password:(加密的)組密碼.如果該字段為空,則不需要密碼.
GID : 組的數字標識.
user_list:組內所有成員的用戶名,以逗號分隔.
4./etc/gshadow
admins:!::natasha,harry
組名:
組密碼:
組管理員用戶:
組成員列表:
用戶及組的管理使用:
用戶及組的查看命令:
(1)groups Username: 查看用戶所在的組
[root@w6 ~]# groups wen wen : wen [root@w6 ~]# groups gentoo gentoo : gentoo root bin
(2)getent:
getent shadow username= cat /etc/shadow | grep "wen" 查看密碼存放文件
默認使用,顯示文件全部內容.后接用戶名,只顯示指定用戶名的所在行
[root@w6 ~]# getent shadow yum3 yum3:$6$oW7NIo9Z$b53zN7S.m/nt/WDgUl5wMun9YA1jVkjieNQeEYPUJNcIU9iRteR1FhruUeGz66aGF6569eHDQYaQK9SHHStOb.:17012:0:99999:7:::
getent passwd= cat /etc/passwd 查看用戶密碼文件
默認使用,顯示文件全部內容.后接用戶名,只顯示指定用戶名的所在行
[root@w6 ~]# getent passwd yum1 yum1:x:506:507::/home/yum1:/bin/bash
(3)vipw= vim /etc/passwd 比用文本編輯器 打開密文文件更安全,默認進入編輯界面 檢查文件格式
[root@wen-7 ~]# vipwroot:x:0:0:root,123,123,12345:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/syncshutdown:x:6:0:shutdown:/sbin:/sbin/shutdownhalt:x:7:0:halt:/sbin:/sbin/haltmail:x:8:12:mail:/var/spool/mail:/sbin/nologin
(4) vigr =vim /etc/group 比用文本編輯器 打開密文文件更安全,默認進入編輯界面
[root@wen-7 ~]# vigrroot:x:0:bin:x:1:daemon:x:2:sys:x:3:adm:x:4:tty:x:5:disk:x:6:
groupmems -1 -g groupname:查看組內其他成員 修改配置文件,永久生效
[root@wen-7 ~]# groupmems -l -g gentoowen zhifei [root@wen-7 ~]# groupmems -l -g wenzhifei
strace useradd usesrname:查看創建用戶時,系統底層修改過程,調用過程
[root@wen-7 ~]# strace useradd zhifieexecve("/usr/sbin/useradd", ["useradd", "zhifie"], [/* 27 vars */]) = 0brk(0) = 0x7f09e982a000mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f09e8692000access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3fstat(3, {st_mode=S_IFREG|0644, st_size=104555, ...}) = 0mmap(NULL, 104555, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f09e8678000close(3) = 0
chfn Username:添加用戶注釋信息
[root@wen-7 ~]# chfn wenChanging finger information for wen.名稱 [wen]: wen辦公 []: 12456辦公電話 []: 5453214住宅電話 []: 133433123435 Finger information changed.[root@wen-7 ~]# getent passwd wen wen:x:1000:1000:wen,12456,5453214,133433123435:/home/wen:/bin/bash
finger:顯示用戶的備注信息
[root@wen-7 ~]# finger wenLogin: wen Name: wenDirectory: /home/wen Shell: /bin/bashLast login 二 8月 2 08:32 (CST) on pts/0Mail last read 四 7月 28 21:39 2016 (CST)No Plan.
chsh :
-s /bin/ch 修改當前系統shell類型
-l 顯示shell類型列表
[root@wen-7 ~]# chsh -l/bin/sh/bin/bash/sbin/nologin/usr/bin/sh/usr/bin/bash/usr/sbin/nologin/bin/tcsh/bin/csh/bin/zsh[root@wen-7 ~]# chsh -s /bin/cshChanging shell for root.Shell changed.
pwck:pwck: 檢查passwd 文件語法
[root@wen-7 ~]# pwck用戶“avahi-autoipd”:目錄 /var/lib/avahi-autoipd 不存在用戶“saslauth”:目錄 /run/saslauthd 不存在用戶“pulse”:目錄 /var/run/pulse 不存在用戶“gnome-initial-setup”:目錄 /run/gnome-initial-setup/ 不存在用戶“oprofile”:目錄 /var/lib/oprofile 不存在用戶“mariadb”:目錄 /home/mariadb 不存在pwck:無改變
grpck:檢查group文件的語法
[root@wen-7 ~]# grpck無效的組文件條目刪除“dsfdsf”一行?y grpck:文件已更新
用戶及組的管理命令:
組管理命令:
1.groupadd: 添加組
groupadd [選項] groupName
-g GID:指定GID,默認是上一個組的GID加1
-r:創建系統組:存放系統用戶 GID位于1-999之間 也可以組合-g指定系統組ID
[root@wen-7 ~]# groupadd -g 5431 qwert [root@wen-7 ~]# getent group qwert qwert:x:5431: [root@wen-7 ~]# groupadd -g 5432 -r qweasd [root@wen-7 ~]# getent group qweasd qweasd:x:5432: #可用strace useradd usesrname:查看修改過程,調用過程
2.groupmod:修改組信息
groupmod [OPTIONS] groupname
選項:
-g GID:修改GID
-n name:修改組名:可能導致所屬用戶修改信息
[root@wen-7 ~]# groupmod -g 5433 -n asdfg qwert [root@wen-7 ~]# getent group asdfg asdfg:x:5433:
3.groupdel:刪除組
groupdel groupname
刪除組,會使所屬用戶失去組織
[root@wen-7 ~]# groupdel qweasd [root@wen-7 ~]# getent group qweasd [root@wen-7 ~]# #
4.groupmems:用戶主組的管理員成員
用法:groupmems [選項] [動作]
選項:
-g, –group groupname 更改組 groupname,而不是用戶的組(只 root)
-R, –root CHROOT_DIR chroot 到的目錄
動作:
-a, –add username 將用戶 username 添加到組成員中
-d, –delete username 從組的成員中刪除用戶 username
-h, –help 顯示此幫助信息并推出
-p, –purge 從組中移除所有成員
-l, –list 列出組中的所有成員
(5).gpasswd命令:
gpasswd [選項] group
-a username :想組中添加用戶
-dusername:從組中移 處用戶
-A username: 設置某用戶為組的管理員
gpasswd groupname : 更改組密碼
[root@w6 ~]# groupmems -l -g adminsnatasha harry user10 [root@w6 ~]# gpasswd -a user10 adminsAdding user user10 to group admins[root@w6 ~]# groupmems -l -g adminsnatasha harry user10 [root@w6 ~]# gpasswd -d user10 adminsRemoving user user10 from group admins[root@w6 ~]# groupmems -l -g adminsnatasha harry
其他用戶不得隨意切換組,必須要輸入組密碼,配合newgrp命令,臨時切換基本組,
(6) newgrp 命令
臨時切換指定組為基本組. exit退出 組不能是私有組
newgrp [-] [group]
-:會模擬用戶重新登錄以實現初始化其工作環境
[user10@w6 ~]$ newgrp - user2Password: [user10@w6 ~]$ touch qwewqe[user10@w6 ~]$ lltotal 0-rw-r--r-- 1 user10 user2 0 Aug 1 18:16 qwewqe-rw-rw-r-- 1 user10 user10 0 Aug 1 18:13 user2
練習:
創建sysadmins組
[root@wen-7 ~]# groupadd sysadmins[root@wen-7 ~]# getent group sysadminssysadmins:x:6015:
將用戶User1,2,3加入到sysadmins組中
[root@wen-7 ~]# useradd -G sysadmins user1[root@wen-7 ~]# useradd -G sysadmins user2[root@wen-7 ~]# useradd -G sysadmins user3
將user3設置為sysadmins的管理員用戶
[root@wen-7 ~]# gpasswd -A user3 sysadmins
用user3登錄,將user2從組移除
[root@wen-7 ~]# su - user3 -c "gpasswd -d user2 sysadmins"正在將用戶“user2”從“sysadmins”組中刪除
設置sysadmins密碼為centos
[root@wen-7 ~]# gpasswd sysadmins正在修改 sysadmins 組的密碼新密碼:請重新輸入新密碼
設置user1在創建新文件使,文件的所組為syaadmins
[root@wen-7 ~]# su - user1[user1@wen-7 ~]$ newgrp sysadmins[user1@wen-7 ~]$ touch fdsf | ll總用量 0-rw-rw-r-- 1 user1 user1 0 8月 3 10:35 a.sh-rw-r--r-- 1 user1 sysadmins 0 8月 3 10:36 dfa[user1@wen-7 ~]$
刪除用戶user1,2,3
[root@wen-7 ~]# userdel -r user1[root@wen-7 ~]# userdel -r user2[root@wen-7 ~]# userdel -r user3userdel:組“user3”沒有移除,因為它不是用戶 user3 的主組
刪除組sysadmin
[root@wen-7 ~]# groupdel sysadmins
用戶管理命令:
1.useradd:創建用戶,更新默認新用戶信息
useradd 【OPTIONS】 Username
選項:
-u: 指定uid號
-g:指定基本組ID,此組得事先存在
-o: 配合-u 不檢查UID的唯一性
-G:指明用戶所屬的附加組名,多個組之間作用逗號分隔,此組得事先存在
-c:指明注釋信息
-d:指明用戶家目錄位置,默認指向/home/ 通過復制/etc/skel/此目錄并重命名實現,指定的家目錄如果實現存在,則不會為用戶復制環境配置文件。 配合-m使用
-s:指明用戶的默認shell類型,可用的所有shell列表存儲在/etc/shells/文件
-r:創建系統用戶 ,家目錄,郵箱不會自動生成
-N:不創建私有組作為主組:
-M:不創建用戶家目錄
-f:密碼過期后,賬號被徹底禁用之前的天數
[root@wen-7 ~]# useradd -o -u 1208 -G gentoo,wen -c "zhifei is Linux system" -d /users/zhifei zhifei [root@wen-7 ~]# getent passwd zhifei zhifei:x:1208:1208:zhifei is Linux system:/users/zhifei:/bin/bash
useradd -D:顯示用戶創建時的默認選項
useradd -D 選項: 修改默認選項的值 修改的結果保于/etc/default/useradd文件,也可以直接編輯文件來修改變量
[root@wen-7 ~]# useradd -D GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes [root@wen-7 ~]# cat /etc/default/useradd # useradd defaults file GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes
注意:創建用戶時的諸多默認設定配置文件為/etc/login.defs
[root@wen-7 ~]# cat /etc/login.defs PASS_MAX_DAYS 99999 PASS_MIN_DAYS 0 PASS_MIN_LEN 5 PASS_WARN_AGE 7 UID_MIN 1000 UID_MAX 60000 # System accounts SYS_UID_MIN 201 SYS_UID_MAX 999 GID_MIN 1000 GID_MAX 60000 # System accounts SYS_GID_MIN 201 SYS_GID_MAX 999 CREATE_HOME yes UMASK 077 USERGROUPS_ENAB yes ENCRYPT_METHOD SHA512
擴展: 批量創建用戶:
(1)創建用戶文件 user.sh,按照/etc/passwd的格式
(2) newusers user.sh #批量創建用戶
(3)創建密碼文件passwd.sh, 格式:username:password
(4)cat passwd.sh |chpasswd #批量修改密碼
[root@w6 ~]# cat user.sh we7:x:507:507::/home/we7:/bin/bash we8:x:508:508::/home/we8:/bin/bash we9:x:509:509::/home/we9:/bin/bash [root@w6 ~]# newusers user.sh [root@w6 ~]# tail -n3 /etc/passwd we7:x:507:507::/home/we7:/bin/bash we8:x:508:508::/home/we8:/bin/bash we9:x:509:509::/home/we9:/bin/bash [root@w6 ~]# cat passwd.sh we7:123456 we8:123456 we9:123456 [root@w6 ~]# cat passwd.sh | chpasswd [root@w6 ~]# tail -n3 /etc/shadow we7:$6$IfgzE/H6x.$OYFvTlN3HxiUDvlVGhFU5ubi5jQfrNY2P5C0fhted4PDHP3XI6DQuZw13LEyBvuanHnHkplvR25wP9ZFqViTq1:17012:0:99999:7::: we8:$6$rzkZHmbVkD/2dgcz$/jx52XRml4tP4jB2HMdRAPlcAC5HDFS2K9ClKnSXulYnaPfceUbjBw9EAiFPBgE4clYVM5wtfII6mmIKRRs4T1:17012:0:99999:7::: we9:$6$8weaIXfBEiP$Pg8JQSYEOFlYWhVW1FGtOFlLf7PJSMvoJOoqLy3FdfC7vNOBHsWjdAGqlKmaiB76AY5GRwA/aYMezIA5e9zaf/:17012:0:99999:7::: [root@w6 ~]#cp -r /etc/skel/. /home/we9
練習:
1、創建用戶gentoo,附加組為bin和root,默認shell為/bin/csh,注釋信息為"GentooDistribution"
[root@w6 ~]# useradd -G bin,root -c "GentooDistribution" -s /bin/csh gentoo1 [root@w6 ~]# getent passwd gentoo1 gentoo1:x:510:510:GentooDistribution:/home/gentoo1:/bin/csh [root@w6 ~]# groups gentoo1 gentoo1 : gentoo1 root bin
2、創建下面的用戶、組和組成員關系
名字為admins 的組
用戶natasha,使用admins 作為附屬組
用戶harry,也使用admins 作為附屬組
用戶sarah,不可交互登錄系統, 且不是admins 的成員natasha, harry, sarah密碼都是centos
[root@wen-7 ~]# groupadd admins [root@wen-7 ~]# useradd -G admins natasha [root@wen-7 ~]# useradd -G admins harry [root@wen-7 ~]# useradd -s /sbin/nologin sarsh [root@wen-7 ~]# tail -n3 /etc/passwd natasha:x:4048:4048::/home/natasha:/bin/bash harry:x:4049:4049::/home/harry:/bin/bash sarah:x:4050:4050::/home/sarah:/sbin/nologin [root@wen-7 ~]# echo "centos"| passwd --stdin natasha 更改用戶 natasha 的密碼 。 passwd:所有的身份驗證令牌已經成功更新。 [root@wen-7 ~]# echo "centos"| passwd --stdin harry 更改用戶 harry 的密碼 。 passwd:所有的身份驗證令牌已經成功更新。 [root@wen-7 ~]# echo "centos"| passwd --stdin sarah 更改用戶 sarah 的密碼 。 passwd:所有的身份驗證令牌已經成功更新。 [root@wen-7 ~]# echo "centos"| passwd --stdin sarah
(2)usermod:修改用戶屬性
usermod [OPTINOS] username
選項:
-u UID:修改用戶的id號
-g GROUP:修改用戶所受的基本組
-G GROUP:修改用戶所屬的附加組,原來的組會被覆蓋
-a:與 -G一同使用,用于為用戶追加新的附加組
-c:修改注釋信息
-d home_DIR:修改用戶的家目錄,用戶原有的文件不會被轉移
-m:與-d配合使用,修改用戶家目錄后,移動原有的文件至新的家目錄
-l newname: 修改用戶名
-s shell:修改用戶的shell類型
-L:鎖定用戶密碼,禁止用戶登錄,及即在用戶原來的密碼字符串之前添加一個“!“
-U:解鎖用戶密碼 刪除 ”!“ !沒有后,可免密碼登錄
(3).userdel :刪除用戶
userdel [OPTIONS】 username
-r:刪除用戶時,一并刪除其家目錄和郵箱,系統默認不刪家目錄
練習:
1.創建用戶gentoo,UID為4001,基本組為gentoo,附加組為distro(GID為5000)和peguin(GID為5001);
[root@wen-7 ~]# groupadd -g 5000 distro [root@wen-7 ~]# groupadd -g 5001 peguin [root@wen-7 ~]# groupadd gentoo root@wen-7 ~]# useradd -u 4001 -g gentoo -G distro,peguin gentoo [root@wen-7 ~]# tail -1 /etc/passwd gentoo:x:4001:5002::/home/gentoo:/bin/bash [root@wen-7 ~]# tail -3 /etc/group distro:x:5000:gentoopeguin:x:5001:gentoogentoo:x:5002:
2.創建用戶fedore,其注釋信息為“Fedore Core” 默認shell為/bin/tcsh
[root@wen-7 ~]# useradd -c "Fedora Core" -s /bin/tcsh fedora [root@wen-7 ~]# tail -1 /etc/passwd fedora:x:4002:4002:Fedora Core:/home/fedora:/bin/tcsh
3.修改gentoo用戶的家目錄為/var/tmp/gentoo,要求其原有文件仍能被用戶訪問
[root@wen-7 ~]# usermod -md /var/tmp/gentoo gentoo [root@wen-7 ~]# tail -2 /etc/passwd gentoo:x:4001:5002::/var/tmp/gentoo:/bin/bashfedora:x:4002:4002:Fedora Core:/home/fedora:/bin/tcsh [root@wen-7 ~]# ls -a /var/tmp/gentoo/ . .. .bash_logout .bash_profile .bashrc .mozilla .zshrc
4.為gentoo新增附加組netadmin;
[root@wen-7 ~]# usermod -aG netadmin gentoo [root@wen-7 ~]# tail -2 /etc/group fedora:x:4002: netadmin:x:5003:gentoo
5.刪除用戶fedore
[root@wen-7 ~]# userdel -r fedora userdel:組“fedora”沒有移除,因為它不是用戶 fedora 的主組 userdel:/users/fedora/ 并不屬于 fedora,所以不會刪除 [root@wen-7 ~]# ll /home/ 總用量 4 drwx------ 3 docker docker 87 7月 30 11:14 docker drwx------ 3 4002 fedora 87 7月 29 16:37 fedora drwx------ 3 hadoop hadoop 87 8月 1 08:35 hadoop drwx------ 3 harry harry 87 8月 1 21:24 harry drwx------ 3 natasha natasha 87 8月 1 21:24 natasha drwx------ 3 sarah sarah 87 8月 1 21:26 sarah drwx------. 15 wen wen 4096 7月 30 11:42 wen drwx------ 3 wen1 wen1 87 7月 29 14:58 wen1
(4).passwd命令:
passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S]
passwd [–stdin] [username]
選項:
-l:鎖定用戶
-u:解鎖用戶
-d:清除用戶密碼
-e date:強制更改過期期限,日期
-i date:非活動期限;
-n date:密碼的最短使用期限
-x date:密碼的最長使用期限
-w date:警告期限
–stdin:標準輸入 echo ”PASSWD“|passwd –stdin USERNAME
[root@wen-7 ~]# echo "123456" | passwd --stdin gentoo 更改用戶 gentoo 的密碼 。 passwd:所有的身份驗證令牌已經成功更新。
(5).chage命令 更改用戶密碼過期信息
chage username:交互式更改,不用指定選項
-d: 更改最后一次更改密碼的日期 跟0表示下一次更改
-E:
-W:
-m:
-l: 查看密碼策略
[root@w6 ~]# chage -d 17011 -E 3 -W 9 -m 4 wen[root@w6 ~]# getent shadow wenwen:$6$TfrxzyP7T.sVpvMD$phH8yrBzDQ.dfh3A/9SB8pr2pVHOAjfG3mgoA/g0szkU.Wvkd8z2RBa2IQQNVsj3.iYjSkP3UHUt348bt3n1B1:17011:4:99999:9::3:
(6)id 顯示用戶的真實有效id信息
id [options] username
默認是當前登錄用戶,后接其他用戶名,查看其他用戶
選項:
-u:只顯示UID
-g:只顯示基本組ID
-G: 所有組的ID號
-n:只顯示名稱 而非id 配合以上選項使用
[root@wen-7 ~]# id -u wen 1000 [root@wen-7 ~]# id -g wen 1000 [root@wen-7 ~]# id -G wen 1000 4046 [root@wen-7 ~]# id -nu wen wen [root@wen-7 ~]# id -ng wen wen [root@wen-7 ~]# id -nG wen wen gentoo
(7) su命令 :swith user
登錄式切換:會通過重新讀取用戶的配置文件,環境變量來重新初始化
su – USername
su -l Username
非登錄式切換:不會讀取目標用戶的配置文件,環境變量來進行初始化
su Username
[root@wen-7 ~]# su wen [wen@wen-7 root]$ echo $PATH /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin [wen@wen-7 root]$ exit exit [root@wen-7 ~]# su - wen 上一次登錄:一 8月 1 21:38:04 CST 2016pts/0 上 [wen@wen-7 ~]$ echo $PATH /usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/wen/.local/bin:/home/wen/bin
-c command:僅以指定用戶的身份運行此處指定的命令,不進行實質切換
[root@wen-7 ~]# su - wen -c 'whoami` wen
注意:管理員可無密碼切換至其他用戶,非管理員在切換用戶時必須提供密碼,否則無法切換
切換后,不能再su回去,只能exit退出用戶登
作業:
1、創建testuser uid 1234,主組:bin,輔助組:root,ftp,shell:/bin/csh home:/testdir/testuser
[root@wen-7 ~]# useradd -u 1234 -g bin -G root,ftp -s /bin/csh -d /testdir/testuser testuser [root@wen-7 ~]# getent passwd testuser testuser:x:1234:1::/testdir/testuser:/bin/csh
2、修改testuser uid:4321,主組:root,輔助組:nobody,loginname:test,home:/home/test 家數據遷移
[root@wen-7 ~]# usermod -l test -u 4321 -g root -G nobody -d /home/test -m testuser [root@wen-7 ~]# getent passwd test test:x:4321:0::/home/test:/bin/csh
3、批量創建帳號:user1…user10
uid:3000-3009,shell:/bin/csh,home:/testdir/username
passwd:usernamepass
注意家目錄相關配置,使用戶正常登錄
[root@w6 ~]# mkdir /testdir #創建用戶文件 [root@w6 ~]# cat user.sh user1:x:3001:3001::/testdir/user1:/bin/csh user2:x:3002:3002::/testdir/user2:/bin/csh user3:x:3003:3003::/testdir/user3:/bin/csh user4:x:3004:3004::/testdir/user4:/bin/csh user5:x:3005:3005::/testdir/user5:/bin/csh user6:x:3006:3006::/testdir/user6:/bin/csh user7:x:3007:3007::/testdir/user7:/bin/csh user8:x:3008:3008::/testdir/user8:/bin/csh user9:x:3009:3009::/testdir/user9:/bin/csh user10:x:3010:3010::/testdir/user10:/bin/csh [root@w6 ~]# newusers user.sh #使用用戶文件,生成用戶 [root@w6 ~]# tail -10 /etc/passwd user1:x:3001:3001::/testdir/user1:/bin/csh user2:x:3002:3002::/testdir/user2:/bin/csh user3:x:3003:3003::/testdir/user3:/bin/csh user4:x:3004:3004::/testdir/user4:/bin/csh user5:x:3005:3005::/testdir/user5:/bin/csh user6:x:3006:3006::/testdir/user6:/bin/csh user7:x:3007:3007::/testdir/user7:/bin/csh user8:x:3008:3008::/testdir/user8:/bin/csh user9:x:3009:3009::/testdir/user9:/bin/csh user10:x:3010:3010::/testdir/user10:/bin/csh [root@w6 ~]# cat passwd.sh user1:user1pass user2:user2pass user3:user3pass user4:user4pass user5:user5pass user6:user6pass user7:user7pass user8:user8pass user9:user9pass user10:user10pass
[root@w6 ~]# cat passwd.sh |chpasswd #使用密碼文件,批量生成密碼
[root@w6 ~]# cp -r /etc/skel/.[^.]* /testdir/user1 #復制家目錄模板文件,使普通用戶命令變量符恢復正常 [root@w6 ~]# cp -r /etc/skel/.[^.]* /testdir/user2 [root@w6 ~]# cp -r /etc/skel/.[^.]* /testdir/user3 [root@w6 ~]# cp -r /etc/skel/.[^.]* /testdir/user4 [root@w6 ~]# cp -r /etc/skel/.[^.]* /testdir/user5 [root@w6 ~]# cp -r /etc/skel/.[^.]* /testdir/user6 [root@w6 ~]# cp -r /etc/skel/.[^.]* /testdir/user7 [root@w6 ~]# cp -r /etc/skel/.[^.]* /testdir/user8 [root@w6 ~]# cp -r /etc/skel/.[^.]* /testdir/user9
cp -r /etc/skel/. /home/user10 ######整個文件所有文件,隱藏和非隱藏
[root@w6 ~]# ll -a /testdir/user1 total 32 drwx------. 4 user1 user1 4096 Jul 30 16:58 . drwxr-xr-x. 12 root root 4096 Jul 30 16:53 .. -rw-r--r--. 1 root root 18 Jul 30 16:58 .bash_logout -rw-r--r--. 1 root root 176 Jul 30 16:58 .bash_profile -rw-r--r--. 1 root root 124 Jul 30 16:58 .bashrc drwxr-xr-x. 2 root root 4096 Jul 30 16:58 .gnome2 -rw-------. 1 user1 user1 53 Jul 30 16:56 .history drwxr-xr-x. 4 root root 4096 Jul 30 16:58 .mozilla
touch /etc/nologin 創建此目錄可以禁止所有用戶登錄,并可以讓用戶看見文件中的提示信息,用于系統維護場景
touch /run/noligin 創建此目錄可以禁止所有用戶登錄,并可以讓用戶看見文件中的提示信息,用于系統維護場景 centos7有/run/
原創文章,作者:wencx,如若轉載,請注明出處:http://www.www58058.com/27634