SSHFを使用してユーザーとグループをマッピングする方法

SSHFを使用してユーザーとグループをマッピングする方法

以下に示すように、ユーザーをkevcoder00からkevcoder01にマップできますが、グループがkevcoder01に存在しなくてもグループはマリゴールドにマップされます。

l00py@kevcoder00:~$ sshfs -o idmap=user l00py@kevcoder01:/home/l00py ~/kevcoder01/
l00py@kevcoder01's password: 
l00py@kevcoder00:~$ ls -hl kevcoder01/
total 0
-rw-r--r-- 1 l00py marigold 0 Jul  4 00:34 I_LIVE
-rw-r--r-- 1 l00py marigold 0 Jul  4 00:59 I_LIVE_AGAIN

ユーザーとグループをマッピングするにはどうすればよいですか?

答え1

私の考えではマリーゴールドとは合わないようです。 marigold は、リモートサーバー devcoder01 のデフォルトグループ 100py とローカルマシンの同じ GID を使用します。

例えば

私のラップトップでは、デフォルトのグループはGID 501、samlです。

$ id -a
uid=500(saml) gid=501(saml) groups=501(saml),502(vboxusers),503(jupiter)

私のリモートサーバーSkinnerでは、ユーザーsamは次のコマンドを使用します。

$ id -a sam
uid=5060(sam) gid=1000(users) groups=1000(users),1060(pics),1050(mp3s),1070(mock)

今接続すると:

$ sshfs -o idmap=user sam@skinner:/home/sam /home/saml/mnt

$ ls -l ~/mnt
drwxr-xr-x 1 saml users     4096 May 27  2011 projects
drwxr-xr-x 1 saml users     4096 Mar 11 22:53 public_html
-rw-r--r-- 1 root root   1992744 Apr 18  2012 rest.war
-rw-r--r-- 1 saml  1000      136 Sep  4  2012 scott_jay_addresses.txt
drwxr-xr-x 1 saml  1000     4096 Jun 27  2012 SparkleShare

このディレクトリを見ると、他のグループにアクセスできることがわかりますが、これはsshfsがうまく機能する方法です。これはリモートのUID / GIDを使用して共有ディレクトリを表示し、ローカルシステムは同じUID / GIDを使用します。

-nスイッチを使用すると、ls -l実際のUID / GIDを表示できます。

$ ls -ln
drwxr-xr-x 1 500  100     4096 Mar 11 22:53 public_html
-rw-r--r-- 1   0    0  1992744 Apr 18  2012 rest.war
-rw-r--r-- 1 500 1000      136 Sep  4  2012 scott_jay_addresses.txt
drwxr-xr-x 1 500 1000     4096 Jun 27  2012 SparkleShare

/etc/groupローカルシステムファイルに1000のエントリがある場合は、ls -l上記の出力で "user"グループがGID 100を使用していることがわかり、ローカルシステムに次のエントリがあります。

users:x:100:

答え2

状況(結果id -a)に応じて持続可能な開発管理返信してみてください。次のことを試すことができます。

sudo sshfs -o allow_other,default_permissions,uid=500,gid=501 sam@skinner:/home/sam /home/saml/mnt

関連情報