課堂習題
1.當用戶xiaoming對/testdir 目錄無執行權限時,意味著無法做哪些操作?
答:不能cd進該目錄
2.當用戶xiaoqiang對/testdir 目錄無讀權限時,意味著無法做哪些操作?
答:不能查看目錄內的文件列表,不能cd,也不能查看目錄里面文件的元數據
3.當用戶wangcai 對/testdir 目錄無寫權限時,該目錄下的只讀文件file1是否可修改和刪除?
答:不能修改不能刪除
4.復制/etc/fstab文件到/var/tmp下,設置文件所有者為wangcai讀寫權限,所屬組為sysadmins組有讀寫權限,其他人無權限
[root@centos6 ~]# cp -r /etc/fstab /var/tmp/ [root@centos6 ~]# chown wangcai:sysadmins /var/tmp/fstab [root@centos6 ~]# chmod g=rw,o= /var/tmp/fsta
5.誤刪除了用戶wangcai的家目錄,請重建并恢復該用戶家目錄及相應的權限屬性
[root@centos6 ~]# rm -rf /home/wangcai [root@centos6 ~]# mkdir /home/wangcai [root@centos6 ~]# cp -r /etc/skel/. /home/wangcai/ [root@centos6 ~]# chown -R wangcai: /home/wangcai/ [root@centos6 ~]# chmod 700 /home/wangcai/
6.創建sysadmins組,將用戶user1,user2,user3加入sysadmins組中,將user3設置為sysadmins的管理員,用user3 登錄,將user2從組中移除,設置 sysadmins的密碼centos,設置user1 在創建新文件時,文件的所屬組為sysadmins,刪除user1…3,刪除sysadmins
[root@centos ~]# groupadd sysadmins [root@centos ~]# useradd -G sysadmins user1 [root@centos ~]# useradd -G sysadmins user2 [root@centos ~]# useradd -G sysadmins user3 [root@centos ~]# gpasswd -A user3 sysadmins [user3@centos ~]$ gpasswd -d user2 sysadmins Removing user user2 from group sysadmins [user3@centos ~]$ gpasswd sysadmins Changing the password for group sysadmins New Password: Re-enter new password: [root@centos ~]# usermod -g sysadmins user1 [user1@centos ~]$ touch a [user1@centos ~]$ ll a -rw-r--r--. 1 user1 sysadmins 0 Aug 4 12:31 a [root@centos ~]# userdel -r user1 userdel: group user1 not removed because it is not the primary group of user user1. [root@centos ~]# userdel -r user2 [root@centos ~]# userdel -r user3 [root@centos ~]# groupdel sysadmins
7.在/data/testdir里創建的新文件自動屬于g1組,組g2的成員如:alice能對這些新文件有讀寫權限,組g3的成員如:tom只能對新文件有讀權限,其它用戶(不屬于g1,g2,g3)不能訪問這個文件夾。
[root@centos ~]# useradd alice [root@centos ~]# mkdir /data/testdir [root@centos ~]# groupadd g1 [root@centos ~]# groupadd g2 [root@centos ~]# groupadd g3 [root@centos ~]# chgrp g1 /data/testdir [root@centos ~]# chmod 2770 /data/testdir [root@centos ~]# setfacl -m g:g2:rw /data/testdir [root@centos ~]# setfacl -m g:g3:rw /data/testdir [root@centos ~]# setfacl -m d:g:g2:rw /data/testdir [root@centos ~]# setfacl -m d:g:g3:r /data/testdir [root@centos ~]# gpasswd -a tom g2 [tom@centos ~]$ touch f /data/testdir [root@centos ~]# ll /data/testdir
作業
1.三種權限rwx對文件和目錄的不同意義
權限對于文件的意義:
r: 可使用文件查看類工具獲取其內容
w: 可修改內容,可破壞內容,但不能刪除文件本身
x: 針對二進制可執行的程序或腳本,可以把此文件提請內核啟動為一個進程,普通文件不需要執行權限
權限對于目錄的意義:
r: 可以使用ls命令查看目錄內容的文件信息
w: 可以創建、刪除文件
x: 可以使用ls -l命令來查看目錄內容的文件信息,并且可以使用cd命令切換此目錄為工作目錄
2.umask和acl mask 的區別和聯系
區別:
(1)umask備份數據的時候,權限不會丟失,facl就會丟失
(2)umask對于批量對其他用戶和組的設置比較方便,但是對個人設置權限就不行
facl對于批量設置對其他用戶設置比較麻煩,但是對個人或者個別人設置就很靈活
(3)umask能通過augo的模型、rwx模型、和八進制的模型來設置權限,facl只能通過rwx模型來設置權限
聯系:
(1)都能通過一定的規則來限制其他用戶的默認權限
(2)都能限制用戶和組的權限
3.三種特殊權限的應用場景和作用
SUID:
當一個用戶去運行該程序的時候,該用戶繼承所有者的權限。SUID只能應用在二進制程序里面,不能作用在目錄上面
SGID:
(1)如果應用在二進制程序里面,啟動為進程之后,其進程的屬主為原程序文件的屬組,這種情況跟SUID功能類似(2)如果應用在目錄里面,所有用戶在此目錄下面創建的文件(包括子目錄)的時候的屬組跟目錄的屬組一致。此作用通常用于創建一個協作目錄。
STICKY 粘滯位:
具有寫權限的目錄通常用戶可以刪除該目錄中的任何文件,無論該文件的權限或擁有權,在目錄設置Sticky位,只有文件的所有者或root可以刪除該文件。STICKY位作用在文件上面的話沒有用。
SUID,SGID,和STICKY都必須要配合有x的權限的。
4.設置user1,使之新建文件權限為rw – – – – – – –
[user1@centos ~]$ echo 'umask 0266' >> .bashrc [user1@centos ~]$ exit [user1@centos ~]$ touch b [user1@centos ~]$ ll total 0 -rw-------. 1 user1 user1 0 Aug 4 23:53 b
5.設置/testdir/f1的權限,使user1用戶不可以讀寫執行,g1組可以讀寫
/testdir/dir的權限,使新建文件自動具有acl權限:user1:rw,g1:—
備份/testdir目錄中所有文件的ACL,清除/testdir的所有ACL權限,并利用備份還原
[root@centos testdir]# setfacl -m u:user1:r f1 [root@centos testdir]# setfacl -m g:g1:rw f1 [root@centos testdir]# getfacl f1 # file: f1 # owner: root # group: root user::rw- user:user1:r-- group::r-- group:g1:rw- mask::rw- other::r--
[root@centos testdir]# setfacl -m d:u:user1:rw /testdir/dir/ [root@centos testdir]# setfacl -m d:g:g1:--- /testdir/dir [root@centos testdir]# getfacl /testdir/dir getfacl: Removing leading '/' from absolute path names # file: testdir/dir # owner: root # group: root user::rwx group::r-x other::r-x default:user::rwx default:user:user1:rw- default:group::r-x default:group:g1:--- default:mask::rwx default:other::r-x
[root@centos testdir]# getfacl -R * > /root/acl.bak [root@centos testdir]# setfacl -Rb * [root@centos testdir]# setfacl -R --set-file=/root/acl.bak *
原創文章,作者:~微風~,如若轉載,請注明出處:http://www.www58058.com/29299