歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

linux學習日記十一 賬號管理與ACL權限設置

====賬號管理配置文件====

vim /etc/passwd,顯示系統內所有賬號內容,每一行代表一個賬號,比如:

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日比較的天數 |   4:密碼不可被更改的天數(與第三個字段比較)   |   5:密碼需重新更新的天數(與第三個字段比較)  |  6:密碼需重新更新前的警告天數(與第五個字段比較)  |   7:密碼過期後的賬號寬限天數(密碼失效日)(與第五個字段比較)  |  8:賬號失效日期,也是與1970年1月1日比較的天數  |  9:保留

/etc/group 文件:

yidao:x:1000:

用戶組名稱:用戶組密碼(已經移到/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:強制不創建用戶主文件夾(系統賬號默認值)

-m:強制創建用戶主文件夾(一般賬號默認值)

-r:創建一個系統賬號

使用useradd創建賬號至少會參考:

/etc/default/useradd

/etc/login.defs

/etc/skel/*這些文件。

詳細的密碼顯示與修改命令chage:

# chage [-ldEImMW] 帳號名

-l:列出詳細密碼信息

-d:後面接日期,修改shadow第三個字段(最新修改日期),格式YYYY-MM-DD

-E:後面接日期,修改shadow第八字段(賬號失效日),格式YYYY-MM-DD

-I:後面接天數,修改shadow第七字段(密碼失效日期)

-m:後面接天數,修改shadow第四字段(密碼最短保留天數)

-M:後面接天數,修改shadow第五字段(密碼最長保留天數)

-W:後面接天數,修改shadow第六字段(密碼過期前幾天開始警告)

====賬號相關數據進行微調usermod====

# usermod [-cdegGlsuLU]  username

-c:後面接賬號說明,即/etc/passwd第五列說明

-d:賬號主文件夾,/etc/passwd第六列

-e:後面接日期,YYYY-MM-DD格式,/etc/shadow第八字段(賬號失效日期)

-f:後面接天數,shadow第七字段(密碼失效日期)

-g:後接初始用戶組,/etc/passwd第四字段,即GID字段

-G:後接次要用戶組,修改這個用戶能支持的用戶組,修改的是/etc/group(賦值的意思,你懂的)

-a:與-G合用增加次要用戶組的支持而非設置(append的意思,你懂的)

-l:後接賬號名稱,即修改賬號名稱,/etc/passwd第一列

-s:後接shell實際文件,例如/bin/bash、/bin/csh等

-u:後接UID,/etc/passwd第三列

-L:暫時將用戶的密碼凍結,讓他無法登陸,其實僅僅改了/etc/shadow的密碼列

-U:將/etc/shadow密碼列的!去掉,解鎖密碼

幾個小命令:

# finger [-s] username:類似指紋功能,將用戶相關屬性列出來

# chfn [-foph] username:修改finger屬性,也就是個人信息

# chsh [-ls] :修改shell

# id username:查閱相關的ID信息

====用戶組管理命令====

# groupadd [-g gid] [-r] 用戶組

-g:後接GID

-r:新建系統用戶組

# 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

====主機的具體權限規劃ACL(Access Control List)====

先查看是否支持acl

# sudo dumpe2fs -h /dev/sda5 | grep acl

設置acl權限:

# setfacl [-bkRd] [{-m|-x} acl參數] 目標文件名

參數:

-m:設置後續的acl參數給文件使用,不可與-x合用

-x:刪除後續的acl參數,不可與-m合用

-b:刪除所有的acl參數

-k:刪除默認的acl參數,關於所謂的默認參數等等

-R:遞歸設置acl,亦包括子目錄也

-d:設置默認的acl參數!只對目錄有效,在該目錄下新建數據會引用此默認值

設置用戶規則:u:[用戶賬號列表]:rwx

# touch text.txt

# setfacl -m u:yidao:rx  text.txt

# setfacl -m u::rx text.txt  ==> 代表對該文件的所有者(user)設置

# getfacl text.txt ==>查看acl設置

裡面有個mask:表示用戶或者用戶組的權限必須要存在於mask的權限范圍內才會生效,即有效權限 effective permission的意思

設置用戶組規則:g:[用戶組列表]:rx text.txt

# setfacl -m g:yidao:rx text.txt

設置mask的規則: m:[rwx] text.txt

# setfacl -m m:rx text.txt

針對目錄的ACL的權限設置能夠被子目錄所繼承的話,設置規范:

d:[u|g]:[用戶|用戶組]列表:[rwx]

切換到root身份的時候使用:

====用戶身份切換====

# su -

# su – -c ‘head -n 3 /etc/shadow’  ==> 執行完root命令後自動返回當前用戶

# sudo [-b] [-u 新用戶賬號] command

-b:後續命令讓系統自動執行,不與目前的shell環境產生影響

-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

用戶賬號   登錄者的來源主機號=(可切換的身份)   可執行的命令

%yidao  ALL=(ALL)    ALL  ==>注意%代表對用戶組設置

%yidao  ALL=(ALL)    ALL  NOPASSWD:  ALL  ==>免密碼功能

通過別名設置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會調用在目錄/etc/pam.d/command文件對每個command進行認證,文件名與程序名一樣

====查詢用戶:====

w/who/last/lastlog   不解釋

用戶對談:write,mesg,wall

先用w查看當前用戶

# write 用戶賬號  [用戶所在終端接口]

# write yidao [pts/2]

最後按CTRL + D結束輸入

# mesg [-n|y]  ==> 查看自己的消息,-n禁止別人的彈出消息

# wall  ”Hello everybody…”  ==> 廣播

====用戶郵件====

# mail username@localhost -s “郵件標題”

正文結束時,最後一行輸入一個.即可

==============================END==============================

Copyright © Linux教程網 All Rights Reserved