公司Sftp服务器设置了chroot,由于chroot对目录权限有限制,想了一个别的办法绕了过去。这几天,又有客户说,文件权限始终为644,但是要求为664。bash
开始觉得是系统缘由,改了系统/etc/bashrc,但是依然如旧,想到sftp自己有可能有umask,百度一下,资料太少,google不能用,后来找了几份文档,经过实验终天成功了,现把过程总结以下:服务器
一,开启ssh的PAM功能,session
运行命令看看 ldd/usr/sbin/sshd | grep libpam.so支持PAM吗?ssh
编辑/etc/ssh/sshd_config
ide
UsePAM yesui
ChrootDirectory /chrootgoogle
ForceCommandinternal-sftpunix
二,/etc/pam.d/sshd,文件大部分内容能够从 system-auth抄过来(具体说明参照PAM),注意加上umask那一行。md5
#%PAM-1.0ci
# This file isauto-generated.
# User changes willbe destroyed the next time authconfig is run.
auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth required pam_deny.so
account required pam_unix.so
account sufficient pam_succeed_if.so uid < 500 quiet
account required pam_permit.so
password requisite pam_cracklib.so try_first_pass retry=3
password sufficient pam_unix.so md5 shadow nulloktry_first_pass use_authtok
password required pam_deny.so
session optional pam_umask.so umask=0002
session optional pam_keyinit.so revoke
session required pam_limits.so
session [success=1 default=ignore]pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
重启sshd服务就能够了