1.管理用戶組
RHEL系統(tǒng)中普通用戶和組的ID默認從500開始当娱,0~499作為系統(tǒng)保留唆樊。
2.命令行管理用戶
- 1)使用useradd創(chuàng)建用戶
用法:useradd [options] user_name
-u UID:為新用戶指定一個uid(不使用系統(tǒng)默認按順序分配),使用-r強制簡歷系統(tǒng)用戶,-o允許新用戶不唯一的uid
-g Group:為新用戶指定一個組(指定組必須存在)
-G Goups:為新用戶指定一個附加組
-M 不創(chuàng)建用戶的家目錄
-m 為新用戶創(chuàng)建家目錄,使用-k選項將skeleton——dir內(nèi)的檔案復制到家目錄下
-c 為新用戶進行說明注釋(/etc/passwd的說明欄)
-d 為新用戶指定家目錄断部,默認值為default_home內(nèi)的login
-s 為新用戶指定登錄后使用的shell
-e 為新用戶指定帳號的終止日期,日期格式為MM/DD/YY
-f 用戶帳號過期幾日后永久失效班缎,當值為0時帳號則立刻失效蝴光,為-1時關(guān)閉此功能她渴,默認關(guān)閉
例子:
useradd -u 1000 -c "ftp user" -s /bin/nologin user1
- 2)使用passwd設(shè)置用戶密碼
用法:passwd [options] user_name
常用選項:
-l 鎖定指定密碼
-u 解鎖指定的被鎖定的帳號
-n 指定密碼最短時間
-x 指定密碼最長時間
-w 指定密碼過期前的警告天數(shù)
-i 指定密碼過期后,帳號失效前的天數(shù)
-s 報告指定用戶密碼的狀態(tài)
--stdin 從標準輸入讀入密碼虱疏,常用于shell腳本
例子:
passwd user1
用cat命令查看:
cat /etc/passwd
查看用戶密碼信息新行:
cat /etc/shadow
- 3)用usermod命令修改用戶帳號信息:
用法:usermod [options] user_name
-L 鎖定帳號(在/etc/passwd中密碼部分前加一個H锹睢)
-U 用于解鎖
-l 改變用戶的登錄名
例子:
usermod -c "web user" user1
cat /etc/passwd |grep user1
查看用戶的密碼文件,在密碼前加“做瞪!”符號对粪,用戶不能登錄
grep user1 /etc/passwd
- 4)使用userdel命令刪除用戶
用法:userdel [options] user_name
-f 強制刪除用戶,即使該用戶仍在登錄
-r 刪除用戶的同時刪除該用戶的家目錄和郵件
例子:
userdel user1
ls /home
沒有-r選項刪除用戶装蓬,而用戶的家目錄被保留著拭,如果同名組沒有其他成員,則連同刪除牍帚,反之儡遮,保留。
- 5)使用groupadd命令新建組
用法:groupadd [options] group_name
-g 指定新建組的gid
-o 可以重復使用gid
-r 建立系統(tǒng)帳號
例子:創(chuàng)建一個新組
groupadd nona
修改nona密碼:(沒有密碼的組是不允許用戶申請加入的)
gpasswd nona
查看當前組群:
groups
用戶主動申請加組群nona
newgrp nona
用戶退出組群:exit
刪除組nona的密碼:gpasswd -r nona
在root用戶下暗赶,將用戶zhangsan加入到nona組中
gpasswd -a zhangsan nona
將lisi設(shè)置為組nona的管理員
gpasswd -A lisi nona
切換組:
newgrp nona(在zhangsan用戶下)
修改組名鄙币,將nona名改為xs:
groupmod -n nona xs
刪除組:
groupdel xs
查看user1的uid,gid蹂随,組:
id user1
查看用戶的帳號密碼信息:
change -l user1
設(shè)置用戶user1帳號過期時間是2018-05-28:
change -E "2018-05-28" user1
檢查系統(tǒng)內(nèi)用戶帳號信息的完整性:
pwck (輸出中系統(tǒng)帳號家目錄信息的缺失是正常的)
- 6)sudo命令獲得root權(quán)限
使用visudo命令編輯sudo配置文件
visudo /etc/sudoers
3.用戶初始化
- 1)用戶特定配置文件
當用戶被創(chuàng)建時十嘿,系統(tǒng)從/etc/skel/目錄下復制用戶的配置文件到用戶的目錄。這些配置文件用來定義用戶的工作環(huán)境岳锁,比如:PATH,別名绩衷,這些文件位于每個用戶的家目錄下,僅對當前用戶有效激率。
~/.bashrc 定義函數(shù)和別名
~/bash_profile 設(shè)置環(huán)境變量
~/.bash_logout 定義用戶退出時執(zhí)行的命令
(可將別名定義在bashrc文件中)
全局配置文件:(對所有用戶都生效)
/etc/bashrc 定義函數(shù)和別名
/etc/profile 設(shè)置環(huán)境變量
/etc/profile.d 目錄下的腳本被/etc/profile引用
系統(tǒng)預設(shè)的值:
用戶屬性信息的默認值在文件/etc/login.defs中被定義
例子:查看/etc/login.defs咳燕,使用grep命令過濾文件以“#”開頭的注釋行
grep -v '^#' /etc/login.defs
查看/etc/default/useradd文件中的配置項
cat /etc/default/useradd
使用useradd命令列出系統(tǒng)預設(shè)的添加用戶信息的默認值
useradd -D
可以通過useradd -D加上相應的選項更新這些預設(shè)值
-b 定義用戶家目錄的上一級目錄
-e 用戶帳號的過期日期
-f 用戶帳號過期幾日后失效
-g 新建用戶的起始群組或ID
-s 新建用戶登錄后使用的shell
4.Linux文件權(quán)限管理
注意:用戶權(quán)限高于組的權(quán)限,高于其他人的權(quán)限
權(quán)限 | 對文件影響 | 對目錄影響 |
---|---|---|
r(讀取) | 可以讀文件內(nèi)容 | 可以列出目錄的內(nèi)容 |
w(寫入) | 可以更改文件內(nèi)容 | 可以創(chuàng)建或刪除目錄中任意文件 |
x (執(zhí)行) | 可以作為執(zhí)行文件 | 可以訪問目錄內(nèi)容(還取決于目錄文件的權(quán)限) |
在命令行中列出目錄的屬性 :
ll -d /home/demo
查看文件目錄有多大:
du -sh /root
- 1)在命令行中管理權(quán)限
使用chmod命令更改文件的權(quán)限
用法:
chmod [options] [模式] file...
chmod [options] 八進制模式 file...
chmod [options] --referrence=參考文件 file...
常用選項
-R:以遞歸方式更改所有的文件及子目錄
符號模式:chmod who what which file|girectory
簡單理解:chmod [-R] [ugoa] [+-=] [rwx] file|firectory
who:指u乒躺、a招盲、g、o(代表擁有者嘉冒,全部宪肖,組,其他)
what:值+健爬、-、=(代表添加么介,刪除娜遵,精確設(shè)置)
which:r、w壤短、x(代表讀取设拟,寫入慨仿,可執(zhí)行)
八進制模式:chmod [-R] ### file|diretory
.#代表數(shù)字,#代表權(quán)限總和 r=4,w=2,x=1
精確設(shè)置文件的權(quán)限:chmod u=rw,g=r file
統(tǒng)一設(shè)置目錄及目錄下所有文件的權(quán)限:chmod -R +w targetdir/
使用數(shù)字方式設(shè)置權(quán)限:chmod 755 file
- 2)chown命令更改文件用戶所有權(quán)
更改文件或者文件夾的用戶或組的所有權(quán)纳胧,使用chown或chgrp命令
用法:
chown [options] [所屬者]:[所屬組] file
chown [options] --reference=參考文件 file
例子:
改變文件的所屬者:
chown zhangsan file
改變文件的所屬組:
chgrp mail file
同時改變用戶和組的所有權(quán)镰吆,并使用-R選項遞歸目錄和目錄下的所有文件:
chown zhangsan:mail targetdir/
- 特殊權(quán)限
查看passwd的權(quán)限
ll 'which passwd'
特殊權(quán)限對文件和目錄的影響
- 特殊權(quán)限
特權(quán) | 對文件的影響 | 對目錄的影響 |
---|---|---|
u+s(setuid或suid) | 以擁有文件和目錄的用戶身份執(zhí)行文件,而不是運行文件的用戶身份 | 無影響 |
g+s(setgid或sgid) | 以擁有文件的組身份執(zhí)行文件 | 對目錄中最新創(chuàng)建的文件將其組所有者設(shè)置為與目錄的組所有者相同 |
o+t(sticky) | 無影響 | 對目錄具有寫入權(quán)限的用戶僅可以刪除其擁有的文件跑慕,而無法刪除其他用戶所擁有的文件 |
設(shè)置特殊權(quán)限有兩種方法:
- 符號法:setuid=u+s;setgid=g+s;sticky=o+t
- 數(shù)字法:setuid=4;setgid=2;sticky=1
例子:給目錄設(shè)置sgid權(quán)限
chmod u+s directory
chmod 2775 directory
搜索所有異常的程序或腳本
find / -perm -4000
4.擴展屬性
lsattr testfile.txt 查看文件的擴展屬性
- 1)設(shè)置文件的擴展屬性:
chattr +i testfile.txt
lsattr testfile.txt
s:系統(tǒng)刪除這個文件時万皿,用o填充文件區(qū)域
a:只允許追加數(shù)據(jù),不允許覆蓋或截斷這個文件
i:表示不能被刪除核行,不能修改牢硅,不能重復命名,不能創(chuàng)建鏈接
S:表示同部數(shù)據(jù)
d:在文件備份時芝雪,dump程序忽略這個文件减余,通過man chattr獲得說明
c:以透明方式壓縮這個文件
u:當一個程序要刪除這個文件時,系統(tǒng)會保留其數(shù)據(jù)塊以使恢復
A:告訴系統(tǒng)不要修改對這個文件的最后訪問時間
- 2)訪問控制列表(ACL)
查看文件或目錄的acl權(quán)限
用法:getfacl [options] file
例子:查看文件的acl
getfacl testfile
對于添加ACL的文件惩系,使用ll命令列出位岔,權(quán)限位的最后帶有“+”號
ll testfile - 3)設(shè)置文件或目錄的ACL
用法:
setfacl [-bkndRLP] {-m|-M|-x|-X|...} file
常用選項:
-m:設(shè)置或修改文件的ACL權(quán)限
-x:刪除文件的一個ACL權(quán)限
-b:刪除文件所有的ACL權(quán)限
-k:刪除所有的默認ACL權(quán)限
--set:設(shè)置文件ACL,替代當前的ACL
--mask:重新計算有效的mask值
-R:遞歸子目錄
-d:設(shè)置默認的ACL權(quán)限,僅能針對目錄使用
--restore:從文件恢復備份的ACL
例子:查看和設(shè)置ACL
針對用戶zhangsan來設(shè)置rwx
setfacl -m u:zhangsan:rwx acltest.file
針對組nona來設(shè)置rw
setfacl -m g:nona:rw acltest.file
設(shè)置限制的權(quán)限為r
setfacl -m m:r acltest.file (mask為限制權(quán)限)
查看當前的ACL
getfacl acltest.file
設(shè)置ACL權(quán)限,如果同時設(shè)置多個權(quán)限堡牡,權(quán)限之間使用“抒抬,”分隔,同時設(shè)置多個ACL用戶和組的權(quán)限:
setfacl -m u:user1:rwx,u:user2:rw,u:user3:r,g:nona:rw testfile
刪除ACL權(quán)限
setfacl -x g:zhangsan acltest.file
一次性刪除所有ACL的權(quán)限
setfacl -b acltest.file
設(shè)置目錄默認的ACL
setfacl -d -m g:nona:rwx testdir/ - 4)備份和恢復ACL
主要文件操作命令cp和mv都支持備份時保留文件的acl悴侵,cp命令需要加上-p參數(shù)瞧剖。但是tar等常見的備份工具是不會保留目錄和文件的ACL信息的。--restore選項來恢復文件中保存的ACL可免。
例子:
查看目錄及其所有子目錄和文件當前的ACL信息
getfacl -R testdir/
備份目錄及其子目錄中文件的ACL
getfacl -R testdir/ > testdir.acl
刪除原文件所有ACL
setfacl -R -b testdir/
恢復被刪除的ACL信息
setfacl --restore testdir.acl
5.SELINUX
Selinux狀態(tài)有三種:啟用模式(enforcing)抓于,寬容模式(permissive),禁用模式(disabled)浇借。
查看當前selinux的狀態(tài):
getenforce
寬容模式設(shè)置:
setenforce 0
恢復selinux狀態(tài) :
setenfroce 1
getenforce
永久禁用selinux:
vim /etc/selinux/config
將SElinux=enforcing改為 SElinux=disabled
重啟系統(tǒng)使其生效捉撮。