Apacheサーバーで特定のフォルダーにのみアクセスできる新しいユーザーアカウントを作成する必要がありますが、sshでルートディレクトリを変更しようとすると、サーバーはそれを拒否します。まず、sshd_configファイルを編集して各アカウントのルートディレクトリを自動的に変更しようとしましたが、うまくいかないことを確認し、usermodを使用して変更してみましたが、その結果は次のとおりです。
>sudo usermod -R /var/www/userFolder sftpUser1
usermod: user 'sftpUser1' does not exist
ただし、sftpUser1は存在します。これはpasswdファイルの行で、ホームディレクトリを変更するために使用された-dコマンドが正しく機能するのと同じ行です。
sftpUser1:x:1001:1001::/var/www/userFolder:/bin/false
これが私がsshd_configに追加したものです。
Match Group sftpusers
ChrootDirectory /var/www/%u
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
ユーザーとの接続を試みた後に Auth.log ファイルに表示される内容です。
pam_unix(sshd:session): session opened for user sftpUser1 by (uid=0)
fatal: bad ownership or modes for chroot directory component "/"
このユーザーはsftpusersグループに属しています。
答え1
' -R
'usermod
オプションは、ユーザーのルートを変更せずにusermod
内部アクションのルートを変更するため、これを使用できます。chroot環境でのユーザーの変更。
編集する:私はあなたが望むものがSSH経由でログインしたときにユーザーをchroot環境に置くことを前提としています。これを行うには、「ChrootDirectory
」sshd_config
オプションを使用できます。