Linux 第六天: (08月03日) 練習和作業
當用戶xiaoming對/testdir目錄無執行權限時, 無法做哪些操作?
無法 ls -l 無法cd
當用戶xiaoqiang對/testdir目錄無讀權限時, 無法做哪些操作?
無法查看目錄文件列表
當用戶wangcai對/testdir目錄無寫權限時, 該目錄下只讀文件file是否可以修改刪除?
無法刪除文件 無法創建文件 可以修改文件
復制/etc/fstab到var/tmp, 設置所有者wangcai讀寫權限, 屬組sysadmins組讀寫權限, 其它無權限
groupadd sysadmins
cp /etc/fstba /var/tmp/
ll /var/tmp/fstab
chown wangcai:sysadmins /var/tmp/fstab
chmod ug=rw /var/tmp/fstab
ll /var/tmp/fstab
誤刪了用戶wangcai的家目錄, 請重建並恢復該用戶家目錄及相應權限屬性
cp -r /etc/skel USERdir
chown -R USER:USER USERdir/
chmod 700 USERdir
在/data/testdir裡創建的新文件自動屬於g1組,
組g2的成員如:alice能對這些新文件有讀寫權限,
組g3的成員如:tom只能對新文件有讀權限,
其它用戶(不屬於g1,g2.g3)不能訪問這個文件夾
mkdir testdir
groupadd g1
groupadd g2
groupadd g3
charp g1 testdir 更改目錄所有者
chmod 2770 testdir
charp g1 testdir
setfacl -m g:g2:rw testdir
setfacl -m g:g3:r testdir
getfacl testdir
三種權限rwx對文件和目錄的不同意義
文件
r 查看內容
w 修改內容
x 提請啟動到進程
目錄
r 查看目錄文件列表
w 創建文件刪除文件
x ls-l查看文件列表, cd進入此目錄
umask和acl mask區別和聯系
umask值是默認的文件或目錄擁有的權限
ACL mask對每個文件或目錄能不相同
三種特殊權限的應用場景和作用
SUID
應用場景: 只能作用在二進制的可執行文件,也就是說它本身運行起來就是一個進程
效果: 沒有suid權限的二進制文件,能否執行取決於當前用戶有無對該文件執行權限,
執行之後,進程的擁有者也是當前系統用戶。 被服務suid後,當文件被運行後,進程的擁有者不是系統當前的用戶,而是文件的所屬者
作用: chmod u+s 文件
SGID
SGID權限分為兩種情況
作用在文件上,文件被賦予SGID的權限,無論當前的用戶有無執行權限,用戶運行該程序,會自動繼承該程序所屬組的權限
命令:chmod g+s 文件
作用在目錄上,作用效果完全不同於文件,該目錄內新建的文件或則目錄的所屬組會自動繼承該目錄的所屬組
命令:chmod g+s 目錄
Sticky 一個文件一旦被賦予Sticky位的話,只有文件的所有者或root才可以刪除該文件
Sticky為是作用在目錄下,當目錄設置為Sticky位的話,目錄下只能被root用戶和文件所有者刪除
命令格式:
chmod o+t DIR ..
chmod o-t DIR ..
stickyid
o+t 針對目錄,當一個目錄上有t權限時,這個目錄中的文件只能被文件擁有者刪除
chmod o+t directroy
chmod 1777 directory
sgid
g+s 針對目錄,在目錄中創建的文件都自動歸屬到目錄所在組,針對二進制文件,文件內記錄的程序在執行時和執行者的組身份沒有關系,而是以二進制文件的所有組的身份執行的
chmod g+s file|directory
chmod 2777 file|directory
suid
u+s 針對文件,文件記錄動作在執行時是以文件所有人身份執行的,與是誰發起的無關
chmod u+s file
chmod 4777 file
設置/testdir/f1的權限,使user1用戶不可以讀寫執行,g1組可以讀寫
設置/testdir/dir的權限,使新建文件自動具有acl權限 user1:rw,g1:---
備份/testdir目錄中所有文件的ACL,清除/testdir的所有ACL權限,並利用備份還原
mkdir /testdir/f1
mkdir /testdir/dir
useradd user1
groupadd g1
setfacl -m u:user1 /testdir/f1
setfacl -m g:g1 rw /testdir/f1
setfacl -m d: u:user1 rw /testdir/dir
setfacl -m d: g:g1:0 /testdir/dir
setfacl -R --set-file=acl.txt /testdir
setfacl -b /testdir
getfacl -R /testdir
在/data/testdir裡創建的新文件自動屬於g1組,
組g2成員alice對新文件有讀寫權限,
組g3成員tom只對新文件有讀權限,
其它用戶(不屬於g1,g2,g3)不能訪問這個文件夾
mkdir /data/testdir
chown g1 /data/testdir
chmod g+s /data/testdir
setfacl m g:g2 rw /data/testdir
setfacl m g:g3 r /data/testdir
setfacl m g:o /data/testdir