Apache-2.2

在 Ubuntu 10.04 LTS 上為 www-data 使用者設置 umask(通過 sudo 執行)

  • May 31, 2011

我在 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”命令將創建啟用組寫入權限的項目?

您是否嘗試過通過/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.

引用自:https://serverfault.com/questions/275722