chmod:修改權(quán)限
chown:寫(xiě)改屬主,屬組
umask:改創(chuàng)建文件時(shí)的默認(rèn)權(quán)限,權(quán)限掩碼
set位:
? ? ? ? 對(duì)文件或目錄進(jìn)行訪問(wèn)控制時(shí),“讀取”、“寫(xiě)入”、“執(zhí)行”是最基本的三種權(quán)限類型。除此之外,在linux中還存在著SET位權(quán)限(SUID、SGID)、粘滯位(Sticky Bit)等為為文件或目錄提供額外的控制方式。
SET位權(quán)限:
? ? ? ? ?位權(quán)限多用于給可執(zhí)行的程序或腳本文件進(jìn)行設(shè)置,其中SUID表示對(duì)屬主用戶增加SET位權(quán)限,SGID表示對(duì)屬組內(nèi)的用戶增加SET位權(quán)限。執(zhí)行未見(jiàn)被設(shè)置了SUID、SGID權(quán)限后,任何用戶在執(zhí)行該文件時(shí),將獲得該文件屬主、屬組賬號(hào)對(duì)應(yīng)的身份。?
? ? ? ? ?為執(zhí)行文件添加SET位權(quán)限一般使用chmod命令實(shí)現(xiàn):?
? ? ? ? ?如使用“chmod u+s”設(shè)置SUID權(quán)限,使用“chmod +gs”設(shè)置SGID權(quán)限。?
? ? ? ? ?也可以使用數(shù)字形式,SUID對(duì)應(yīng)八進(jìn)制數(shù)字“4”、SGID對(duì)應(yīng)八進(jìn)制數(shù)字“2”:?
? ? ? ? ?如使用“chmod 4755”設(shè)置SUID權(quán)限,使用“chmod 2755”設(shè)置SGID權(quán)限,使用“chmod 6755”同時(shí)設(shè)置SUID和SGID權(quán)限?
合理利用SUID、SGID設(shè)置SET位權(quán)限,可以在確保安全性的同時(shí)為linux系統(tǒng)的管理和使用帶來(lái)方便。例如,linux系統(tǒng)中passwd命令的程序文件就被設(shè)置了SUID權(quán)限,正因?yàn)槿绱?,盡管普通用戶無(wú)法直接修改“/etc/shadow”文件,但仍然可以通過(guò)passwd命令修改自己的登錄密碼,從而以root用戶的身份間接更新shadow文件中的密碼信息。?
另一方面,若沒(méi)有確切的應(yīng)用需要,不要輕易為可執(zhí)行文件設(shè)置SET位權(quán)限,特別是那些屬主、屬組是root的執(zhí)行程序,使用SET位權(quán)限時(shí)更應(yīng)該謹(jǐn)慎。例如,若為vim編輯器程序設(shè)置SUID權(quán)限,將導(dǎo)致普通用戶也可以使用vim編輯器修改系統(tǒng)中的任何配置文件。 需要去除SUID、SGID權(quán)限時(shí),只需要使用“u-s”、“g-s”的權(quán)限模式即可。?
粘滯位權(quán)限 :
? ? ? ? 粘滯位主要用于為目錄設(shè)置特殊的附加權(quán)限,當(dāng)目錄被設(shè)置粘滯位權(quán)限后,即便用戶對(duì)該目錄有寫(xiě)入權(quán)限,也不能刪除該目錄中其他用戶的文件數(shù)據(jù)。設(shè)置了粘滯位權(quán)限的目錄,使用ls命令查看其屬性時(shí),其他用戶權(quán)限處的“x”將變?yōu)椤皌”。 使用chmod命令設(shè)置目錄權(quán)限時(shí),“chmod +t”、“chmod -t”權(quán)限模式可分別用于添加、移除粘滯位權(quán)限。將數(shù)字權(quán)限模式“nnnn”中 的第1位數(shù)字改為“1”、“0”,也可以實(shí)現(xiàn)添加移除粘滯位權(quán)限。
umask命令:
? ? ? ? 用來(lái)設(shè)置限制新建文件權(quán)限的掩碼。當(dāng)新文件被創(chuàng)建時(shí),其最初的權(quán)限由文件創(chuàng)建掩碼決定。用戶每次注冊(cè)進(jìn)入系統(tǒng)時(shí),umask命令都被執(zhí)行, 并自動(dòng)設(shè)置掩碼mode來(lái)限制新文件的權(quán)限。用戶可以通過(guò)再次執(zhí)行umask命令來(lái)改變默認(rèn)值,新的權(quán)限將會(huì)把舊的覆蓋掉。
用戶權(quán)限管理 -ACL(訪問(wèn)控制管理):
setfacl
? ? ? ? ? 功能 : 修改本地文件 / 目錄的 ACL權(quán)限
getfacl
? ? ? ? ? 功能 : 查看本地文件 / 目錄的 ACL權(quán)限
文件屬性:
chattr
? ? ? ? ?功能 : 更改文件 / 目錄的屬性
lsattr
? ? ? ? ?功能 : 顯示文件 / 目錄的權(quán)限
su:切換用戶
sudo命令用來(lái)以其他身份來(lái)執(zhí)行命令,預(yù)設(shè)的身份為root。在/etc/sudoers中設(shè)置了可執(zhí)行sudo指令的用戶。若其未經(jīng)授權(quán)的用戶企圖使用sudo,則會(huì)發(fā)出警告的郵件給管理員。用戶使用sudo時(shí),必須先輸入密碼,之后有5分鐘的有效期限,超過(guò)期限則必須重新輸入密碼。
第一個(gè)ALL是指網(wǎng)絡(luò)中的主機(jī),我們后面把它改成了主機(jī)名,它指明foobar可以在此主機(jī)上執(zhí)行后面的命令。第二個(gè)括號(hào)里的ALL是指目標(biāo)用戶,也就是以誰(shuí)的身份去執(zhí)行命令。最后一個(gè)ALL當(dāng)然就是指命令名了。例如,我們想讓foobar用戶在linux主機(jī)上以jimmy或rene的身份執(zhí)行kill命令,這樣編寫(xiě)配置文件:
foobar? ? ALL=(jimmy,rene)? ? ?ALL
?
用戶管理
分散式管理
集中式管理
用戶信息保存文件及位置? /etc/passwd
用戶密碼保護(hù)文件及位置/etc/shadow
linux組的信息保存位置 ??/etc/group? ??
兩個(gè)建立用戶的自定義配置文件
/etc/default/useradd
/etc/login.defs?
vim /etc/passwd
第一列?賬號(hào)名
第二列?密碼
第三列 UID
第四列 GID?
第五列?備注信息
第六列 賬戶目錄位置
第七列?賬號(hào)使用的shell
vim /etc/shadow
第一列?賬號(hào)名
第二列?密碼
第三列?密碼自新紀(jì)元 (1970-1-1) 起到用戶前一次 修 改密碼的天數(shù)
第四列?密碼前次與下一次修改的時(shí)間間隔 , 一般為“ 0”位不設(shè)定,可隨時(shí)修改 ?? ??
第五列?密碼最大有效其時(shí)間 ( 天 ), 默認(rèn)為 99999 天
第六列?密碼失效前 , 提前 N( 天 ) 通知警告用戶
第七列?密碼失效后 , 寬限期天數(shù) . 此段設(shè)置可以確 保 密碼失效后延長(zhǎng) N 天在將密碼失效
第八列?賬號(hào)有效期
第九列?保留
屬主屬組管理
useradd (adduser)? 名字? ? ?添加賬戶
-u?指定賬戶UID
-g: 指定賬戶初始化 ( 起始 ) 組 (passwd 區(qū)域 4)???
-d: 指定賬戶的主目錄 (passwd 區(qū)域 6)
-s: 指定新建賬戶所使用的 shell(passwd 區(qū)域 7)???
useradd -g root -d /admin -s /bin/bash -u 614 test
賬戶名為test?初始組為root?賬戶主目錄為/admin?所使用的shell為bash?uid為614?
usermod?修改用戶
usermod -aG root test?把賬戶test添加到root組
usermod -G game zhangsan? 添加附加組
useramod -g vfast tom? tom的主要組為vfast
usermod -u 2000 harry
useradd -G game zhangsan? 把zhangsan添加到game組(zhangsan是之前不存在用戶)
useradd -d /home/body cjk? 把cjk的家目錄設(shè)為body
usermod -s /sbin/nologin tom? ? ? ?tom用戶的登陸shell為非交互式
? ? ? ? ? ? ? ? ? ? /bin/bash
userdel?賬戶??刪除用戶
groupadd?組名? 創(chuàng)建組
groupmod -n?qqq?test?把組名test改為qqq
gpasswd?test? 設(shè)定密碼
gpasswd -A aa -M aa,bb,cc test? ?組為test。aa為管理員?bbcc賬戶為組員
gpasswd -d aa admin? 將aa從admin組中移除
gpasswd -a aa admin? 將aa添加到admin組中
修改密碼
passwd?name??設(shè)定修改密碼(密碼不可見(jiàn))
passwd --stdin?name? 設(shè)定修改密碼(密碼可見(jiàn))
echo “123” |?passwd --stdin?name? 直接給用戶設(shè)定密碼
-l 鎖定指定賬號(hào)
-u?解鎖指定賬號(hào)?? ?
-d?清空指定賬號(hào)口令
id?賬戶? ?查看當(dāng)前用戶UID GID? 組名 ?
-un: 顯示賬戶名? ? ? ? ? ? ? ? ? ? ??
?-gn: 顯示初始組組名?
-Gn: 顯示附加組組名
who? 查看當(dāng)前所有登錄信息
whoami? ?顯示賬戶
last? 顯示賬戶最后登錄時(shí)間
lastlog?顯示最近所有賬戶最后登錄時(shí)間
權(quán)限管理
chmod??改變文件目錄的權(quán)限
chmod u+rw,g+rw,o+r test?? ? ?u屬主?g屬組 o其他人? 加權(quán)限
chmod?u-rw,,g=x,o-rw? test? ? ? ?減權(quán)限
chmod?o-rwx /var/tmp/fstab? 其他用戶無(wú)權(quán)限
chmod 666 test??
chmod 4644 test? ?讓其他用戶以屬主身份執(zhí)行可執(zhí)行程序(suid)
chmod 2644?test? ? ? ?sgid
chmod 1777?test? ? ? ?黏貼位?確保用戶僅可以刪除自己的文件
chmod u-s test? (g)?
chmod u+s?
Set 位?
suid: 讓其他用戶以屬主身份執(zhí)行可執(zhí)行程序??
sgid: 讓其他用戶以屬組身份執(zhí)行可執(zhí)行程序
sticky: 黏貼位 , 確保用戶僅可以刪除自己的文件
umask?改創(chuàng)建文件時(shí)的默認(rèn)權(quán)限,權(quán)限掩碼
?默認(rèn)權(quán)限:0022? 文件666? 目錄777
chown改變屬主屬組
chown test config?改變config的屬主位test賬戶
chown .test?config --------------組---------
chown -RV?aa.aa config? 改變config目錄及子目錄的屬主組權(quán)限
chown root:root /var/tmp/fstab? 把文件的屬主屬組都改為root
chgrp game test? ?把test文件的屬組改為game組
-R?遞歸
-v?顯示詳細(xì)信息
getfacl config?查看本地文件ACL權(quán)限(不同角色分配不同權(quán)限)
setfacl -m u:aa:rw,g:aa:rw config? ? 給aa對(duì)文件config文件用有rw權(quán)限
setfacl -R -m u:aa:rwx test? ? ?目錄及子目錄
setfacl -x u:aa test? ?去掉aa對(duì)test中的ACL權(quán)限
setfacl -b?test?去掉test中所有ACL權(quán)限
chattr +i test? ? ?給test增加i只讀屬性
lsattr test? ?顯示目錄/文件權(quán)限
su?test? root切換到test?繼續(xù)使用root的shell環(huán)境
su -?test? 用test的shell環(huán)境
sudo賦予普通用戶特殊權(quán)限
配置文件位于/etc/sudoers