8.3_Linux习题和作业

课堂习题

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