课堂习题
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.178linux.com/29299