サポート担当者に一時的なSFTPアクセスを許可したいと思います。 SFTPユーザーを作成するにはどうすればよいですか?そして、仕事が終わったらどうすればそれを削除できますか?
また、それらのホームディレクトリを指定するにはどうすればよいですか?ホームディレクトリ内の特定のサブディレクトリにアクセスできないようにすることはできますか?
CentOS6.3とfzSftpを使用しています
承認された回答:
非chrootアクセス
FTPサーバーをセットアップしておらず、ログインするユーザーを信頼し、サーバーをあちこち見回さないようにする場合は、代わりにシステムへのSFTPのアカウントを提供する傾向があります。
CentOS wikiは、「これをかなり苦痛のないものにする単純なSFTPセットアップ」というタイトルの簡単なハウツーを維持しています。
文字通りアカウントを作成し、ファイアウォールがSSHトラフィックを許可していることを確認し、SSHサービスが実行されていることを確認するだけで、ほぼ完了しているため、問題はありません。
sshd
の場合 まだ実行されていません:
$ /etc/init.d/sshd start
ユーザーを追加するには:
$ sudo useradd userX
$ sudo passwd userX
... set the password ...
アカウントを使い終わったら:
$ sudo userdel -r userX
chrootアクセス
一方、このユーザーを指定されたディレクトリに制限する場合は、SSHに含まれているSFTPサーバー(openssh)が、これを簡単に有効にする構成を提供します。少し手間がかかりますが、それほど多くはありません。この手順については、LinuxでChroot SFTPをセットアップする方法(SSHではなくSFTPのみを許可する)というタイトルのこのチュートリアルで説明しています。
/etc/ssh/sshd_config
にこれらの変更を加えます ファイル。
Subsystem sftp internal-sftp
## You want to put only certain users (i.e users who belongs to sftpusers group) in the chroot jail environment. Add the following lines at the end of /etc/ssh/sshd_config
Match Group sftpusers
ChrootDirectory /sftp/%u
ForceCommand internal-sftp
次に、このユーザーがロックされるchrootされたディレクトリツリーを作成する必要があります。
$ sudo mkdir -p /sftp/userX/{incoming,outgoing}
$ sudo chown guestuser:sftpusers /sftp/guestuser/{incoming,outgoing}
権限は次のようになります。
$ ls -ld /sftp/guestuser/{incoming,outgoing}
drwxr-xr-x 2 guestuser sftpusers 4096 Dec 28 23:49 /sftp/guestuser/incoming
drwxr-xr-x 2 guestuser sftpusers 4096 Dec 28 23:49 /sftp/guestuser/outgoing
このようなトップレベルのディレクトリ:
$ ls -ld /sftp /sftp/guestuser
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp/guestuser
sshd
を再起動することを忘れないでください サーバー:
$ sudo service sshd restart
次に、userXアカウントを作成します:
$ sudo useradd -g sftpusers -d /incoming -s /sbin/nologin userX
$ sudo passwd userX
... set password ...
アカウントが正しく作成されたことを確認できます:
$ grep userX /etc/passwd
userX:x:500:500::/incoming:/sbin/nologin
アカウントを使い終わったら、上記と同じ方法でアカウントを削除します。
$ sudo userdel -r userX
…そして、上記で行った構成ファイルの変更を削除してから、sshd
を再起動することを忘れないでください。 それらをもう一度アクティブにします。