Temp_dirのアクセス許可を777に変更しようとしています。なぜこれらのコマンドはそれを達成しないのですか?ちなみに私はLinuxを使用しています。
kylefoley@kfoley76:/mnt/disks$ chmod 777 /mnt/disks/temp_dir
kylefoley@kfoley76:/mnt/disks$ stat -c "%a %n" temp_dir
755 temp_dir
冗長スイッチも試しました
kylefoley@kfoley76:/mnt/disks$ chmod -v 777 /mnt/disks/temp_dir
mode of '/mnt/disks/temp_dir' changed from 0755 (rwxr-xr-x) to 0777 (rwxrwxrwx)
kylefoley@kfoley76:/mnt/disks$ stat -c "%a %n" temp_dir
755 temp_dir
Sudo
を使用できない理由もわかりません
kylefoley@kfoley76:/mnt/disks/temp_dir$ Sudo chmod 777 fix_mistakes
chmod: cannot access 'fix_mistakes': Permission denied
Rootユーザーでログインしても
kylefoley@kfoley76:/mnt/disks/temp_dir$ Sudo -i
root@kfoley76:~# Sudo chmod 777 /mnt/disks/temp_dir
chmod: cannot access '/mnt/disks/temp_dir': Permission denied
また、このバグは、問題のディレクトリがgcsfuseでマウントされたディスクであり、gcloudから入手できるという事実に関係している必要があることも付け加えておきます。権限を変更する他の試みはうまくいきました:
kylefoley@kfoley76:~$ mkdir hey
kylefoley@kfoley76:~$ stat -c "%a %n" hey
755 hey
kylefoley@kfoley76:~$ chmod 777 hey
kylefoley@kfoley76:~$ stat -c "%a %n" hey
777 hey
gcsfuseは、マウント時にファイルとディレクトリの権限を設定します。具体的には、オプションは次のとおりです。
file_mode
–ファイルの許可ビット(8進数)dir_mode
–ディレクトリのアクセス許可ビット(8進数)オプションを指定しない場合、デフォルトはdir_mode=0755,file_mode=0644
です。
これらのオプションは、マウント内のすべてのファイルとディレクトリに適用されます。このFuseファイルシステムには、特定のファイルまたはディレクトリの権限を変更する機能がないため、chmod
は何もしません。
さらに、gcsfuseには、ファイルシステムをマウントしたユーザーへのアクセスを制限する追加のアクセス制限があります。詳細:
セキュリティ対策として、Fuse自体は、ファイルシステムへのアクセスを、ファイルシステムをマウントしたユーザーに制限します(cf. Fuse.txt )。このため、gcsfuseはデフォルトで、呼び出し元のユーザーが所有しているすべてのファイルを表示します。したがって、rootとしてではなく、ファイルシステムを使用するユーザーとしてgcsfuseを呼び出す必要があります。
何をしているのかわかっている場合は、Fuseでサポートされている
allow_other
マウントオプションと、gcsfuseでサポートされている--uid
および--gid
フラグを使用して、これらの動作を上書きできます。 。注意してください、これはセキュリティに影響を与える可能性があります!
これが、別のユーザーからマウントにアクセスできない理由です。他のユーザーがマウントにアクセスできるようにするには、マウントオプションでallow_other
を指定します。
私は次の方法で問題を解決することができました:Cloud APIアクセススコープに移動し、VM構成の下で、ストレージへの読み取り/書き込みまたはフルアクセスを持っていることを確認する必要がありました。これには、インスタンスを一覧表示するgcloudコンソールで編集します。ページの下部で、ストレージに制限があり、「フル」に変更しました。