LoginSignup
0
0

More than 3 years have passed since last update.

所有権が適切に設定されているのにシンボリックリンクが開けないといわれた件について

Posted at

TL;DR

chroot の影響を受けるユーザーは、chroot で設定されているディレクトリよりもシンボリックリンクの参照先が上位にある場合、適切な所有権を有していても、シンボリックリンクの参照先の操作はできない。
シンボリックリンクの参照先のファイルを操作したい場合は、mount コマンドで設定すれば、操作することができる。

シンボリックリンクの参照先のファイルを操作する場合の対応

前提として

$ whoami
qiita
$ pwd
/home/qiita
$ ls -l ~/
drwxr-xr-x 10 qiita qiita    6144 Jun 14 09:59 public_html -> /mnt/efs/qiita/www/public_html

となっているとする。

mount コマンドの場合

一時的な対応であれば、mount コマンドで実行してしまう。

$ mount --bind /mnt/efs/qiita/www/public_html /home/qiita/public_html

継続的に設定を反映する場合

/etc/fstab に記述する。

$ sudo vim /etc/fstab
/mnt/efs/qiita/www/public_html  /home/qiita/public_html  none  bind
$ sudo mount -a
$ ls -l ~/
drwxr-xr-x 10 qiita qiita    6144 Jun 14 09:59 public_html
$ ls ~/public_html/
index.html

教訓

FTP や SFTP でログインするユーザーがいる場合、セキュリティ上の理由から chroot で参照できるディレクトリに制限をかけられている場合がある。

chroot をかけられているユーザーがいるかどうかを確認する場合

SSH ならば

$ cat /etc/ssh/sshd_config | grep ChrootDirectory

として、制限が設けられているユーザーの有無を確認する。

ftp ならば、

FTP サーバーが動いていることを確認して、

$ sudo netstat -natp | grep ":21 "
tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN      2046/vsftpd

FTP サーバーの設定ファイルを確認する。vsftpd の場合は、

# chroot_local_user: ユーザのログインディレクトリを、そのユーザのルートディレクトリに変更 (chroot) する
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_users

で、chroot が有効になっているかを確認して、対象ユーザーのルートディレクトリを確認する。

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