web-dev-qa-db-ja.com

sshfsにマウントされたファイルシステムのumaskを設定します

/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のマウントされた共有には影響しません。

4
Martin Vegter

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は常に、ファイルを作成するプロセスの実行に関連付けられていることに注意してください。

5
Jakuje