我在 Ubuntu 10_04 LTS 上以用户 www-data 的身份运行 apache。我已使用“umask 002”设置了 /etc/apache2/envvar,以便守护进程创建的任何新文件/目录都启用了组写入权限。有时,我需要从命令行创建文件/目录,因此我执行“sudo -u www-data”命令,但我不知道如何让这些命令在创建时启用组写入权限。
在 /etc/passwd 中,Ubuntu 的主目录列为“/var/www”。因此,根据 ubuntu 文档 (https://help.ubuntu.com/community/EnvironmentVariables),我尝试将“umask 002”添加到以下位置:
/var/www/.profile
/var/www/.bashrc
/var/www/.bash_profile
/var/www/bash_login
以及全局环境文件:
/etc/环境
/etc/bash.bashrc
即使在所有这些文件中添加“umask 002”并重新启动后,运行“sudo -u www-data touch testfile”也会导致“-rw-r--r--”权限。(我尝试将 www-data shell 设置为 /bin/sh 和 /bin/bash。)
是否有任何设置方法可以使得“sudo -u www-data”命令能够创建启用了组写权限的项目?
答案1
您是否尝试过通过其本身进行设置/etc/sudoers
?按照sudoers(5)
:
umask_override If set, sudo will set the umask as specified by sudoers
without modification. This makes it possible to
specify a more permissive umask in sudoers than the
user's own umask and matches historical behavior. If
umask_override is not set, sudo will set the umask to
be the union of the user's umask and what is specified
in sudoers. This flag is off by default.