web-dev-qa-db-ja.com

CentOSでSFTPユーザーを作成するにはどうすればよいですか?

サポート担当者に一時的なSFTPアクセスを許可したいのですが。 SFTPユーザーを作成するにはどうすればよいですか?そして、ジョブが完了したら、どうすれば削除できますか?

また、それらのホームディレクトリを指定するにはどうすればよいですか?ホームディレクトリ内の特定のサブディレクトリにアクセスできないようにできますか?

CentOS 6.3とfzSftpを使用します

8
OC2PS

非chrootアクセス

FTPサーバーが設定されておらず、ログインするユーザーを信頼している場合は、サーバーを使いすぎないように、代わりにSFTPのアカウントをシステムに付与する傾向があります。

CentOS wikiは、タイトルが付けられたシンプルなハウツーを維持しています: Simple SFTP setup これにより、これはかなり簡単です。

文字通りアカウントを作成し、ファイアウォールで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をセットアップする方法(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を再起動してもう一度アクティブにする必要があります。

14
slm