有人可以告诉我如何为单个umask
用户设置sftp
吗?值得一提的是 IBM AIX ...
将umask 002
添加到该用户的.profile
不起作用...(目标是此用户文件可供同一组人员访问)。
我已经看到了编辑sftpd配置的方法,虽然我只想为一个用户设置它,所以我希望找到一些不需要root访问权限的东西。
谢谢!
F。
答案 0 :(得分:22)
对我来说很棒。但是,需要进行一些研究,因为您提供的是文档的摘录。在我的情况下,一个具体的例子是在/ etc / ssh / sshd_config的末尾放两个连续的行
Match Group www-data
ForceCommand internal-sftp -u 2
在我的情况下,我想要做的是如果组'www-data'中有人登录,则将umask设置为'002'(十进制2)。
还有一个使用env的选项。变量SSH_ORIGINAL_COMMAND而不是'internal-sftp',但我没有时间去追求它。
答案 1 :(得分:3)
我不知道AIX,但你应该能够使用OpenSSH,虽然它需要root权限。您需要为sftp的服务器组件编写包装器脚本。包装器需要有选择地更改用户的umask
,然后exec
sftp服务器。对于选择用户,我偏爱:
id --user
如果要创建/usr/local/sbin/sftp-wrapper
这样的脚本,则可以从/etc/ssh/sshd_config
更改sftp子系统的配置:
Subsystem sftp /usr/libexec/openssh/sftp-server
为:
Subsystem sftp /usr/local/sbin/sftp-wrapper
除了编写包装器脚本之外,每个步骤都需要root权限。
评论:我相信当你通过sftp连接时,sftp服务器是由root启动的。因此,默认的umask派生自root的umask。我不相信有一种方法可以在该用户的配置中为特定用户改变这一点。如果要为所有用户更改sftp umask,可以对sftp子系统配置进行更简单的修改:
Subsystem sftp /bin/bash -c ‘umask 002; /usr/libexec/openssh/sftp-server’
答案 2 :(得分:3)
用户可以自己设置,无需客户端(每个连接)或服务器(每个公钥)的root用户。
从客户端,我们可以使用-s
选项覆盖用于处理sftp交互的远程命令:
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
中添加以下内容可能足以满足您的需求:
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 :(得分:1)
八进制中的111的umask将以十进制形式产生73,我们就是这样 将在此示例中使用。
#vi /etc/ssh/sshd_config
在文件末尾添加以下两行以配置sftp umask用于一组用户。
Match Group <group name>
ForceCommand internal-sftp -u 73
或者,在文件末尾添加以下两行,为单个用户配置sftp umask。
Match User <user name>
ForceCommand internal-sftp -u 73
重新启动sshd守护程序。
#stopsrc -s sshd
#startsrc -s sshd
这将有所帮助:Aamod chandra
答案 4 :(得分:0)
我不知道为什么以下行不适合我:
*匹配组
ForceCommand internal-sftp -u 73
最后添加&#39; -u 0002&#39; for Subsystem在SUSE 11.3上正常工作:
*Subsystem sftp /usr/lib64/ssh/sftp-server **-u 0002***
现在指定的用户只能使用公钥登录:
Match User nappcpr, Group iwcopy
PasswordAuthentication no
PubkeyAuthentication yes
**KbdInteractiveAuthentication no**