Linux文件ACL和压缩归档
文件权限管理的拓展
标志位:-rwsrwxrwx
SUID:当一个文件带有suid时,文件默认加上可执行权限,且所有人临时具有管理员权限来执行。
标志位:-rwxrwsrwx
SGID:当一个目录文件带有sgid时,所有用户在此目录下创建文件的属组都是此目录的基本组。
标志位:-rwxrwxrwt
sticky:当一个目录文件带有sticky时,所有用户在此目录中不能删除属主不是自己的文件。
实际应用:
现有2普通用户redhat和gentoo,想让他们两个都能访问develop文件夹,且双方能够修改彼此创建的文件,但不能删除。
解决办法:
1. 创建文件develop
mkdir develop
新建组devgrp并把develop的基本组改为此组
groupadd devgrp
chown :devgrp develop
修改文件夹权限成-rwxrws—T
chomod 3770 develop #首位3表示两用户创建的文件的属组都是devgrp,实现他们能够同构组权限来相互修改对方的文件,且不能删除。
2. 给两用户添加附加组devgrp
usermod –aG devgrp redhat
usermod –aG devgrp gentoo
系统默认权限umask的概念
在不同用户新建文件时文件的权限是有系统默认设定的:
目录文件=777 –umask
普通文件=666 –umask
如果计算结果为奇数,加一后作为最终权限(防止生成执行权限)
文件的访问控制列表file access control list
实现目的给普通用户控制访问自己文件规则的权限。
acl添加:
setfacl –m u:用户名:权限 文件#给指定用户添加文件的权限
setfacl –m g:组名:权限 文件 #给指定组添加文件的权限
eg:
# setfacl -m u:student:wrx redhat.c
drwxrwxr-x+ 2 root root 4096 Aug 2 04:11 redhat.c
权限后加上了“+”号
acl查看:
查看文件的访问控制列表使用命令getfacl
[root@server28 tmp]# getfacl redhat.c
# file: redhat.c
# owner: root
# group: root
user::rwx
user:student:rwx
group::r-x
mask::rwx
other::r-x
acl的删除:
[root@server28 tmp]# setfacl -x u:student redhat.c/
删除对应用户在该文件上的acl
[root@server28 tmp]# getfacl redhat.c
# file: redhat.c
# owner: root
# group: root
user::rwx
group::r-x
mask::r-x
other::r-x
删除所有acl:
[root@server28 tmp]# setfacl -b redhat.c/
[root@server28 tmp]# getfacl redhat.c
# file: redhat.c
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
注意:此时acl mask已被删除
所谓mask类似子网掩码的效果,有它存在所有acl权限只能小于等于它的权限
acl mask的设置:
[root@server28 redhat.c]# setfacl -m m::rx test
[root@server28 redhat.c]# getfacl test
# file: test
# owner: root
相关新闻>>
- 发表评论
-
- 最新评论 更多>>