SSHF를 사용하여 사용자 및 그룹을 매핑하는 방법

SSHF를 사용하여 사용자 및 그룹을 매핑하는 방법

아래에서 볼 수 있듯이 사용자를 kevcoder00에서 kevcoder01로 매핑할 수 있지만 그룹이 kevcoder01에 존재하지 않더라도 그룹은 marigold로 매핑됩니다.

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

관련 정보