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