如何更改传输守护程序创建的文件的默认权限?

jpe*_*sen 29 transmission

我有一台运行 Ubuntu 12.04 服务器的机器,运行传输守护程序来处理 bitorrent。一切正常,除了传输守护程序创建文件作为用户/组debian-transmission、 和 744 文件权限。

  • 我希望能够从 samba 共享中删除和移动这些文件。

  • 我考虑过更改用户 debian-transmission 的主要组,但我担心这可能会破坏对其他文件的访问。

  • 我认为最好将 debian-transmission 创建的新文件的默认权限更改为 774,并将自己添加到 debian-transmission 组中。

    我知道这可以用 umask 来完成,但我的理解是这将在 .profile 文件中设置,并且由于 debian-transmission 没有主文件夹,我不确定该文件是否存在于用户中。那么我该如何实现呢?

    欢迎提出建议或替代解决方案。提前致谢。

gei*_*rha 53

您可以在传输的配置文件 ( /etc/transmission-daemon/settings.json) 中指定 umask 。我们通常用八进制表示 Umask,但不幸的是,json 不支持它,所以我们必须将它转换为基数 10。你可以在 shell 中这样做:

$ echo $(( 8#022 ))
18
Run Code Online (Sandbox Code Playgroud)

这是默认值,但您可能需要 002,它在十进制中是相同的,所以

sudo editor /etc/transmission-daemon/settings.json
# change "umask": 18 to "umask": 2 and save
sudo reload transmission-daemon # tells transmission-daemon to re-read the config 
                                # file. This is important, otherwise, the changes
                                # will be lost
Run Code Online (Sandbox Code Playgroud)

另一件事。如果您更改下载目录的组所有权,并在其上添加 setgid 位,则在该目录中创建的所有文件都将具有与该目录相同的组所有权。

sudo chgrp "$USER" /path/to/transmission/download/dir
sudo chmod g+s /path/to/transmission/download/dir
Run Code Online (Sandbox Code Playgroud)

它不会影响已经存在的文件。有关更多信息,请参阅http://mywiki.wooledge.org/Permissions

  • @Fran 如果将 umask 设置为 0775,则文件将获得模式 002;掩码指定不要在新文件上设置哪些位。您需要在此处使用默认的 umask (002),以便使用模式 664 创建文件,并使用模式 775 创建目录。 (3认同)