三種權限rwx對文件和目錄的不同意義
文件:r:可以cat查看文件中的內容,可以查看文件的屬性
w:可以ll查看文件的屬性,也可以往文件中寫入內容,如果其父目錄具有寫和執行權限就可刪除其內部文件
x:針對二進制程序或腳本,沒有讀權限也可以執行二進制
目錄:
r:可以ls查看文件,看不到權限等元數據,不能cd進不去目錄
w:可以創建或刪除目錄中的文件,但需要配合x使用
x:可以進入目錄,可以訪問目錄中的文件
注意:只要對目錄寫和執行,就可以刪除目錄中的文件
2.umask和acl mask的區別和聯系
umask是針對管理員和普通用戶設置的權限,管理員默認時022,普通用戶時002,當我們在配置文件中配置umask的值時,就可以定義用戶創建文件或目錄時的默認權限,也可以說是限制了ugo的權限。
管理員文件的權限和umask的關系為:666-022=644,如果計算結果中有基數,則加1,例如666-123=543 ->644
管理員目錄的權限和umask的關系為:777-022=755
mask是在指定給某些用戶或者組設置ACL權限時,針對除了屬主和other之外的人,其中包括屬組和添加ACL的用戶和組,限制了他們的權限,不能超過mask的權限,mask在使用時需要注意的是,當我們設置了ACL權限時,如果設置組的權限chmod g=rw file|dir,等同于設置了mask的權限,此時所有設置了ACL權限的人和文件或目錄的數組都會改變。
3.三種特殊權限的應用場景和作用
文件的特殊權限
suid
面向對象:二進制程序 chmod u+s file
作用:用戶發起進程訪問文件時,不在是以用戶自己的身份來訪問,而是以進程屬主的身份來訪問。
應用場景:passwd 所有用戶都需要執行的二進制程序,直接給管理員的程序,不用單獨給某些用戶添加加權限。
-rwsr-xr-x. 1 root root 30768 11月 24 2015 /usr/bin/passwd —–此時我們就是以passwd的數主roor身份運行。
sgid
面向對象:文件、目錄 chmod g+s file | dir
作用:
目錄:用戶在該目錄下創建文件時,文件的屬組不在是以自己的身份創建,而是以該目錄數組的身份創建。
文件:用戶發起進程訪問文件時,不在是以用戶自己的身份來訪問,而是以進程屬組的身份來訪問。
應用場景:
目錄:比如組內同事,以某一特定的權限共享將一些文件或目錄給大家,這樣避免單獨給多個文件分別設置權限。
文件:
sticky
面向對象:目錄
作用:用戶在該目錄下可以自由的創建改文件,但是不能刪除非自己創建的文件
應用場景:/tmp 所有用戶都可以編輯,但是不能刪除別人的文件
4.設置user1,使之新文件權限為rw——-
1 [user1@cenots6 ~]$ touch a 2 [user1@cenots6 ~]$ ll a 3 -rw-rw-r--. 1 user1 user1 0 8月 4 23:49 a 4 [user1@cenots6 ~]$ echo umask 066 >> .bashrc 5 [user1@cenots6 ~]$ source .bashrc 6 [user1@cenots6 ~]$ touch b 7 [user1@cenots6 ~]$ ll b 8 -rw-------. 1 user1 user1 0 8月 4 23:50 b
5.設置/testdir/f1的權限,使user1用戶不可以讀寫執行,g1組可以讀寫
setfacl -m u:user1:0,g:g1:rw /testdir/f1
/testdir/dir的權限,使新建文件自動具有acl權限:user1:rw,g1:—備份/testdir目錄中所有文件的ACL
setfacl -m d:u:user1:rwx,g:d:g1:rwx /testdir/dir setfacl -m d:u:user1:rw,g:d:g1:0 /testdir/dir
清除/testdir的所有ACL權限,并利用備份還原
getfacl -R /testdir >acl.txt setfacl -R -b /testdir setfacl -R -set-file=acl.txt /testdir getfacl -R /testdir
6. 在/testdir里創建的新文件自動屬于g1組,組g2的成員如: alice能對這些新文件有讀寫權限,組g3的成員如: tom只能對新文件有讀權限,其它用戶(不屬于g1,g2,g3)不能訪問這個文件夾。
解題思路:
新建文件自動屬于g1組–>對目錄加sgid權限
g2組成員對新文件有讀寫權限–>首先要對目錄有rwx權限,否則,不能進入目錄更不能讀寫目錄中的內容
其它用戶不能訪問這個文件夾–> 需要將other設置為0即可
設置如下:
root@cenots6.8 /testdir # chown :g1 /testdir/ root@cenots6.8 /testdir # chmod 2770 /testdir/ root@cenots6.8 /testdir # ll -d /testdir/ drwxrws---. 2 root g1 4096 8月 6 16:13 /testdir/ root@cenots6.8 /testdir # setfacl -m g:g2:rwx /testdir/ root@cenots6.8 /testdir # setfacl -m g:g3:rwx /testdir/ root@cenots6.8 /testdir # setfacl -m d:g:g2:rwx /testdir/ root@cenots6.8 /testdir # setfacl -m d:g:g3:r /testdir/ root@cenots6.8 /testdir # getfacl /testdir/ getfacl: Removing leading '/' from absolute path names # file: testdir/ # owner: root # group: g1 # flags: -s- user::rwx group::rwx group:g2:rwx group:g3:rwx mask::rwx other::--- default:user::rwx default:group::rwx default:group:g2:rwx default:group:g3:r-- default:mask::rwx default:other::--- root@cenots6.8 /testdir # gpasswd -a alice g2 ---alice 加入到g2 組中,讀寫aa文件成功 正在將用戶“alice”加入到“g2”組中 root@cenots6.8 /testdir # touch aa root@cenots6.8 /testdir # su alice alice@cenots6.8 /testdir # cat aa alice@cenots6.8 /testdir # echo hello >>aa root@cenots6.8 /testdir # gpasswd -a tom g3 ---將alice加入到g3組中,可以讀不能寫,滿足條件 正在將用戶“tom”加入到“g3”組中 root@cenots6.8 /testdir # su tom tom@cenots6.8 /testdir # cat aa hello tom@cenots6.8 /testdir # echo hello>>aa bash: aa: 權限不夠 tom@cenots6.8 /testdir # rm aa rm:是否刪除有寫保護的普通文件 "aa"?y--->此時tom可以刪除/testdir中的內容,原因:組對目錄有wx權限 tom@cenots6.8 /testdir #
7. 當用戶xiaoming對/testdir 目錄無執行權限時,意味著無法做哪些操作?
不能:cd ll /testdir/file1
能:ls /testdir ll /testdir
當用戶xiaoqiang對/testdir 目錄無讀權限時,意味著無法做哪些操作?
不能:l1 /testdir/
能:cd touch mkidr
當用戶wangcai 對/testdir 目錄無寫權限時,該目錄下的只讀文件file1是否可修改和刪除?
不能修改和刪除
復制/etc/fstab文件到/var/tmp下,設置文件所有者為wangcai讀寫權限,所屬組為sysadmins組有讀寫權限,其他人無權限
cp /etc/fstab /var/tmp chown wangcai:sysadmins /var/tmp/fstab chmod o= /var/tmp/fstab
誤刪除了用戶wangcai的家目錄,請重建并恢復該用戶家目錄及相應的權限屬性
useradd wangcai rm -rf ~wangcai mkdir /home/wangcai chown wangcai:wangcai /home/wangcai chmod 700 /home/wangcai cp -r /etc/skel/. ~wangcai
原創文章,作者:Naruto,如若轉載,請注明出處:http://www.www58058.com/29362
文章對特殊權限的用法及應用場景有了完整的總結,如果能在文章中加入自己練習過程中的模擬場景在以后的復習過程中會看起來更直觀哦。