2018/8/3作业

问题: 在/data/testdir里创建的新文件自动属于g1组,组g2的成员如:alice能对这些新文件有读写权限,组g3的成员如:tom只能对新文件有读权限,其它用户(不属于g1,g2,g3)不能访问这个文件夹。

groupadd g1                                 #创建g1组
groupadd g2                                 #创建g2组
groupadd g3                                 #创建g3组
makdir /data/testdir                        #创建/data/testdir目录
chmod g+s /data/testdir                     #给目录添加sgid权限
chmod g=rwx o= /data/testdir                #更改目录属组权限为读写执行,其他人无权限
chown :g1 /data/testdir                     #更改/data/testdir属组为g1
setfacl -m u:alice:rwx /data/testdir        #为目录设置alice的读写执行的facl权限
setfacl -m g:g3:rx data/testdir             #设置目录的组针对g3的facl权限

三种权限rwx对文件和目录的不同意义

对于文件
        r:可获取文件的数据
            通常是对文本文件有意义,对于二进制文件无意义。

        w:可修改文件的数据
            有写权限但是不能删除文件,但是可以清空文件。

        x可将此文件运行为进程,普通文件没有执行权限,也不应该有执行权限。
        执行权限通常针对于可执行文件和脚本文件

对于目录:
    对于目录一般给的全显示r-x或rwx或---

        r:可使用ls命令获取其下的所有文件列表,但是不能访问文件,不能cd,也不能查看文件的元数据,不支持ls -l不能查看文件的元数据。

        只有读权限
            [user2@localhost ~]$ ll /testdir/
            ls: cannot access /testdir/file3: Permission denied
            ls: cannot access /testdir/file2: Permission denied
            ls: cannot access /testdir/file1: Permission denied
            ls: cannot access /testdir/file4: Permission denied
            total 0
            -????????? ? ? ? ?            ? file1
            -????????? ? ? ? ?            ? file2
            -????????? ? ? ? ?            ? file3
            -????????? ? ? ? ?            ? file4

        w:可以获取此目录下的文件列表,即创建删除文件
            只有写权限
                    可以获取目录的列表但是不能使用ls -l,不能创建和删除文件。
            有写和执行的权限
                    可创建,删除文件。但是不能获取目录的文件列表
                    [user1@localhost ~]$ chmod 703 /testdir/

                    [user2@localhost testdir]$ touch /testdir/user2-file
                    [user2@localhost testdir]$ cd /testdir/
                    [user2@localhost testdir]$ ls
                    ls: cannot open directory .: Permission denied
                    [user2@localhost testdir]$ ll -d /testdir/
                    drwx----wx 2 user1 user1 4096 Jul 25 11:39 /
        x:可以cd至此目录中,可使用ls -l

            没有执行权限即使用户有写和读的权限依然不能操作目录下的文件。不能删除更改内容。x代表可以进入目录中。
            只有执行权限,仅是可以cd进目录,不能查看目录列表,不能使用ls -l,可以访问目录下的文件,可以追加内容(写入),但是不能删除文件。

umask和acl mask 的区别和联系

设置了mask后,除所有者其他人以外的用户和组的facl权限都不能大于mask,可以小于等于,但是更改group的权限后就会更改mask值。

与umask的区别。umask的值是用户不能默认创建文件的权限,并且权限必须是用777或666减去umask的值,精确匹配。不能小于更不能有与umask一样的权限,必须等于。

    相同点:都是限制用户权限

        umask限制用户新建文件的默认权限。
        mask限制除所有者和其他人以外的人的权限。

    不同点:严格程度不同。

        umask严格限制用户的权限精确到三位全部权限。
        mask除所有者和其他人以外的用户和组的权限可以小于等于mask但是不能多于mask

三种特殊权限的应用场景和作用

suid

功能:
    用户运行某程序时,如果此程序拥有SUID的权限,程序以其属主身份运行

应用场景:需要使用所有者身份运行但是不希望,其他人或组成员将系统环境切换至所有者身份运行。系统只有少量特殊程序如passd具有该权限。这是一个比较危险的操作。不建议将某些程序设置suid特别属主是root的。

sgid

功能:
    1、作用于目录
    一般用户创建目录时应用此权限的目录,其他用户在此目录下创建文件的属组为SGID组。不是用户的主组

    2、作用在二进制文件
    是以进程发起者的身份运行。只是该进程继承了该程序属组的权限。
    该程序,访问文件时,所有者不匹配,开始匹配所属组。匹配的是进程的属组,而不是进程发起者的基本组。

应用场景:
        作用于目录的应用,便于同一组内成员之间的文件更改使用。可以只是同一组内成员间的读写执行。其他用户可以无权限。

sticky

功能:
    对于属组或全局可写的目录组内的所有用户或系统上的所有用户在此目录中都能创建新文件或删除文件;如果为此类目录设置sticky权限,则每个用户能创建文件,且只能删除自己的文件。

应用场景:
    防止同一组下成员误删除同组人员的文档,尽管可以没有同组成员之间没有写权限,但是可以删除、覆盖。

设置user1,使之新建文件权限为rw——-

umask 177 临时生效,仅对当前shell有效。
更改~/.bashr或~/.bash_profile 写入umask 177

设置/testdir/f1的权限,使user1用户不可以读写执行,g1组可以读写 /testdir/dir的权限,使新建文件自动具有acl权限:user1:rw,g1:— 备份/testdir目录中所有文件的ACL,清除/testdir的所有ACL权限,并利用备份还原

设置权限

    [root@localhost ~]# getfacl /testdir/
    getfacl: Removing leading '/' from absolute path names
    # file: testdir/
    # owner: root
    # group: g1
    # flags: -s-
    user::rwx
    group::rwx
    other::---
    default:user::rwx
    default:user:user1:rw-
    default:group::rwx
    default:group:g1:---
    default:mask::rwx
    default:other::---

    [root@localhost ~]# getfacl /testdir/f1 
    getfacl: Removing leading '/' from absolute path names
    # file: testdir/f1
    # owner: root
    # group: g1
    user::rw-
    user:user1:---
    group::r--
    group:g1:rw-
    mask::rw-
    other::r--

备份acl

    [root@localhost ~]# getfacl /testdir/* > /testdir/acl.txt
    getfacl: Removing leading '/' from absolute path names
    [root@localhost ~]# ll /testdir/
    total 4
    -rw-rw----+ 1 root g1 116 Jul 25 13:19 acl.txt
    -rw-rw-r--+ 1 root g1   0 Jul 25 13:13 f1
    [root@localhost ~]# cat /testdir/acl.txt 
    # file: testdir/f1
    # owner: root
    # group: g1
    user::rw-
    user:user1:---
    group::r--
    group:g1:rw-
    mask::rw-
    other::r--

删除acl

    [root@localhost ~]# setfacl -Rb /testdir/
    [root@localhost ~]# getfacl /testdir/
    getfacl: Removing leading '/' from absolute path names
    # file: testdir/
    # owner: root
    # group: g1
    # flags: -s-
    user::rwx
    group::rwx
    other::---
    [root@localhost ~]# getfacl /testdir/f1 
    getfacl: Removing leading '/' from absolute path names
    # file: testdir/f1
    # owner: root
    # group: g1
    user::rw-
    group::r--
    other::r--

恢复权限

    [root@localhost ~]# setfacl -M /testdir/acl.txt /testdir/

原创文章,作者:yyw,如若转载,请注明出处:http://www.178linux.com/29295

(0)
yywyyw
上一篇 2016-08-04
下一篇 2016-08-05

相关推荐

  • 马哥教育网络班21期+第7周课程练习

    1、创建一个10G分区,并格式为ext4文件系统; (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; [root@CentOS7 ~]# fdisk /dev/sdb Command (m for help): n Select…

    Linux干货 2016-08-22
  • N22-第6周作业-冥界之王

    请详细总结vim编辑器的使用并完成以下练习题1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;    [root@CentOS6 /]# cp /etc/rc.d/rc.sysinit /tmp…

    Linux干货 2016-09-19
  • 基于samba服务的wordpress站点

    实验要求:             (1) samba server导出/data/app/web,在目录中提供wordpress;     (2) samba  client挂载nfs server导出的文件…

    2017-06-08
  • python Django分页

    自定义html_helper.py  —>  Page_helper类 #coding:utf-8 from django.utils.safestring import mark_safe class Page_Helper(object):    …

    Linux干货 2016-08-22
  • 马哥教育网络班22期第二周课程练习1-未闻花名

    1、Linux管理文件和目录的命令 命令 功能 命令 功能 pwd 显示当前目录 ls 查看目录下的内容 cd 改变所在目录 cat 显示文件的内容 grep 在文件中查找某字符 cp 复制文件 touch 创建文件 mv 移动文件 rm 删除文件 rmdir 删除目录 1.1 pwd命令 该命令的英文解释为print working directory(打…

    Linux干货 2016-08-22
  • N22-第二周博客作业

    1、Linux系统上常见的文件管理类命令有哪些,其常用的使用方法及其示例演示。 常见的文件类管理命令:cp,rm,mv cp复制文件和目录: -f, –force 强制执行 -i 显示交互信息,默认cp 带-i选项 -r,-R 递归复制目录 -s 创建一个符号链接而不复制文件 -d 复制符号链接本身 cp aa.link qqq 相当于创建qqq…

    Linux干货 2016-08-22