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


8

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

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

CentOS 6.3とfzSftpを使用します


これは、構成ファイルが役立つ可能性のある構成に依存します。
Kiwy、2014年

どのような設定を投稿すればよいですか?
OC2PS 2014年

あなたの1人ftpデーモン
Kiwy

FTPまたはSFTPのどちらが必要ですか?私が尋ねる理由は、FilezillaがSFTP接続に使用するクライアントであるfzsftp(filezilla sftp)をリストしたことです。
slm

ああ!FileZilla経由でSFTPに接続したため、fzsftpと表示されました...これが私のサーバーだと思いました。SFTPは、あなたが私を助けることができれば、大丈夫でしょう。ありがとう!
OC2PS 2014年

回答:


14

非chrootアクセス

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

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してもう一度アクティブにする必要があります。


いいね!ユーザーを特定のディレクトリに制限し、ユーザーがそのディレクトリ内のいくつかのサブディレクトリにアクセスできないようにするにはどうすればよいですか?
OC2PS 2014年

ユーザーをそのホームフォルダー内にバインドし、許可する別のディレクトリにシンボリックリンクを追加します
Kiwy

@ OC2PS-上記は、ユーザーをchrootする1つの方法を示しています。また、ホームディレクトリにchrootすることもできます。私は通常、これらのユーザーを指定された領域に分割/home/...します。これにより、実際にシステムのユーザーであるユーザーを調べると、それが明白になります。仕事のために実際のSFTPサーバーを実行しているので、私のニーズは少し異なります。
slm

sudo useradd -D userXを実行すると、使用法:useradd [options] LOGIN
OC2PS

@ OC2PSを試してくださいuseradd userX。申し訳ありませんが、のmanページを誤解していますuseradd
slm
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.