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:rxsetfacl -M file.acl house/
-
- 通过文件删除acl
file.del 内容如下
u:liubei
g:shuguo
setfacl -X file.del house/
- 通过文件删除acl
-
- 默认权限
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
转载于:https://blog.51cto.com/11912662/2123407