====賬號管理配置文件====
vim /etc/passwd,顯示系統(tǒng)內(nèi)所有賬號內(nèi)容,每一行代表一個賬號,比如:
yidao:x:1000:1000:fedora17:/home/yidao:/bin/bash
解釋下這7個字段的含義:
1:賬號名稱 | 2:密碼 | 3:UID | 4:GID | 5:用戶信息說明 | 6:主文件夾 | 7:shell
vim /etc/shadow,顯示密碼信息,每一行代表一個賬號密碼信息,比如:
yidao:$1$Bylot.Y3$kMjNj1.KyW9lS3TUuAIPd/:15614:0:99999:7:::
解釋下這9個字段含義(以:隔開)
1:賬號名稱 | 2:密碼 | 3:最近更改密碼日期 , 與1970年1月1日比較的天數(shù) | 4:密碼不可被更改的天數(shù)(與第三個字段比較) | 5:密碼需重新更新的天數(shù)(與第三個字段比較) | 6:密碼需重新更新前的警告天數(shù)(與第五個字段比較) | 7:密碼過期后的賬號寬限天數(shù)(密碼失效日)(與第五個字段比較) | 8:賬號失效日期,也是與1970年1月1日比較的天數(shù) | 9:保留
/etc/group 文件:
yidao:x:1000:
用戶組名稱:用戶組密碼(已經(jīng)移到/etc/gshadow中去,一般為x):GID:此用戶支持的賬號名稱(只寫改組不是其初始用戶組的賬號)
groups命令可以顯示該用戶的屬于所有的用戶組,第一個為有效用戶組,新建文件的時候有用
newgrp命令切換有效用戶組,新開子shell,用exit返回。
/etc/gshadow 文件:
root:::
用戶組名:密碼列(開頭為!代表無合法密碼,所有無用戶組管理員):用戶組管理員賬號:用戶組下的賬號
====新增用戶useradd====
# useradd [-u UID] [-g GID] [-G 次要用戶組] [-mM] [-c 說明] [-d 主文件夾] [-s shell] [-r] 用戶賬號
-M:強制不創(chuàng)建用戶主文件夾(系統(tǒng)賬號默認(rèn)值)
-m:強制創(chuàng)建用戶主文件夾(一般賬號默認(rèn)值)
-r:創(chuàng)建一個系統(tǒng)賬號
使用useradd創(chuàng)建賬號至少會參考:
/etc/default/useradd
/etc/login.defs
/etc/skel/*這些文件。
詳細的密碼顯示與修改命令chage:
# chage [-ldEImMW] 帳號名
-l:列出詳細密碼信息
-d:后面接日期,修改shadow第三個字段(最新修改日期),格式Y(jié)YYY-MM-DD
-E:后面接日期,修改shadow第八字段(賬號失效日),格式Y(jié)YYY-MM-DD
-I:后面接天數(shù),修改shadow第七字段(密碼失效日期)
-m:后面接天數(shù),修改shadow第四字段(密碼最短保留天數(shù))
-M:后面接天數(shù),修改shadow第五字段(密碼最長保留天數(shù))
-W:后面接天數(shù),修改shadow第六字段(密碼過期前幾天開始警告)
====賬號相關(guān)數(shù)據(jù)進行微調(diào)usermod====
# usermod [-cdegGlsuLU] username
-c:后面接賬號說明,即/etc/passwd第五列說明
-d:賬號主文件夾,/etc/passwd第六列
-e:后面接日期,YYYY-MM-DD格式,/etc/shadow第八字段(賬號失效日期)
-f:后面接天數(shù),shadow第七字段(密碼失效日期)
-g:后接初始用戶組,/etc/passwd第四字段,即GID字段
-G:后接次要用戶組,修改這個用戶能支持的用戶組,修改的是/etc/group(賦值的意思,你懂的)
-a:與-G合用增加次要用戶組的支持而非設(shè)置(append的意思,你懂的)
-l:后接賬號名稱,即修改賬號名稱,/etc/passwd第一列
-s:后接shell實際文件,例如/bin/bash、/bin/csh等
-u:后接UID,/etc/passwd第三列
-L:暫時將用戶的密碼凍結(jié),讓他無法登陸,其實僅僅改了/etc/shadow的密碼列
-U:將/etc/shadow密碼列的!去掉,解鎖密碼
幾個小命令:
# finger [-s] username:類似指紋功能,將用戶相關(guān)屬性列出來
# chfn [-foph] username:修改finger屬性,也就是個人信息
# chsh [-ls] :修改shell
# id username:查閱相關(guān)的ID信息
====用戶組管理命令====
# groupadd [-g gid] [-r] 用戶組
-g:后接GID
-r:新建系統(tǒng)用戶組
# groupmod [-g gid] [-n group_name] 用戶組名
-g:修改GID
-n:修改組名
這東東一般沒啥用,最好別用。
# groupdel 用戶組名
# gpasswd groupname:給個組密碼
# gpasswd [-A user1, ...] [-M user3, ...] groupname
-A:將groupname主控器交由后面的用戶管理(該用戶組的管理員)
-M:將某些賬號加入到這個組中
# gpasswd [-rR] groupname
-r:將groupname的密碼刪掉
-R:讓groupname的密碼欄失效
下面是組管理員命令:
# gpasswd [-ad] user groupname
-a:add
-d:delete
====主機的具體權(quán)限規(guī)劃ACL(Access Control List)====
先查看是否支持acl
# sudo dumpe2fs -h /dev/sda5 | grep acl
設(shè)置acl權(quán)限:
# setfacl [-bkRd] [{-m|-x} acl參數(shù)] 目標(biāo)文件名
參數(shù):
-m:設(shè)置后續(xù)的acl參數(shù)給文件使用,不可與-x合用
-x:刪除后續(xù)的acl參數(shù),不可與-m合用
-b:刪除所有的acl參數(shù)
-k:刪除默認(rèn)的acl參數(shù),關(guān)于所謂的默認(rèn)參數(shù)等等
-R:遞歸設(shè)置acl,亦包括子目錄也
-d:設(shè)置默認(rèn)的acl參數(shù)!只對目錄有效,在該目錄下新建數(shù)據(jù)會引用此默認(rèn)值
設(shè)置用戶規(guī)則:u:[用戶賬號列表]:rwx
# touch text.txt
# setfacl -m u:yidao:rx text.txt
# setfacl -m u::rx text.txt ==> 代表對該文件的所有者(user)設(shè)置
# getfacl text.txt ==>查看acl設(shè)置
里面有個mask:表示用戶或者用戶組的權(quán)限必須要存在于mask的權(quán)限范圍內(nèi)才會生效,即有效權(quán)限 effective permission的意思
設(shè)置用戶組規(guī)則:g:[用戶組列表]:rx text.txt
# setfacl -m g:yidao:rx text.txt
設(shè)置mask的規(guī)則: m:[rwx] text.txt
# setfacl -m m:rx text.txt
針對目錄的ACL的權(quán)限設(shè)置能夠被子目錄所繼承的話,設(shè)置規(guī)范:
d:[u|g]:[用戶|用戶組]列表:[rwx]
切換到root身份的時候使用:
====用戶身份切換====
# su -
# su – -c ‘head -n 3 /etc/shadow’ ==> 執(zhí)行完root命令后自動返回當(dāng)前用戶
# sudo [-b] [-u 新用戶賬號] command
-b:后續(xù)命令讓系統(tǒng)自動執(zhí)行,不與目前的shell環(huán)境產(chǎn)生影響
-u:后面接用戶名,沒有就代表root
# sudo -u sshd touch /tmp/mysshd
# sudo -u testuser sh -c “mkdir ~testuser/www; cd ~testuser/www; echo ‘fuck you’ > index.html”
visudo 編輯/etc/sudoers文件:
yidao ALL=(ALL) ALL
用戶賬號 登錄者的來源主機號=(可切換的身份) 可執(zhí)行的命令
%yidao ALL=(ALL) ALL ==>注意%代表對用戶組設(shè)置
%yidao ALL=(ALL) ALL NOPASSWD: ALL ==>免密碼功能
通過別名設(shè)置visudo:
# visudo
User_Alias ADMUSERS = myuser1, myuser2
Host_Alias www.springzoo.com, www.google.com.hk
Cmnd_Alias ADMCMD = !/usr/bin/passwd, /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root
ADMUSERS ALL=(Host_Alias) ADMCMD
sudo搭配su輸入自己的密碼變成root用戶,然后以后就不用輸入sudo了
# visudo
User_Alias ADMINS = yidao, test…
ADMINS ALL=(root) /bin/su -
====PAM模塊(Pluggable Authentication Modules)====
可以編輯/etc/nologin.txt讓shell為/sbin/nologin的用戶登錄時候顯示消息給他看
PAM會調(diào)用在目錄/etc/pam.d/command文件對每個command進行認(rèn)證,文件名與程序名一樣
====查詢用戶:====
w/who/last/lastlog 不解釋
用戶對談:write,mesg,wall
先用w查看當(dāng)前用戶
# write 用戶賬號 [用戶所在終端接口]
# write yidao [pts/2]
最后按CTRL + D結(jié)束輸入
# mesg [-n|y] ==> 查看自己的消息,-n禁止別人的彈出消息
# wall ”Hello everybody…” ==> 廣播
====用戶郵件====
# mail username@localhost -s “郵件標(biāo)題”
正文結(jié)束時,最后一行輸入一個.即可
==============================END==============================