Настроить общую папку для монтирования без аутентификации

Моя конечная цель - настроить HP Officejet Pro 8600 для сохранения отсканированных изображений в общую папку на моем компьютере (с помощью функции принтера «Сканировать в сетевую папку»).

Итак, я настроил папку на моем компьютере как общий сетевой ресурс следующим образом:

screenshot

$ net usershare info --long
[LocalNetwork]
path=/path/to/LocalNetwork
comment=
usershare_acl=Everyone:F,
guest_ok=y

Я также настроил свой брандмауэр UFW, чтобы разрешить доступ из локальной сети к портам, используемым Samba:

$ sudo ufw allow from 192.168.178.0/24 to any app Samba
Rule added
$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
137,138/udp (Samba)        ALLOW IN    192.168.178.0/24          
139,445/tcp (Samba)        ALLOW IN    192.168.178.0/24

И принтер, и мой компьютер находятся в той же сети, и я использую \\ \ LocalNetwork в качестве сетевого пути. Поскольку при тестировании принтер сообщает "Ошибка подключения" соединение, я решил проверить его с помощью Raspberry Pi, который находится в той же сети. Когда я пытаюсь смонтировать папку, она запрашивает пароль для пользователя root :

$ sudo mount -t cifs //192.168.178.92/LocalNetwork test_mount_point
Password for root@//192.168.178.92/LocalNetwork:

Я этого не ожидал, так как я настроил папку для гостевого доступа. Так почему же он пытается пройти аутентификацию и как я могу настроить доступ к папке без аутентификации?

Изменить

При передаче -o guest он не запрашивает пароль, однако я получаю ошибка монтирования (13): В доступе отказано :

$ sudo mount -t cifs -o guest //192.168.178.92/LocalNetwork test_mount_point
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

Изменить

После этого ответа я добавил пользователя через smbpasswd с паролем ( nopass ):

$ sudo smbpasswd -a nobody

Когда я пытаюсь смонтировать папку с этим именем пользователя и паролем, я получаю новую ошибку:

$ sudo mount -v -t cifs -o user=nobody,password=nopass //192.168.178.92/LocalNetwork test_mount_point
mount error(5): Input/output error

Изменить: testparm -s

Это результат:

$ testparm -s
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE

# Global parameters
[global]
    log file = /var/log/samba/log.%m
    logging = file
    map to guest = Bad User
    max log size = 1000
    obey pam restrictions = Yes
    pam password change = Yes
    panic action = /usr/share/samba/panic-action %d
    passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
    passwd program = /usr/bin/passwd %u
    server role = standalone server
    server string = %h server (Samba, Ubuntu)
    unix password sync = Yes
    usershare allow guests = Yes
    usershare owner only = No
    idmap config * : backend = tdb

[LocalNetwork]
    create mask = 0777
    guest ok = Yes
    path = /path/to/LocalNetwork
    read only = No
0
задан 7 December 2020 в 17:25

1 ответ

Как оказалось, в моей сети есть HP8600, и я не смог воспроизвести вашу проблему, когда установил сетевую папку на HP на машину с Xubuntu 18.04.

Но я получил точно такую ​​же ошибку «Отказ в соединении», когда тестировал ее на машине с Ubuntu 20.04.

Похоже, что либо из-за своего возраста, либо из-за метода, который он использует для подключения к общему ресурсу samba, он использует версию 1.0 диалекта SMB. На стороне сервера Samba в Ubuntu 20.04 нет SMB1 (samba называет его NT1)...но вы можете включить его, если хотите:

Отредактируйте /etc/samba/smb.conf и прямо под force user = your-user-name, который я предложил выше, добавьте этот:

server min protocol = NT1

Затем перезапустите smbd: sudo service smbd restart

Возможно, вам потребуется перезагрузить Ubuntu. Теперь я могу отправить его на общий ресурс Ubuntu 20.

Несколько замечаний по поводу того, что здесь всплыло:

  1. Вам необходимо принять решение о том, как вы хотите создавать общие ресурсы.

    Вы создали общий ресурс пользователя (локальный сетевой ресурс) целевой папки в Nautilus, а затем создали классический общий ресурс в smb.conf. Лучше всего создать их тем или иным способом, если вы хотите поделиться определенной папкой. Поэтому я предлагаю удалить один из общих ресурсов для этой папки.

  2. Принудительное использование пользователя происходит после того, как клиент установит соединение, а не раньше.

  3. Место размещения «принудительного пользователя» зависит от того, как вы создали общий ресурс.

    Если вы создаете все свои общие ресурсы через Nautilus, поместите их в секции [global], как я предложил выше. Если вы создаете общие ресурсы в smb.conf, добавьте их в определение общего ресурса.

  4. Без «принудительного пользователя» отсканированный файл будет принадлежать «никто», кроме вас.

  5. И вам не следует никого удалять из базы данных паролей samba, так как она не предназначена для использования так, как вы ее используете:

     sudo smbpasswd -x Nobody
     
2
ответ дан 7 December 2020 в 16:41

Другие вопросы по тегам:

Похожие вопросы: