如何为 Ubuntu 服务器设置 SFTP 的默认权限?

wag*_*639 16 ubuntu permissions ssh sftp umask

我们有一个 Ubuntu 10.04 服务器。如何设置它以便通过 SFTP 或 SSH 创建(或复制)的新文件具有 g+rw 和 g+rwx 权限(在适当的情况下)?

我也在使用 setgid (chmod g+s) 以便他们继承正确的组所有者。

小智 12

在 /etc/ssh/sshd_config 中,您可以在 (-u 0002) 中传递一个标志和值,如下所示来设置 umask 值:

Subsystem sftp /usr/lib/openssh/sftp-server -u 0002
Run Code Online (Sandbox Code Playgroud)

将 -u 0002 附加到配置文件的现有子系统 sftp 行。

之后,您需要重新启动 ssh 以使更改生效:

service ssh restart
Run Code Online (Sandbox Code Playgroud)

  • 这仅适用于您需要比客户端设置的权限更严格的权限,而不是更宽松的权限。 (2认同)

wag*_*639 10

在 /etc/ssh/sshd_config 中,更改以下内容:

Subsystem sftp /usr/lib/openssh/sftp-server

到:

Subsystem sftp /bin/sh -c 'umask 0002; exec /usr/libexec/openssh/sftp-server'

来源:http : //jeff.robbins.ws/articles/setting-the-umask-for-sftp-transactions

  • 是的,umasks _are_ 八进制。这并不意味着您需要三个前导零 - 一个就足够了。(事实上​​,`umask` 命令不需要 _any_ 前导零,它总是将参数读取为八进制数。)...但仔细想想,也许 `0002` 更容易理解。 (2认同)
  • 这对我不起作用。它不会强制执行 g+w 权限。 (2认同)