linux如何将一个文件设置为多个人拥有或者同一组内只让某两个用户有删除权限?

如题所述

想要设置文件权限,首先要确认必须使用这个文件的创建者(所有者)的账号。
1,如果这个两个用户是输入不同用户组的,比如是用户名为root(等同于windows的管理员账户),使用命令
[xuwangcheng14@root]# id root[xuwangcheng14@root]# uid=0(root) gid=0(root) groups=0(root)root为root用户组。假如root为文件的创建者,另外两个用户分别为jees和miss,jees组别为root组,miss组别为http组,
这样来说jees对于root是同组的,用字母g(group)表示;
miss对于root是其他组的,用户字母o(other)表示;
root自身则用u(user)表示。
这样就好办了,使用chmod命令可以对 不同组别的用户对于文件添加或者减少权限:
x: execute(执行权限)r: read(读权限)w: write(写权限)
[xuwangcheng14@root]# chmod 754 ./mydir -R改变一个文件的权限: chmod mode file|dir
改变所有子目录的权限: chmod mode dir -R (注意后面加了个-R参数 )参数就是权限模式 mode = 777 or 752 ,666,,, ;mode 的三个数字,分别表示user,group,others所具有的权限。 1 = x 执行 2 = w 写 4 = r 读,比如user具有所有权限,1+2+4=7, 又比如group 具有读 和执行权限 1+4 =5。
这样就能改变两个不同用户对同一目录下的文件的权限。

2,如果这两个用户是属于同一组(相对于文件所有者的组
jess为http组,miss为users组,
可以通过改变文件属主来使两个用户为不同的用户组:
[xuwangcheng14@root]# chown -R jess.http ./mydir[xuwangcheng14@root]# chmod 754 ./mydir -R第一个命令改变了mydir目录下所有文件的所有者为http组的jess,
第二条命令和上面的是一样的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-03-27
楼主这里有个误区,是否能删除文件看的不是文件的权限而是它父目录是否有w权限。
所以只要将需要删除权限的用户加入一个组,将它设置成父目录的所属组就可以了,并赋予g+w的权限就可以了。
facl(文件控制访问列表)也可以满足楼主的要求,楼主可以研究一下。
第2个回答  2019-06-02
利用扩展访问acls
命令格式如下:
setfacl
-m
u:users:---
files
\\添加用户权限
setfacl
-x
u:users:---
files
\\删除用户权限
getfacl
\\查看当前文件详细权限
诚恳回答,敬请选择!
相似回答