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