相关疑难解决方法(0)

如何为所有类型的连接设置 ssh 的 umask

我一直在寻找一种方式来设置的OpenSSH的的umask0027在所有连接类型一致的方式。

通过连接类型,我指的是:

  1. sftp
  2. SCP
  3. SSH主机名
  4. ssh主机名程序

3. 和 4. 之间的区别在于前者启动一个通常读取/etc/profile信息的外壳,而后者不启动。

此外,通过阅读这篇文章,我了解到较新版本的 OpenSSH 中存在 -u 选项。然而这行不通。

我还必须补充一点,/etc/profile现在包括umask 0027.

逐点进行:

  • sftp --u 0027这里sshd_config提到的设置,是不够的。

如果我不设置这个参数,sftp 默认使用umask 0022. 这意味着如果我有两个文件:

-rwxrwxrwx 1 user user 0 2011-01-29 02:04 execute
-rw-rw-rw- 1 user user 0 2011-01-29 02:04 read-write
Run Code Online (Sandbox Code Playgroud)

当我使用 sftp 将它们放入目标机器时,我实际上得到:

-rwxr-xr-x 1 user user 0 2011-01-29 02:04 execute
-rw-r--r-- 1 user user 0 2011-01-29 …
Run Code Online (Sandbox Code Playgroud)

ssh umask

36
推荐指数
3
解决办法
6万
查看次数

如何完全控制 umask/PAM/权限?

// 2 月 8 日更新 - 简要说明未决问题:

  • 如何与文件不同地屏蔽目录?
  • 如何在 Nautilus 复制/粘贴上屏蔽?
  • 如何为 SSHFS 设置 umask?

我们的情况

我们公司的几个人登录到服务器并上传文件。他们都需要能够上传和覆盖相同的文件。他们有不同的用户名,但都属于同一个组。但是,这是一个 Internet 服务器,因此“其他”用户应该(通常)只有只读访问权限。所以我想要的是这些标准权限:

文件:664
目录:771

我的目标是所有用户都不需要担心权限。服务器的配置方式应使这些权限适用于所有新创建、复制或覆盖的文件和目录。只有当我们需要一些特殊权限时,我们才会手动更改它。

我们通过 Nautilus 中的 SFTP-ing 将文件上传到服务器,通过使用 sshfs 挂载服务器并在 Nautilus 中访问它,就像它是本地文件夹一样,以及通过命令行中的 SCP-ing。这基本上涵盖了我们的情况和我们的目标。

现在,我已经阅读了很多关于美丽的 umask 功能的内容。据我所知,umask(与 PAM 一起)应该允许我做我想做的事:为新文件和目录设置标准权限。然而,经过许多小时的阅读和反复试验,我仍然没有让它起作用。我得到了许多意想不到的结果。我真的很想深入了解 umask 并且有很多问题没有得到解答。我将在下面发布这些问题,以及我的发现和对导致这些问题的试验的解释。鉴于很多事情似乎都出错了,我认为我做错了几件事。因此,有很多问题。

注意:我使用的是 Ubuntu 9.10,因此无法更改 sshd_config来设置 SFTP 服务器的 umask。已安装 SSH OpenSSH_5.1p1 Debian-6ubuntu2 < 需要 OpenSSH 5.4p1。那么问题来了。

1. 我是否需要重新启动 PAM 更改才能生效?

让我们从这个开始。涉及的文件太多了,我无法弄清楚什么会影响,什么不会影响,也因为我不知道是否必须重新启动整个系统才能使 PAM 更改生效。我在没有看到预期的结果后这样做了,但这真的有必要吗?或者我可以从服务器注销并重新登录,新的 PAM 策略是否有效?或者是否有一些“PAM”程序可以重新加载?

2. 是否有一个单一的文件可以影响所有会话的所有用户?

所以我最终更改了许多文件,因为我阅读了许多不同的东西。我最终在以下文件中设置了 umask:

~/.profile -> umask=0002
~/.bashrc -> umask=0002
/etc/profile -> umask=0002
/etc/pam.d/common-session …
Run Code Online (Sandbox Code Playgroud)

permissions ssh sftp pam umask

12
推荐指数
1
解决办法
2万
查看次数

标签 统计

ssh ×2

umask ×2

pam ×1

permissions ×1

sftp ×1