サポート担当者に一時的なSFTPアクセスを許可したいのですが。SFTPユーザーを作成するにはどうすればよいですか?また、ジョブが完了したら、どうすれば削除できますか?
また、どうすればそれらのホームディレクトリを指定できますか?ホームディレクトリ内の特定のサブディレクトリにアクセスできないようにできますか?
CentOS 6.3とfzSftpを使用します
サポート担当者に一時的なSFTPアクセスを許可したいのですが。SFTPユーザーを作成するにはどうすればよいですか?また、ジョブが完了したら、どうすれば削除できますか?
また、どうすればそれらのホームディレクトリを指定できますか?ホームディレクトリ内の特定のサブディレクトリにアクセスできないようにできますか?
CentOS 6.3とfzSftpを使用します
回答:
FTPサーバーが設定されておらず、ログインするユーザーを信頼している場合は、サーバーを使いすぎないように、代わりにSFTPのアカウントをシステムに与えたいと思います。
CentOS wikiは、タイトルを付けたシンプルなハウツーを維持しています。
文字通りアカウントを作成し、ファイアウォールがSSHトラフィックを許可することを確認し、SSHがサービスを実行していることを確認するだけで、ほとんど問題はないので、痛みはありません。
sshd
まだ実行されていない場合:
$ /etc/init.d/sshd start
ユーザーを追加するには:
$ sudo useradd userX
$ sudo passwd userX
... set the password ...
アカウントが完了したら、次のようにします。
$ sudo userdel -r userX
一方、このユーザーを指定されたディレクトリに制限する場合は、SSHに含まれているSFTPサーバー(openssh)を使用すると、これを簡単に有効にすることができます。それはもう少し仕事ですが、多すぎません。手順については、このチュートリアルのタイトル「LinuxでChroot SFTPを設定する方法(SFTPではなく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
してもう一度アクティブにする必要があります。
/home/...
します。これにより、実際にシステムのユーザーであるユーザーを調べると、それが明白になります。仕事のために実際のSFTPサーバーを実行しているので、私のニーズは少し異なります。
useradd userX
。申し訳ありませんが、のmanページを誤解していますuseradd
。