LoginSignup
4
4

More than 5 years have passed since last update.

アクセスをホームディレクトリのみに制限したsftpユーザーの設定

Posted at

Linuxサーバー(確認した環境はCentOS 7)で特定のユーザーに対してsftp(ファイル転送)で自分のホームディレクトにあるpublic_htmlへのファイル転送のみを許可したい(sshでの接続を禁止)場合の設定方法です。

sftp 専用ユーザー用のグループを作る

グループを作成し、sftpのみを許可したいユーザーはこのグループに追加する。このではsftponlyというグループを作成する。

groupadd sftponly

ユーザーのホームディレクトリのアクセス権限を変更する。

ユーザーのホームディレクトリの所有者をrootに変更する。chrootのためこれをしないとWinSCPだと以下のようなエラーでる。

20190414sftperror.png

このままだとユーザーがファイルのアップロードができないのでpublic_htmlディレクトリを作成し、このディレクトリにはユーザーを所有者とする。ここではuser01に対して操作をする。

chmod 755 /home/user01/
chown root:root /home/user01/

mkdir /home/user01/public_html/
chmod 755 /home/user01/public_html/
chown user01:user01 /home/user01/public_html/

ユーザーアカウントのsftp 専用グループへの追加

sftpのみを許可したいユーザーをグループに追加する。ここではuser01をsftponlyグループに追加する。

usermod -aG sftponly user01

以下のコマンドを実施してユーザーがグループに追加されたことを確認する。

groups user01

user01 : user01 sftponly という風にsftponlyグループに追加されていることを確認する。

sshdの設定変更

OpenSSLのサーバーコンフィグを変更してsftponlyグループのユーザーにsftpで自分のホームディレクトリへのアクセスのみを許可するようにする。

/etc/ssh/sshd_config
# override default of no subsystems
#Subsystem      sftp    /usr/libexec/openssh/sftp-server  #コメントアウト
Subsystem       sftp    internal-sftp     # 追加する。

# コンフィグファイルの末尾に追加する。sftponlyグループにのみ適用する。
Match Group sftponly
    ChrootDirectory /home/%u  # ホームディレクトリのみアクセス可能
    ForceCommand internal-sftp  # sshでの接続を禁止する
    PasswordAuthentication yes  # パスワードを認証を行う場合に追加

参考サイト

chrootされたsftp専用ユーザを作るメモ
Linuxでユーザーをグループに追加する
SFTPでディレクトリ制限ありなユーザを作成する
Linux 新規グループの作成 - groupadd

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4