The*_*iot 87 linux security acl file-permissions
用户 tomcat6 拥有一个文件夹:
drwxr-xr-x 2 tomcat6 tomcat6 69632 2011-05-06 03:43 document
Run Code Online (Sandbox Code Playgroud)
我想允许另一个用户(ruser)对文档文件夹的写权限。这两个用户(tomcat6 和 ruser)不属于同一个组。我试过使用setfacl
:
sudo setfacl -m u:ruser:rwx document
Run Code Online (Sandbox Code Playgroud)
但这给了我setfacl: document: Operation not supported
错误。请帮助我。
And*_*ert 169
有两种方法可以做到这一点:将目录设置为“world”可写或为两个用户创建一个新组并使目录可写入该组。
显然,让它成为世界可写是一件坏事,所以第二个选项是可取的。
Linux 中的用户可以属于多个组。在这种情况下,您要创建一个全新的组,我们称之为tomandruser
:
sudo groupadd tomandruser
Run Code Online (Sandbox Code Playgroud)
现在该组存在,将两个用户添加到其中:
sudo usermod -a -G tomandruser tomcat6
sudo usermod -a -G tomandruser ruser
Run Code Online (Sandbox Code Playgroud)
现在剩下的就是设置目录的权限:
sudo chgrp -R tomandruser /path/to/the/directory
sudo chmod -R 770 /path/to/the/directory
Run Code Online (Sandbox Code Playgroud)
现在只有 tomandruser 组的成员才能读取、写入或执行目录中的任何内容。注意 chmod 和 chgrp 命令的 -R 参数:这告诉它们递归到目标目录的每个子目录并修改它找到的每个文件和目录。
您可能还想将 770 更改为诸如774
您希望其他人能够读取文件,775
如果您希望其他人读取和执行文件等。组分配更改在用户注销并返回之前不会生效在。
如果您还希望(您可能这样做)其中一个用户在目录内创建的新文件可由组中的其他人自动写入,请参阅此处。
下面的脚本显示了一个例子给r (read) / w (write) / x (execute)
许可给定的文件夹路径/path/to/the/directory
为USER1
和USER2
。如果您只想授予写访问权限,请替换rwx
为w
.
#!/bin/bash
# Block others and people in the same group to do `r/w/x` on the give folder:
sudo chmod 700 /path/to/the/directory
# Give read/write/execute access to USER1 on give folder:
sudo setfacl -R -m user:USER1:rwx /path/to/the/directory
# Give read/write/execute access to USER2 on give folder:
sudo setfacl -R -m user:USER2:rwx /path/to/the/directory
Run Code Online (Sandbox Code Playgroud)
/srv/common
甚至(对于无情的短路径......)/repo
或类似的。wwwuser
,除非有正当理由)root
作为成员是件好事,也有该共享文件夹的中立所有者frank:common
,不frank:frank
sudo groupadd -f common\n usermod -aG common root\n usermod -aG common frank\n usermod -aG common mike\n\n # sort of hack for instant group refresh w/o logout\n # superuser.com/a/345051\n su - frank\n\n # sanity test1:\n cat etc/group | grep common\n common:x:1008:root,frank,mike\n # sanity test2:\n groups\n frank adm cdrom ... common\n sudo chown root:common /repo\n\n # (if you have shareable stuff setting somewhere else,\n # copy it to here now)\n\n # no right to the world, the right rights to user and group\n chmod -R ug+rwXs,o-rwx $dest\n # why uppercase X ? \xe2\x86\x92 unix.stackexchange.com/a/416885\n\n # why s ? \xe2\x86\x92 superuser.com/a/277785\n # as there is no such thing as an uppercase S (directories only)\n # settings the s attribute on preexisting content would have to happen\n # like so:\n # find /repo -type d -exec chmod g+s {} \\\\\\;\n
Run Code Online (Sandbox Code Playgroud)\n
归档时间: |
|
查看次数: |
253868 次 |
最近记录: |