Linux 第11天文件和用戶管理
時間: 20180728
目錄
用戶和組管理命令
文件權限管理命令
文本處理工具
用戶和組管理
即添加用戶,刪除用戶,組的管理等
/etc/passwd
/etc/shadow
getent 輸出指定的數據庫裏的指定信息
getent [OPTION...] database [key ...]
Supported databases:
ahosts ahostsv4 ahostsv6 aliases ethers group gshadow hosts initgroups
netgroup networks passwd protocols rpc services shadow
例 getent passwd root
getent shadow root
useradd
-u UID
-D 後邊如果加參數則修改/etc/defaults/useradd裏的配置,不加參數則顯示文件信息
-d 指定用戶家目錄路徑
-r 表示創建的用戶為系統用戶(沒有家目錄)
-m 創建家目錄
-s 指定用戶的shell
-g 屬組的GID
-c 註釋信息
-G 附加組信息
-N 不創建與用戶名相同的組,而是讀取/etc/defaults/useradd裏的GID創建
-o 不做UID重復檢測,即創建用戶時可以使用系統裏已經存在的UID
-a append常與-G連用,表示在原有的附加組上再附加,不加此選項則會覆蓋原有的
-l 修改當前用戶名為新的用戶名
-U 解鎖已經鎖定的用戶
-e 指定過期時間
-f inactifve 指定密碼過期後再過幾天將徹底禁用此賬號
userdel
-r 刪除用戶時將用戶的家目錄一並刪除
openssl 生成隨機密碼
rand -base64
authconfig 配置系統認證資源
--passalgo 設置系統默認的加密算法
--update 將所配置的選項保存至相應的文件中,即等同於直接配置其相應的配置文件
groupadd 添加一個用戶組
-g GID
-r 創建一個系統組,即組ID會在201-999
groupdel 刪除一個用戶組
groups 輸出一個和用戶同組的其它用戶
groupmems 管理用戶的主組成員
-g Gname 指定用戶組
-d delete 從指定組中刪除某個成員 groupmems -d scnet -g mysky
-l list 列出所指定的用戶組裏的成員 groupmems -lg GroupName
-a add 添加一個用戶至指定用戶組中 groupmems -a user -g GroupName
newgrp 臨時切換一個用戶的主組為指定的組
passwd 創建用戶的密碼
-d 刪除指定用戶的密碼
-l 鎖定所指定的用戶
-u 解鎖鎖定的用戶
-e 指定用戶的過期時間
-f 當解鎖-u一個為空口令並可以登錄的用戶時會提示用戶為空口令,此選項會強制執行
-n 密碼最小使用時長
-x 密碼最長使用期限
-w 密碼到期時間前多少天提示需要用戶修改密碼
-i inactive 密碼到期之後多少天可以登錄到此服務器此期間登錄後必須修改密碼
--stdin 接受輸入由標準輸入echo "string" | passwd --stdin admin
gpasswd
-a add 添加一個用戶至指定組內
-d del 從指定組內刪除某個用戶
-A 設置某個用戶為指定組的管理員,可以添加刪除組內用戶
chage
-l 列出指定用戶賬戶的時間信息
-d 修改用戶的最後一次密碼修改時間
-E 設置用戶的過期時間
-I 設置用戶在過期時間之後寬限多少天可登錄
-m 設置密碼的最小使用時長
-M 設置密碼的最大使用時長
-W 設置密碼在到期時間的前多少天警告用戶修改密碼
pwck 檢查/etc/passwd文件是否存在語法錯誤
grpck 檢查/etc/group文件是否存在語法錯誤
newusers 批量添加用戶賬戶至一個文件中
按照此格式添加用戶的賬戶信息
pw_name:pw_passwd:pw_uid:pw_gid:pw_gecos:pw_dir:pw_shell
然後使用newusers filename便可實現批量添加用戶
chpasswd 批量修改用戶密碼
按照此格式添加用戶的賬戶信息至一個文件中
user_name:passwd
然後使用chpasswd filename便可批量修改用戶密碼
文件權限管理
chmod 修改文件權限
chown 修改文件的所屬主屬組
chgrp 修改文件的所屬組
相對文件
r 可以讀取該文件內容
w 可以修改文件內容
x 可以執行該文件
相對目錄
r 使用ls可以列出該目錄的文件列表但無法使用-l選項,也不可以使用cd進入該目錄
w 可以刪除該目錄的內容
x 可以cd進入該目錄,並可以使用ls -l選項
umask
-S 使用u=,g=,o=而替代傳統方式0002
-p 輸出umask時還會在前邊加上命令名 umask -p >> ~/.bashrc
chattr 更改文件屬性
[-|+]i immutable 此文件不可更改刪除重命名,移動等
[-|+]a append 只可附加內容至此文件不可以刪除所文件內容
lsattr 查看該文件的屬性
ACL
文件ACL是linux為了為特寫用戶設置權限,因為本身文件所賦予的權限無法滿足需求,
此時就可以使用ACL,來為特定的文件指定用戶或用戶組對該文件的訪問權限,但是並非
所有的文件系統都支持facl
setfacl 設置文件的附加權限
-m 修改當前的文件的ACL權限
-M 從指定文件中讀取ACL權限,並為所指定的文件應用該權限
-x 移除指定的權限
-X 從指定文件中讀取ACL權限,並為所指定的文件刪除該權限
-b 刪除所有ACL權限
-R recursive 遞歸應用權限
-d 一般為文件夾設置,此時在此文件夾裏創建新文件時會附加此條ACL權限
-k 移除-d所指定的默認權限
--set-file 清空現有權限並從所給文件中讀取權限應用至所給的文件
--restore=file 從file中讀取權限,並還原ACL至所給的目標文件或目錄
getfacl 查看所指定的文件或文件夾ACL權限
ACL權限識別順序
屬主 acl定義用戶 acl 自定義組 其它人
SUID
某文件被賦予SUID權限時,當某用戶對該文件有執行權限,則啟動後的進程屬主為該文件
的屬主,而不是默認的以進程的發起者運行該文件
表現: 設置SUID的文件其user權限的x會變為s,如果user沒有x權限則會顯示大寫S
chmod u+s file...
SGID
如果文件被賦予SGID權限時,用戶啟動該文件時,進程的屬組為該文件的屬組,而非默認
的進程的發起者屬組
如果目錄被賦予SGID權限時,則此時在此文件夾下有寫權限的用戶創建的文件或者文件夾
會繼承該目錄的所屬組
表現: 設置SGID的文件其group權限的x會變為s,如果group沒有x權限則會顯示大寫S
chmod g+s file...
Sticky
目錄被設置Sticky權限時,任何用戶在該文件夾下如果有寫權限時,只能刪除用戶自己
創建 的文件,不可以刪除其它人創建的文件。
表:設置Sticky權限的文件夾其other權限x會變為t,如果other沒有x權限時顯示大寫T
文本處理工具
cat
-n 顯示行號,空白行也會算一行
-A 顯示所有字符包含換行制表符等
-b 顯示行號,空行不算行號
-s 壓縮相鄰的空白行為一行顯示文件
tac 與cat相反,顯示的文件也是倒序顯示
less 打開文件查看內容並在瀏覽至文件末尾時不會退出至命令行,最大區別是當用該命令打開
大文本文件速度快
more 打開文件查看文件內容
rev 將所給的文件每一行反轉並輸出至標準輸出
head 輸出文件的前10行至標準輸出
-n 指定輸出前#行
-c 指定輸出文件的前#個字節
tail 輸出所指定文件的後10行至標準輸出
-n 指定輸出前#行
-f 查看文件的後#行,並持續更新,如果文件後續有更新內容,會顯示在標準輸出
-F 與-f基本相似,只是-f在文件被刪除時沒有提示,而-F文件被刪除時會有提示
-c 輸出文件後#個字節
tailf 類似tail -f 只是這個優化的更好一些
cut 裁剪文件,並輸出所指定的列
-d delimiter 指定裁剪時的分隔符
-f fields 指定要顯示的字段
-c 選擇指定列的字符常為cut -c 18-20指定連接的列字符
Linux 第11天文件和用戶管理