linux文件的权限及特殊权限位

文件的权限

rw-     r--    r--  
owner  group  other

普通文件

**当仅r权限作用在文件上的时候,表示用户可以读取该文件的内容
*当仅w权限作用在文件上的时候,表示用户可以修改该文件的内容
当仅x权限作用在文件上的时候,没有意义。
**当rw同时作用在文件上的时候,表示用户可以读写文件
**当rx同时作用在文件上的时候,表示用户可以读且可以执行该文件
当wx同时作用在文件上的时候,权限与仅w相同
**当rwx同时作用在文件上的时候,用户可以读写执行。

目录

当仅r权限作用在目录上的时候,表示用户可以短列出查看目录下的文件名
当仅w权限作用在目录上的时候,没有意义
*当仅x权限作用在目录上的时候,表示用户可以进入且可以访问目录下的文件,但不能列出文件名
当仅rw权限同时作用在目录上的时候,权限等同于仅r权限作用在目录
**当仅rx权限同时作用在目录上的时候,表示用户可以进入,可以访问子文件,同时可以长列出文件
*当仅wx权限同时作用在目录上的时候,表示用户可以进入,可以访问子文件,可以创建及删除,但不能列出
**当rwx权限同时作用在目录上的时候,表示用户有完整权限
X 对于批量增加x权限时,可以跳过文件而只对目录加x

 chmod --reference 
 -R  可以递归修改权限
  r:4
  w:2
  x:1

  7:rwx
  6:rw
  5:rx
  4:r
  3:wx
  2:w
  1:x     

 umask

     表示用户创 建文件的默认权限,目录最高777,文件最高666
     umask xxx 设置umask
     umask   查看umask
     ~/.bashrc 将umask设定保存以让下次登录时仍然有效
     umask -S 显示创建目录的默认权限

作业:

1、复制/etc/fstab文件到/var/tmp下,设置文件所有者为wangcai读写权限,所属组为sysadmins组有读写权限,其他人无权限
cp /etc/fstab /var/tmp;
useradd wangcai;
groupadd sysadmins;
chown wangcai.sysadmins /var/tmp/fstab;
chmod u=rw,g=rw,o= /var/tmp/fstab

2、误删除了用户wangcai的家目录,请重建并恢复该用户家目录及相应的权限属性
rm -rf /home/wangcai
mkdir -p /home/wangcai
cp cp -rf /etc/skel/.[^.]* /home/wangcai/
  • suid

    suid: 对于可执行的二进制文件作用了suid权限之后,任何人在执行该文件时,可临时拥 有其所属人的权限
    chmod u+s
    chmod 4777 suid

  • sgid

    sgid: 对于可执行的二进制文件作用了sgid权限之后,任何人在执行该文件时,可临时拥 有其所属组的权限
    对于目录作用了sgid权限之后,任何人在该目录下创建的文件的所属继承目录的所属组
    chmod g+s
    chmod 2777 sgid

  • sticky

    sticky:对于目录作用了sticky之后,该目录下的文件及子目录,仅其所属人和目录的所属 人及root才能删除。
    chmod o+t
    chmod 1777 sticky

    • 设定文件特定属性

    chattr +a 不可修改,可以追加,不能删除
    chattr +i 什么也不做,只能读

    lsattr filename 查看文件是否有特定属性

    • ACL 权限

    Cenots6: 新建分区默认没有acl支持,开启的方法.
    fdisk /dev/sda
    n回车
    回车

    • 500M 回车
      w回车
      partx -a /dev/sda 通知内核更新分区表
      mkfs.ext4 /dev/sda6
      tune2fs -l /dev/sda |grep acl
      none
      tune2fs -o acl /dev/sda6
      tune2fs -l /dev/sda |grep acl
      acl
      Centos7:无论何时都支持acl
    • 文件的权限执行顺序

    owner > acl user > group acl group 谁多谁优先 > other设置
    setfacl -m u|g:username|groupname:rwx filename|dirname
    setfacl -x u|g:username|groupname filename|dirname
    setfacl -b filename |dirname
    setfacl -m m:r-x filename|dirname 或 chmod g=rx filename |dirname

      • 通过文件设置acl

      file.add 内容如下
      u:liubei:rwx
      g:shuguo:rx

      setfacl -M file.acl house/

      • 通过文件删除acl
        file.del 内容如下
        u:liubei
        g:shuguo

      setfacl -X file.del house/

      • 默认权限
        setfacl -m d:u:liubei:rwx house
        setfacl -Rm u:liubei:rwx house
  • getfacl house
    file: .
    owner: root
    group: root
    -------------------------- setfacl -Rm u:liubei:rwx house
    user::rwx
    user:liubei:rwx
    group::r-x
    mask::rwx
    other::r--

    -------------------------setfacl -m d:u:liubei:rwx house
    default:user::rwx
    default:user:liubei:rwx
    default:group::r-x
    default:mask::rwx
    default:other::r-x

setfacl -k house/ 仅删除默认权限

  • 实验:包含acl权限的目录使用打包工具备份及恢复

    1.备份
    tar -cvf house.tar house
    getfacl -R house > acl.txt
    2.还原
    tar -xvf house.tar -C /var/tmp
    cp acl.txt /var/tmp
    setfacl --restore acl.txt