Встановіть належні права для точки встановлення sshfs, щоб вона могла бути спільною для samba


12

У мене хостер домену, який забезпечує доступ через SSH.

Мої платформи:

  • Gentoo 2.6.36-r5
  • Windows (XP / Vista / 7)

Я працюю над своєю Windows, я використовую Gentoo, щоб виконувати всі чари Windows не можуть.

Тому я використовую sshfs для монтажу віддаленого загальнодоступного каталогу для свого домену до /mnt/mydomain.com. Аутентифікація проводиться за допомогою ключів, тому мені лінь не раз вводити пароль.

Оскільки я кодую в Windows, і я не хочу весь час завантажувати / завантажувати змінені файли, я хочу отримати доступ до цього /mnt/mydomain.com через спільний доступ самби.

Тож я поділився / mnt у samba, усі кріплення, крім mydomain.com, перелічені у моєму Провіднику Windows.

Мої теорії:

  1. sshfs не встановлює uid / gid точки моменту на те, чого очікує самба
  2. samba не знає, що він повинен включати uid / gid, встановлений /mnt/mydomain.com .
  3. Все вище неправильне, і я не знаю.

Ось конфігурації та вихід з консолі, мені потрібно щось інше, просто дайте мені знати. Також жодних помилок чи попереджень, які я помічаю, що стосуються цього питання, але я можу помилятися.

gentoo ~ # ls -lah /mnt
total 20K
drwxr-xr-x  9 root  root  4.0K Mar 26 16:15 .
drwxr-xr-x 18 root  root  4.0K Mar 26  2011 ..
-rw-r--r--  1 root  root     0 Feb  1 16:12 .keep
drwxr-xr-x  1 root  root     0 Mar 18 12:09 buffer
drwxr-s--x  1 68591 68591 4.0K Feb 16 15:43 mydomain.com
drwx------  2 root  root  4.0K Feb  1 16:12 cdrom
drwx------  2 root  root  4.0K Feb  1 16:12 floppy
drwxr-xr-x  1 root  root     0 Sep  1  2009 services
drwxr-xr-x  1 root  root     0 Feb 10 15:08 www

/etc/samba/smb.conf

[mnt]
comment = Mount points
writable = yes
writeable = yes
browseable = yes
browsable = yes
path = /mnt

/ тощо / fstab

sshfs#myusername@mywebhotel.com:/home/to/pub/dir/ /mnt/mydomain.com/ fuse comment=sshfs,noauto,users,exec,uid=0,gid=0,allow_other,reconnect,follow_symlinks,transform_symlinks,idmap=none,SSHOPT=HostBasedAuthentication 0 0

Для легшого читання:

  • myusername@mywebhotel.com
  • / додому / в паб / реж /
  • /mnt/mydomain.com/

варіанти:

  • коментар = sshfs
  • noauto
  • користувачів
  • виконувати
  • uid = 0
  • gid = 0
  • дозволити інше
  • знову підключитись
  • follow_symlinks
  • transform_symlinks
  • idmap = немає
  • SSHOPT = HostBasedAuthentication

Довідка!


IIRC, HostbasedAuthenticationне рекомендується використовувати ( PubkeyAuthenticationперевага надається користувачеві)
user1686

SSHFS version 2.8 fuse: unknown option 'SSHOPT=HostBasedAuthentication'
Том Хейл

Відповіді:


11

sshfsє файловою системою на основі FUSE, і шар FUSE не дозволяє іншим користувачам отримувати доступ до її версій за замовчуванням з метою безпеки. У вас є allow_otherваріанти, але вони будуть ігноруватися, поки ви також не редагуєте, /etc/fuse.confщоб включити user_allow_other.


1
Під час виконання "ps aux" лівий стовпець констатує корінь для sshfs та smbd-процесів. Я "розбираю" це як обидва запуски з однаковими привілеями. З виводу ls -lah ви бачите, що uid не є root, цей uid встановлюється sshfs, але я не можу його встановити, принаймні, не зі зміною uid / gid в параметрах. Я вважаю, що самба якимось чином вважає, що він повинен виключати конкретний каталог з uid / gid 68591. (Намагаючись очистити деяку плутанину з мого боку.)
CS01

@ CS01: smbd "master" працює як root, але це не вірно для обробників з'єднань - якщо ви входите через SMB як "jim", ваш smbd процес також переходить на UID "jim".
користувач1686

1
Вам також потрібно зіставити UID та / або GID до потрібного користувача (ів) за допомогою параметрів uid = <UID>, gid = <GID>.
sweisgerber.dev

Дякую всім за відповіді. підсумовуючи тестування на останній версії Ubuntu: 1. update /etc/fuse.conf; 2. Вкажіть ТРИ параметри команди sshfs ( -o allow_other -o uid=<UID> -o gid=<GID>). Здається, не потрібно перезавантажувати smbd(але я не впевнений, оскільки я smbdвсе одно перезапустив ).
bruin

2

Чому ви не монтуєте sshfs безпосередньо з Windows?
Є кілька безкоштовних рішень для цього (див. Тут і тут для отримання додаткової інформації).


1
Ого, цей інструмент чудовий!
CS01

Вони не виглядають дуже перспективно і призупиняються, принаймні зараз, через 3 роки :) Чи є у вас досвід стабільності?
sweisgerber.dev

0

Як працюють ваші звичайні акції smb, я не втрачаю жодного слова щодо конфігурації Samba, тому що ви можете зберегти монтажі sshfs точно так, як ви ділитесь звичайними папками. Але встановлення частки SSH за допомогою sshfs є особливим порівняно з доступом до локальної машини.

Для монтажу вашої частки через fstab, ви можете помістити цей рядок у / etc / fstab та змонтувати спільну частину НА ЗАПИТАННЯ. Це зручніше, ніж команда командного рядка c & p.

Загальна лінія тощо / fstab:

**<USERNAME>**@<SERVER>:<REMOTE_PATH> /MOUNT/POINT fuse.sshfs noauto,users,idmap=user,IdentityFile=/path/to/.ssh/id_rsa,allow_other,reconnect,port=22,uid=<UID>,gid=<GID> 0 0

noauto: вам потрібно встановити його через mount /MOUNT/POINT усю іншу інформацію, яка витягується з цього рядка в / etc / fstab

Користувачі: дозволяє нормальним користувачам змонтувати цей запис на монтажі

відновлюється: відновлює / перераховує ahre після очікування тощо

uid = / gid =: Карту віддаленого uid / gid на цей локальний uid / gid

Приклад:

foo@example.org:/home/foo/music ~/foos_music fuse.sshfs noauto,users,idmap=user,IdentityFile=/home/foo/.ssh/id_rsa,allow_other,reconnect,port=22,uid=foo,gid=users 0 0

Все, що вам потрібно знати про встановлення sshfs [ https://wiki.archlinux.org/index.php/Sshfs]

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.