sftpのchrootを利用して、特定ユーザにdrupalサイトコンテンツの編集権限を与える方法
Nid: 115
一般ユーザは /var/www/html 以下のディレクトリには書き込み権限を持たないので、ファイルのアップロードはできません。DrupalやWordpressなどのCMSからアップロードすればよいのですが、設定ファイルやCSSを直接編集したり置き換えたい場合に困ります。
自分のサーバならばホームディレクトリや、リブートで消える/tmpにscpで一時的にアップロードして、ssh接続したコマンドラインでサイトのディレクトリにsudoして移動すればよいのですが、サイト編集のためだけにsudo権限を与えるのはリスクが大きすぎます。ディレクトリのオーナーやパーミッションを変更すれば設定可能ですが、ユーザごとに設定が必要になりますし、セキュリティ上好ましくありません。
そのような場合にはWebサイトのディレクトリに直接アップロードできるように設定します。 WEBサイトコンテンツだけの編集ができるように必要十分なsftpのアクセス権限だけを与えます。シェルを使用しないのでsshは許可しません。
- ユーザ claire 作成
$ sudo useradd -d /home/claire -s /bin/bash -m claire $ sudo passwd claire
- WEBサイトコンテンツ directory のオーナ設定、確認。chrootオーナはrootである必要があります。
$ sudo chown root:root /var/www /var/www/html /var/www/html/tech.octaviadata.com $ ll -d /var/www /var/www/html /var/www/html/tech.octaviadata.com drwxr-xr-x 3 root root 4.0K Sep 14 2014 /var/www/ drwxr-xr-x 49 root root 4.0K Jul 31 11:35 /var/www/html/ drwxr-xr-x 9 root root 4.0K Jun 20 15:26 /var/www/html/tech.octaviadata.com/
$ sudo chown -R claire:www-data sites/
- ssh 許可設定
$ sudo vim /etc/ssh/sshd_config #Subsystem sftp /usr/lib/openssh/sftp-server Subsystem sftp internal-sftp
以下は一番下に記述。
AllowUsers claire Match user claire ChrootDirectory /var/www/html/tech.octaviadata.com X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp
$ sudo service ssh restart
- クライアントから設定確認
$ sftp claire@tech.octaviadata.com