Muszę zamontować zewnętrzny zasób udostępniony za pomocą sshfs
. Mam skonfigurowane uwierzytelnianie SSH między moim komputerem a serwerem za pomocą lokalnego użytkownika (innego niż root) i działa jak urok za pomocą następującego polecenia:
sshfs rperez@<server_ip>:/home/rperez/shared -p 2051 ~/shared -o auto_cache,reconnect
Teraz muszę udostępnić zamontowany zasób kontenerem Docker jako wolumin, ale widocznie nie jest to możliwe bez uruchomienia powyższego polecenia za pomocą sudo
. Jest to wyjście do uruchomienia polecenia powyżej jako sudo
:
$ sudo sshfs rperez@<server_ip>:/home/rperez/shared -p 2051 ~/shared -o auto_cache,reconnect
[sudo] password for rperez:
fuse: bad mount point `/home/rperez/shared': Transport endpoint is not connected
Punkt montowania zmienia się na czerwony z ?
jako pierwsza postać i staje się niedostępna ?shared
(czerwony, ponieważ widzę z mc`.
Próbowałem skonfigurować uwierzytelnianie SSH za pomocą sudo
ale najwyraźniej tak jest niemożliwe jak w odpowiedzi na ten post . Przeczytałem kilka na ten temat ( 3 , 4 , 5 , 6 ) temat, ale nie mogę tego zrobić.
Jakakolwiek rada? Czego tu brakuje?
Aktualizacja :
Zgodnie z sugestią @Xaloroues uruchomiłem następujące polecenia:
$ sudo mkdir shared
$ sudo sshfs rperez@<server_ip>:/home/rperez/shared -p 2051 /mnt/shared -o auto_cache,reconnect
rperez@<server_ip> password:
Polecenie mount działa, ale nie mogę uzyskać dostępu do zamontowanego zasobu. Uruchomiłem następujące polecenie i zobaczę dane wyjściowe:
$ sudo stat /mnt/shared
[sudo] password for rperez:
File: 'shared'
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 32h/50d Inode: 1 Links: 1
Access: (0775/drwxrwxr-x) Uid: ( 1041/ UNKNOWN) Gid: ( 1038/ UNKNOWN)
Access: 2016-09-30 10:27:28.000000000 -0400
Modify: 2016-09-21 15:20:20.000000000 -0400
Change: 2016-09-21 15:20:20.000000000 -0400
Birth: -
Zobacz także ten obrazek o tym, jak wygląda zamontowany folder:
Uprawnienia przed zamontowaniem zasobów udostępnionych wydają się być w porządku:
$ ls -la /mnt/
total 16
drwxr-xr-x. 4 root root 4096 Sep 30 10:35 .
dr-xr-xr-x. 18 root root 4096 Sep 30 08:10 ..
drwxr-xr-x 2 root root 4096 Sep 30 10:35 shared
Więc co się stało?
/mnt/shared
. Po zamontowaniu jakie są wyniki tego samego polecenia? (ls -ld /mnt
). 'UNKNOWN' w UID i GID wstat
polecenie results.is wynika z faktu, że NFS używa UID i GID do określenia własności i przynależności do grupy, a UID i GID nie są automatycznie synchronizowane między systemami. Istnieje wiele sposobów ich synchronizacji, z różnym stopniem złożoności, żadna nie jest łatwa i zautomatyzowana.Odpowiedzi:
Root nie ma uprawnień do punktu montowania. Wybierz jeden poza swoim profilem. Najlepsze miejsce na Standard hierarchii systemu plików byłby punktem montowania w / mnt.
źródło
someuser
dla naszego przykładu). Biegaćsudo su
(bez zwykłego -). W rezultacie przełączasz się na roota, ale nie zmieniasz środowiska. Nadal jesteś w / user / someuser pwd. Teraz biegnijls
i powiedz mi jeszcze raz, jak się mylę. Jeśli użytkownik nie zmodyfikował uprawnień lub prawa własności / user, root nie może przejść do folderów poszczególnych użytkowników jako root. Root może przełączyć się na użytkownika, a następnie wejść. Root może przejąć własność, a następnie wejść. Root może zmienić uprawnienia na + r na innych bitach, a następnie wejść. Ale root nie może odczytywać folderów domowych użytkowników bezpośrednio bez modyfikacji.