Users

如何使用 sshfs 映射使用者和組

  • March 26, 2021

正如您在下面看到的,我能夠將使用者從 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)

在我的遠端伺服器 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. 在上面的輸出中,您可以看到組“使用者”正在使用 GID 100,而我恰好在我的本地系統中有一個條目:

users:x:100:

引用自:https://unix.stackexchange.com/questions/81707