Версия остроты ответа SvenW (creds должен перейти к нему, не мне),
string=`some command`; [ "$len" -gt "0" ] && ( echo $string | mail -s "tables altered on `hostname`" me@company.com )
Это нормально, поскольку я нацелен только на FTP, но затем на user1 могут получить доступ к гораздо большему, чем требуется, домашнему каталогу, что нехорошо.
FTP и SFTP никоим образом не связаны друг с другом, за исключением того, что они оба могут использоваться для передачи файлов.
В любом случае для входа по SFTP я использую это в sshd_config
:
Subsystem sftp internal-sftp -f AUTH -l INFO
Match Group sftp
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
AuthorizedKeysFile %h/authorized_keys
Match
Пользователи, которые могут использовать sftp, находятся в группе sftp. Убедитесь, что вы указали им оболочку / sbin / nologin
. Они получат то, что им нужно, от OpenSSH.
Наконец, если домашний каталог не существует, я думаю, вы также будете отключены. А также, если у пользователя нет доступа к домашнему каталогу. Права на домашний каталог должны быть 700
, а пользователь и группа также должны быть именем пользователя и именем группы. В вашем примере:
1049327 drwx ------. 2 user1 user1 4,0K 8 октября 2013 user1
Это все относится к CentOS, я не знаю, работает ли это на другом смокинге.
Вы путаете chroot с тем, что делают putty и filezilla разными. putty хочет удаленную оболочку или "фальшивую" оболочку, какую-то команду. filezilla хочет sftp.
Так что вам нужно решить. Если вам нужен только sftp, вы не можете использовать шпатлевку. Если вы хотите использовать sftp, прочтите man sshd, вы, вероятно, захотите поместить туда internal-sftp, так как он не требует полной настройки chroot. Если вы укажете полный путь к sftp-серверу, вам придется поместить в chroot все библиотеки и другие обязательные файлы.
Вывод Filezilla показывает, что вы явно не настроили chroot правильно.