以下に示すように、ユーザーをkevcoder00からkevcoder01にマップできますが、グループはmarigoldにマップされますが、そのグループは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
ユーザーとグループの両方をマップするには何をする必要がありますか?
マリーゴールドへのマッピングではないと思います。 marigoldがローカルシステムで使用しているGIDは、リモートサーバーdevcoder01のデフォルトグループの100pyと同じです。
私のラップトップでは、デフォルトのグループはGID 501、samlです。
$ id -a
uid=500(saml) gid=501(saml) groups=501(saml),502(vboxusers),503(jupiter)
私のリモートサーバースキナーでは、ユーザー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: