私はSFTPサーバーを作成するためにChroot Jailを使用しています。問題は、ユーザーがホームディレクトリにログインできないことです。ChrootDirectory
ユーザーのホームディレクトリ(この場合は/ home / jail / home)の上のディレクトリに値を保持する必要があります。ディレクトリはルートが所有する必要があることを読みました。この場合、ユーザーはサーバーにログインする以外は何もできません。これは私のsshd_configファイルのsftp固有の部分です。
Match User ftpuser
ChrootDirectory /home/jail/home/ftpuser
ForceCommand internal-sftp
の出力は$id ftpuser
次のとおりです。
uid=1001(ftpuser) gid=1002(ftpuser) groups=1002(ftpuser),0(root)
ftpuserが少なくともログインできるように、特にルートグループに追加しました。
の出力は$grep ftpuser /etc/passwd
次のとおりです。
ftpuser:x:1001:1002::/home/jail/home/ftpuser:/bin/false
/home/jail/home/ftpuser の権限が有効になりました。
rwx------+ 3 root root 4096 2011-12-12 12:49 /home/jail/home/ftpuser/
どうすればいいですか?
答え1
インターネット検索の最後に解決策を見つけました。これは良い習慣ではありませんが、私には役立ちます。
ログインシェルを変更せずにchrootユーザーのUIDをrootユーザーのUIDである0に変更しました。したがって、chrootユーザーは私が望む方法で自分のホームディレクトリにアクセスできます。そして、ログインシェルのため、/bin/false
彼は他のユーザーと同じようにシステムにログインできません(ftpuserがシェルアクセスを取得できなかったsu - ftpuser
ため、実際に自分のコンピュータにログインしている間にこれを試しました)。root
たとえこの解決策がそれほど良くないか、それほど良くないかもしれませんが、私が見つけることができる唯一の解決策です。