公司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服務就能夠了