リモートでサーバーにアクセスできます。私は0007に設定しましたumask
。私のサーバー名は「sme」、ローカル名は「lme」と指定します。だから私は次のことをしました。
sme@server$ touch f1
sme@server$ ls -l f1
-rw-rw---- 1 sme 0 Jun 16 18:46 f1
これでローカルコンピュータに移動します。
lme@local$ umask
0007
lme@local$ mkdir server
lme@local$ sshfs sme@server /home/sme /server/ -o umask=0000
lme@local$ touch server/f2
lme@local$ ls -l server/f2
-rwxrwxrwx 1 lme 1001 0B Jun 16 18:48 server/f2
まず、すべてのローカルユーザーがf2に対するフルアクセス権を持っていることを確認しました。なぜ?umask
他のユーザーの権限を7に設定したので、ファイル権限は0にする必要があります。
サーバー側で確認してください。
sme@server$ ls f2
-rw-r----- 1 sme 0 Jun 16 18:48 f2
サーバーにログインするときに実行権限が設定されていません。私のサーバーグループはファイルに書き込めません。また、ファイルの所有者は、ローカルユーザー「lme」ではなく、サーバーユーザー「sme」です。その後sshfs
、確認した後、サーバーユーザーのuidとgidを指定してみました。
# Get server user's id and group id
sme@server$ id
uid=1059(sme) gid=1001(server-group) groups=1001(server-group)
# Remount the server's root
lme@local$ umount server/
lme@local$ sshfs sme@server /home/sme /server/ -o umask=0000 -o uid=1059 -o gid=1001
lme@local$ touch server/f3
lme@local$ ls -l server/f3
-rwxrwxrwx 1 lme 1001 0B Jun 16 18:50 server/f3
しかし:
sme@server$ ls -l
-rw-r----- 1 sme 0 Jun 16 18:50 f3
uid
およびgid
to を指定しても、sshfs
ファイル権限については何も変更されません。また、グループ所有者はサーバーでは 0 で、ローカルのマウントポイントにリストされている場合は 1001 です。逆説的に、私のローカルユーザーは、私のサーバーユーザーによって作成されたすべてのファイルに対して設定されたすべてのファイル権限を表示できます。
ただし、最初にローカルでサーバーに生成されたファイルを確認すると、所有者の名前が変更されることがわかります。ローカルでマウントされたフォルダを確認すると、ローカルユーザー "lme"はファイル所有者ですが、サーバーで確認するとユーザー "sme"が取得されます。所有権。第二に、ローカルグループ権限設定はサーバー側に従わない。サーバーグループに書き込み権限がありません。第三に、着信パラメータのマスクは、sshfs
ローカルユーザーのマスクまたはサーバーユーザーのマスクと一致しません。
私のサーバーのユーザーとグループは、ローカルユーザーが作成したすべてのファイルとフォルダにアクセスできることを願っています。私はこれを行う方法と最も重要なumask
ことはsshfs
。