安全上下文

  cat --> /bin/cat

  openstack: /bin/cat /etc/fstab

   /etc/shadow

  openstack, passwd, /etc/shadow

  s: suid, set uid,属主有s权限,意味着用户在执行此程序时,其进程的属主不再是发起者本人,而是这个程序文件的属主;

      s:属主原有执行权限

      S:属主无执行权限

     chmod u(+|-)s /path/to/somefile

  s: sgid, set gid,属组有s权限,意味着执行此程序时,其进程的属组不再是运行者本人所属的基本组,而是此程序文件的属组;

      chmod g+|-s /path/to/somefile

      t: sticky, 粘贴位,附加other的权限上,表现为t

      t:other原有执行权限

      T:other执行权限

     chmod o+|-t /path/to/somefile

  suid,sgid,sticky

        ugt   000--------->0

              001:--------->1

              010:--------->2

              100:--------->3

              011:--------->4

              101:--------->5

              110:--------->6

              111:--------->7

  chmod 6664 /tmp/a.txt  其中6664的第一位的数字6表示:属主有s权限,属组有s权限其它无t权限。

   umask: 0022

     /tmp/test

   chmod g+s,o+t /tmp/test

   chmod 3775 /tmp/test

   chown :mygrp /tmp/test修改组名

FACL: 文件访问控制列表

   hadoop: /var/tmp/test.txt

    hadoop, hadoop

    hadoop希望能够让hive写此文件,他该如何进行?因为他不能把hive用户设置为属主,并且也不能让hive加入hadoop组,所以只能修改other的权限有写权限;

   acl: 用于实现在原有的访问控制机制之外补充一种文件访问控制机制

用户访问文件

1、用户是否为文件属主?

2、用户是否有特定的访问控制条目?

3、用户是否属于文件属组?

4、用户所属的组是否有特定的访问控制条目?

5、其它。

   getfacl /path/to/somewhere: 查看文件或目录的访问控制列表;

   setfacl -m u:USERNAME:MODE /path/to/somewhere: USERNAME指定的用户设定对文 件/path/to/somewhere具有MODE访问权限;

   setfacl -m g:GROUPNAME:MODE  /path/to/somewhere: GROUPNAME指定的组设定对文件/path/to/somewhere具有MODE访问权限;

   setfacl -x u:USERNAME /patn/to/somewhere 取消USERNAME指定的用户具有s权限

   setfacl -x g:GROUPNAME /path/to/somewhere  取消USERNAME指定的具有s权限

  额外挂载的文件系统默认不支持acl,如果要支持,

方法1

  mount -o acl DEVICE MOUNT_POINT

   永久有效:需要编辑/etc/fstab,在挂载选项后附加acl选项;

方法2:设定分区的默认挂载选项中有acl,则挂载时无须再指定acl

    tune2fs -o acl DEVICE

  取消此默认挂载选项:

    tune2fs -o ^acl DEVICE

    hadoop: 文件/var/tmp/hadoop.txt664

 拒绝hive用户对此的任何访问;

    setfacl -m u:hive:--- /var/tmp/hadoop.txt

例:复制文件/var/log/messages/data目录, 其属主为root用户,且有读写权限,属组为root组,且有读写权限;可以被任何人读取,可以被gentoo用户和magedu组读写,但centos用户没有任何访问权限;

解析:首先要确保有data目录,

# mkdir /data

复制文件/var/log/messages/data目录

# cp /var/log/messages /data

修改权限

# chmod 664 /data/mesages

可以被gentoo用户和magedu组读写,就要设置gentoo用户和magedu具有rw权限

# setfacl -m u:gentoo:rw /data/mesages    

# setfacl -m g:magedu:rw /data/mesages  

centos用户没有任何访问权限  

# setfacl -m u:centos:--- /data/mesages