scp 和 umask 设置

scp 和 umask 设置

如何让 SCP 尊重 umask ?

我试过添加这个

Subsystem      sftp  internal-sftp -u 0002

在 /etc/ssh/sshd_config 中

session    optional     pam_umask.so umask=0002

在 /etc/pam.d/sshd 中

还有其他可以尝试的事情吗?

每次 scp 将文件创建为 644 而不是 umask 建议的 664

答案1

scp您可以在远程端创建一个单独的用户,并设置他们的umask通过login.conf(5)(如果在 OpenBSD 上)。

答案2

AFAIK,scp不会初始化 shell,因此不会获取任何文件,例如.profile, .bashrc, /etc/profile.

因此,执行此操作的唯一方法似乎是使用 pam 模块pam_umask.so。但它将应用于所有用户(除非您使用更复杂的 PAM 设置)

如果您想将此行为限制为 ssh 会话,该文件/etc/pam.d/sshd可能是执行此操作的最佳位置:

session optional pam_umask.so umask=0007

答案3

我认为你需要使用更好的东西,比如 rsync 命令。

取自男人:

rsync 的一些附加功能包括:

   support for copying links, devices, owners, groups, and permissions

句法:

   Local:  rsync [OPTION...] SRC... [DEST]

   Access via remote shell:
     Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
     Push: rsync [OPTION...] SRC... [USER@]HOST:DEST

要保留原始文件的修改时间、访问时间和模式,可以在 scp 之后使用 -p。但这不是您正在寻找的。

答案4

你想要做的事情你无法用 umask 实现,请尝试使用 mask 来代替。

umask 的作用如下:

  • 每个默认文件夹的情况是用 775 创建的,文件用 664 创建的(所有者/用户读+写组读+写其他读 - 文件夹还为用户组和其他人设置了遍历)

如果不喜欢这个,可以通过设置一个umask(如027)来削减权限,这意味着用户不更改组-2(默认减去写入)其他-7(默认减去读/写/执行(如果文件夹则遍历)

简单来说: umask 027 ~= chmod gw o-rwx

所以使用 umask 你只能降低/削减权限

添加/更高权限使用掩码

如果您需要了解更多信息,请阅读 umask 和 mask 的手册页或查看维基百科上的条目http://en.m.wikipedia.org/wiki/Umask

相关内容