/mnt/data
にマウントされたリモートsshfsファイルシステムがあります。以下は、/etc/fstab
の関連行です。
[email protected]:/var/www/ /mnt/data Fuse.sshfs rw,noauto,nodev,nosuid,noexec,_netdev,allow_other,default_permissions,uid=martin,gid=martin 0 0
リモートシステムの/var/www/
内のファイルはユーザーwww-data
が所有していますが、マウントされたファイルシステムの所有権をuid1000にマップするためにuid=martin,gid=martin
を使用しています。
Martinとして/mnt/data/
にcdすると、正しいファイルのアクセス許可/所有権がありますが、umaskを変更する必要があります。
リモートファイルシステムでは、ユーザーwww-data
にはumask0027
があります。私のローカルファイルシステムでは、ユーザーmartin
はumask0077
を持っています。ローカルファイルにumask0077
を保持したいのですが、sshfsにマウントされたファイル(つまり、/ mnt/data /内のすべてのファイル)に0027
を使用します。
これも可能ですか?
リモートファイルシステムのディレクトリ全体にaclアクセス許可を設定しようとしました。
setfacl -d -m g::rx /var/www/
setfacl -d -m o::--- /var/www/
ただし、これはsshfsのマウントされた共有には影響しません。
sshfs
は内部でsftp
を使用しており、新しいファイルを作成するためのumask
はリモートのsftp-server
によって処理されます。 umask
を、サーバー上のsftp-server
の/etc/ssh/sshd_config
への引数として設定できます。
Subsystem sftp /usr/lib/openssh/sftp-server -u 027 # Debian/Ubuntu
または
Subsystem sftp /usr/libexec/openssh/sftp-server -u 027 # RHEL/Fedora
または
Subsystem sftp /usr/lib/ssh/sftp-server -u 027 # Arch
Umask設定と拡張ACLは、opensshで実装されているSFTPプロトコルを介して転送されません。また、「ファイルにumask
」はありませんが、umask
は常に、ファイルを作成するプロセスの実行に関連付けられていることに注意してください。