首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >设置sftp帐户的umask?

设置sftp帐户的umask?
EN

Stack Overflow用户
提问于 2010-10-08 09:42:28
回答 5查看 34.8K关注 0票数 9

有人能告诉我如何为单个umask用户设置sftp吗?值得一提的是IBM .

umask 002添加到用户的.profile中不起作用.(目标是使来自同一组的人可以访问该用户文件)。

我已经看到了一些编辑sftpd吐露的方法,虽然我只想为一个用户设置它,所以我希望找到一些不需要根访问的东西。

谢谢!

f.

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-03-01 19:10:14

用户可以在没有根用户参与的情况下自行设置,无论是来自客户端(每个连接)还是服务器(每个公钥)。

从客户端,我们可以使用-s选项覆盖用于处理sftp交互的远程命令:

代码语言:javascript
运行
复制
sftp -s 'umask 0777; env PATH=${PATH}:/usr/libexec/openssh:/usr/lib/ssh:/usr/sbin sftp-server' username@hostname

(如果您的sftp-server没有安装在上面提到的位置之一,也可以将它添加到路径中)。

在服务器上,每当使用特定公钥进行连接时,我们都可以强制运行特定的命令。这将在所有连接上运行,而不仅仅是针对SFTP的连接,而且我们可以检查$SSH_ORIGINAL_COMMAND环境变量,以决定采取何种操作。向authorized_keys中添加如下内容可能就足以满足您的需要:

代码语言:javascript
运行
复制
command="umask 0777; if [[ -n $SSH_ORIGINAL_COMMAND ]]; then eval $SSH_ORIGINAL_COMMAND; else exec bash --login; fi" ssh-rsa AAAAB3NzaC1yc2EA...

(替换您最喜欢的shell来处理任何交互式登录,并注意如果您使用tcsh,您将不得不修改它以适应该shell的语法)。

票数 3
EN

Stack Overflow用户

发布于 2013-06-19 10:12:05

对我来说效果很好。但是,需要进行一些研究,因为您提供的是文档的摘录。在我的例子中,一个具体的例子是在/etc/ssh/sshd_config的末尾放置两个连续行

代码语言:javascript
运行
复制
Match Group www-data
ForceCommand internal-sftp -u 2

在我的例子中,我想要做的是,如果组中的'www-data‘登录到'002’(小数点中的2),则将umask设置为‘002’(小数中的2)。

还有一个选项可以使用env。变量SSH_ORIGINAL_COMMAND而不是“内部sftp”,但是我没有时间去追求它。

票数 26
EN

Stack Overflow用户

发布于 2011-05-17 04:30:01

我不知道AIX,但是您应该能够在OpenSSH中做到这一点,尽管它需要根权限。您需要为sftp的服务器组件编写一个包装器脚本。包装器需要有选择地为用户更改umask,然后为sftp服务器更改exec。对于选择用户,我倾向于:

代码语言:javascript
运行
复制
id --user

如果要创建像/usr/local/sbin/sftp-wrapper这样的脚本,则可以从以下位置更改/etc/ssh/sshd_config中的sftp子系统的配置:

代码语言:javascript
运行
复制
Subsystem   sftp    /usr/libexec/openssh/sftp-server

至:

代码语言:javascript
运行
复制
Subsystem   sftp    /usr/local/sbin/sftp-wrapper

除了编写包装器脚本之外,每个步骤都需要根权限。

注释:我相信当您通过sftp连接时,sftp服务器是由root启动的。因此,默认的umask来源于root的umask。我不相信有一种方法可以从用户的配置中对特定用户进行更改。如果要为所有用户更改sftp umask,可以对sftp子系统配置进行更简单的修改:

代码语言:javascript
运行
复制
Subsystem   sftp    /bin/bash -c ‘umask 002; /usr/libexec/openssh/sftp-server’
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3889377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档