したがって、sshfsのインストールに権限の問題があります。
root@server01:/mnt# sshfs -o uid=$(id -u www-data) -o gid=$(id -g www-data) user@host:/path mountpoint
root@server01:/mnt# ls -Zlah
total 12K
drwxr-xr-x 3 root root ? 4.0K Nov 29 20:00 .
drwxr-xr-x 23 root 1001 ? 4.0K Nov 29 13:03 ..
drwxrwxrwx 1 www-data www-data ? 4.0K Nov 29 18:53 mountpoint
root@server01:/mnt# getfacl mountpoint/
# file: mountpoint/
# owner: www-data
# group: www-data
user::rwx
group::rwx
other::rwx
root@server01:/mnt# sudo -u www-data ls -lah
ls: cannot access mountpoint: Permission denied
total 8.0K
drwxr-xr-x 3 root root 4.0K Nov 29 20:00 .
drwxr-xr-x 23 root 1001 4.0K Nov 29 13:03 ..
d????????? ? ? ? ? ? mountpoint
おそらく問題はここにあります。
root@server01:/mnt# mount
# unrelated stuff skipped
user@host:/path/ on /mnt/mountpoint type fuse.sshfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0)
ここでは、マウントされたuidとgidの両方が0、つまりルートと呼ばれます。しかし、私のmountコマンドでlsをrootとして使用すると、すべてがwww-dataのgid / uid 33に属していることがわかります。
ベストアンサー1
sshfs = FUSE、rootとしてインストールしてから、他のユーザーを使用してアクセスしようとしています。
冗談/テストです。通常のユーザーとしてsshfsを実行してからroot、CDに切り替えることができます。ああ、権限が拒否されました。どのようにルートを拒否できますか?ルートです...
アクセスするユーザーとして sshfs を実行します。
更新された例:
**test**@mike-laptop4:/mnt$ sshfs [email protected]:/home/mike moo
test@mike-laptop4:/mnt$ ls moo/
src
mike@mike-laptop4:/mnt$ ls moo
ls: cannot access 'moo': Permission denied
mike@mike-laptop4:/mnt$ sudo su
root@mike-laptop4:/mnt# ls moo
ls: cannot access 'moo': Permission denied
その逆:
**mike**@mike-laptop4:/mnt$ sshfs [email protected]:/home/mike moo
mike@mike-laptop4:/mnt$ ls moo
src
test@mike-laptop4:/mnt$ ls moo
ls: cannot access 'moo': Permission denied
mike@mike-laptop4:/mnt$ sudo su
root@mike-laptop4:/mnt# ls moo
ls: cannot access 'moo': Permission denied
更新され拡張されたソリューション:
ソリューション1:データアクセスに必要なユーザーとしてインストールされます(セキュリティ設定)。
$ sshfs [email protected]:/home/mike moo
このオプションを使用すると、インストールしたユーザーのみがデータにアクセスできます。
次の2xソリューションに必要です(rootとしてインストールしない限り、sshfsにrootを使用しないでください)。
/etc/fuse.conf user_allow_other
ソリューション2:ボックス内のすべてのユーザーにアクセスを許可します。
$ sshfs -o allow_other [email protected]:/home/mike moo
文字通り、元のホストのすべてのユーザーがファイルを作成、編集、削除できます。これはほとんどの場合悪い考えであり、PCI環境ではイメージングを許可できません。
リモートのすべてのデータが危険にさらされるだけでなく、ローカルユーザーが後で他のローカルユーザーが使用できるデータを操作する危険もあります。
解決策3:マシンのすべてのユーザーを許可しますが、ローカルファイルシステムの権限を尊重します。
$ sshfs -o allow_other,default_permissions [email protected]:/home/mike moo
ローカルファイルシステムで承認されたユーザーのみがマウント内のファイルにアクセス/編集できるため、このオプションは以前のオプションよりも適しています。
グループベースの権限も設定できます。