Jon*_*Day 3 permissions centos sudo
我如何sudo
为用户提供访问权限,但将他们限制为仅编辑文件,以及指定目录下的文件。例如,我希望用户abc
能够编辑所有文件/var/www/vhosts/hostabc/
及其子文件。
解决方案1:
您可以使用sudoedit
:
%editors_group ALL=(root) sudoedit /var/www/vhosts/hostabc/*
Run Code Online (Sandbox Code Playgroud)
并将所有编辑器添加到 editors_group
通配符不允许路径遍历,因为
sudoedit 命令行参数中使用的通配符应为路径名,因此正斜杠 ('/') 不会与通配符匹配
另请注意:
永远不应授予用户 sudoedit 权限来编辑驻留在用户具有写访问权限的目录中的文件,无论是直接还是通过通配符。如果用户对该目录具有写访问权限,则可以用指向另一个文件的链接替换合法文件,从而允许编辑任意文件。从版本 1.8.15 开始,除非启用了 sudoedit_follow Defaults 选项或 sudoedit 命令以 FOLLOW 标记为前缀,否则 sudoedit 将拒绝打开符号链接。但是,如果目录可写且链接目标位于同一文件系统上,则仍然可以创建硬链接。
来源:sudoers手册页。
解决方案 2: 您可以使用POSIX ACL,而不是使用 sudo 机制。
groupadd hostabc # Create a group that will have read-write access to the folder
setfacl -R -m g:hostabc:rwX /var/www/vhosts/hostabc/ # Allow full access for hostabc group, recursively
setfacl -R -d -m g:hostabc:rwX /var/www/vhosts/hostabc/ # Same permissions for new files and folders
getfacl /var/www/vhosts/hostabc/ # To show the permissions
usermod -a -G hostabc user1 # Add user1 to hostabc group
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12048 次 |
最近记录: |