LoginSignup
1
1

More than 5 years have passed since last update.

ディレクトリ制限ありのSFTPでSublimeから編集できるところまで

Last updated at Posted at 2015-09-03

サーバで動いているプロジェクトを直接さわって作業してほしいけど、
特定の場所だけに限定したいというようなケース。
chrootという方法で、アカウントの/を強制的に変更してそこ以外を見えなくします。
今回はRailsのappディレクトリの共有を想定した、ubuntuでの手順メモです。

こんなイメージ。

Screen Shot 2015-09-03 at 9.50.06 PM.png

作業アカウントの準備

作業ユーザの追加

sftpで接続するためのアカウントをつくる。名前はなんでもいいけどあとからわかりやすいようにsftpuserとします。

$ sudo adduser sftpuser

ホームディレクトリの設定

作業ユーザのホームディレクトリをchrootのディレクトリにするために、rootの権限にする。

$ sudo chown root:root /home/sftpuser
$ sudo chmod 755 /home/sftpuser

Sublime Textでいじるためのディレクトリを準備する

こちらのパーミッションは作業ユーザでよい。

$ sudo mkdir /home/sftpuser/app
$ sudo chown sftpuser:sftpuser /home/sftpuser/app

作業ファイルの準備

作業したい実体があるディレクトリをマウントしておきます。
シンボリックリンクだとchroot内からみることができないぽいので。

$ sudo mount --bind /PATH/TO/PROJECT/app /home/sftpuser/app

/etc/ssh/sshd_config の変更

  • sftpuserのルートディレクトリ指定
  • パスワード認証を許可(必要であれば)
  • sshd内部のsftpを使用(通常のsftpは制限ディレクトリ配下にないから)
Match User sftpuser
    ChrootDirectory /home/sftpuser
    PasswordAuthentication yes 
    ForceCommand internal-sftp 

sshdリスタート。

$ sudo /etc/init.d/ssh restart

SublimteText側の設定

SFTPプラグインが必要です。
参考:http://ideahacker.net/2014/05/20/8417/

フォルダ追加

任意の場所に作業用のフォルダを作ってSublimeにドロップします。

sublime1.png

右クリックでMap to Remote...というメニューを開きます。

sublime2.png

sftp-config.json

設定ファイルができるので、よしなにします。
今回でいうと

"host": "YOURSERVER",
"user": "sftpuser",
"password": "YOURPASSWORD",
"remote_path": "/app",

あたりが関係します。
upload_on_saveをtrueにすると、ファイルを保存したらすぐにサーバ側にアップしてくれるようになったりします。

sublime3.png

ダウンロード!

これでappの中身がローカルにダウンロードされるはず。

sublime4.png

1
1
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
1
1