Назад | Перейти на главную страницу

Как настроить samba share для монтирования от имени конкретного пользователя?

Я хочу создать общий ресурс samba, к которому пользователи могут подключаться как конкретный пользователь samba. Я создал пользователя, скажем, Генри, и хочу сделать хранилище в его доме.

Итак, у меня в /etc/samba/smb.conf:

[myshare]
  path = /home/henry
  browsable = yes
  read only = no
  guest ok = no
  create mask = 0644

Теперь, когда я подключаюсь через smbclient, все в порядке. Но я хочу смонтировать этот ресурс как CIFS. Я могу сделать:

sudo mount -t cifs //myserver/myshare /media/remote-share -o user=henry

Но затем, когда я пытаюсь создать файл в / media / remote-share, мне отказывают в разрешении :(

Как мне его настроить, если я хочу, чтобы у всех был доступ к нему, но как конкретный пользователь, а не как гость?

И сервер, и клиент - это машины с Ubuntu.

хорошо, я перечитал твой вопрос и получил другой ответ.

когда вы монтируете его в / etc / fstab или с помощью sudo mount из командной строки, вам необходимо установить uid и gid, а также, необязательно, umask (file_mode и dir_mode), чтобы локальные пользователи на клиенте могли использовать общий ресурс. в противном случае он будет по умолчанию принадлежать root, а W - только root. и, вероятно, не помешает явно смонтировать его как RW.

sudo mount -t cifs //myserver/myshare /media/remote-share \
  -o rw,user=henry,uid=xxx,gid=yyy

где xxx и yyy - это местный (локальный для клиента, то есть) пользователь и группа, которые должны «владеть» общим ресурсом при его монтировании. если доступ нужен только одному локальному пользователю, gid, вероятно, не имеет значения. если доступ нужен нескольким локальным пользователям, то должен быть установлен gid, и каждый локальный пользователь, которому нужен доступ, должен быть членом этого gid.

в зависимости от настроек вашей сети могут потребоваться другие параметры (например, вам может потребоваться указать домен). см. man-страницу для mount.cifs (8) для получения более подробной информации.

Кстати, см. Примечания к файлу учетных данных, если вы монтируете его из / etc / fstab. fstab доступен для чтения во всем мире, поэтому не подходит для паролей. файл учетных данных может принадлежать пользователю root, режим 600.

команда mount находится на стороне клиента и не контролирует то, что позволяет сервер.

вам необходимо настроить общий ресурс на сервере, чтобы любой член определенной группы ("допустимые пользователи = имя группы") мог подключиться к общему ресурсу, а затем принудительно установить соединение от имени пользователя Генри ("принудительный пользователь = Генри"), независимо от того, с каким именем пользователя / паролем они вошли в систему.

в ubuntu, как и в Debian, Генри, вероятно, уже имеет свою собственную выделенную группу (adduser в Debian по умолчанию создает группу для каждого пользователя), но не используйте это, если вы не хотите, чтобы каждый в этой группе имел доступ ко всем группам Генри. файлы, а не только те, которые находятся в общей папке.

например создайте группу unix (или ldap, или Active Directory) под названием «henry-share-g» и добавьте в эту группу всех, кому нужен доступ к общему ресурсу.

затем настройте общий ресурс в samba, чтобы установить разрешения так, чтобы файлы создавались RW пользователем и группой, а каталоги создавались RWX пользователем и группой И setgid (чтобы новые файлы / каталоги создавались с группой 'henry-share-g' ).

например что-то вроде этого:

[myshare]
    path = /home/henry
    force security mode = 0664
    force directory security mode = 2775
    force create mode = 0664
    force directory mode = 2775
    read only = No
    browseable = Yes
    force user = henry
    force group = henry-share-g
    valid users = +henry-share-g

этот пример делает файлы и каталоги доступными для чтения всем, а также для чтения пользователем и группой. если вы этого не хотите, используйте 0660 для файлов и 2770 для каталогов.

Кстати, это примерно то, что я делаю на своем сервере самбы на работе, когда один из профессоров хочет, чтобы все члены его исследовательской группы могли использовать общий ресурс.

единственная реальная разница в том, что я не использую существующую учетную запись пользователя. Я создаю в AD специального пользователя для общего доступа, а также выделенную группу, потому что должно быть разделение между личными файлами профессора и файлами его / ее исследовательской группы. Я также установил квоту для этого пользователя и группы, которая отделена от личной квоты пользователя. то есть я бы создал и использовал что-то вроде «henry-share-u», а не использовал бы существующую учетную запись «henry».

Это зависит от бэкэнда passdb, который вы выбрали в smb.conf.

Если вы используете tdbsam backend (рекомендуется samba) и установите security к user:

security = user
passdb backend = tdbsam

Ты можешь использовать /usr/bin/smbpasswd для добавления пользователей самбы:

  1. Добавьте пользователя UNIX, используя /usr/sbin/useradd
  2. Добавить пользователя samba с помощью smbpasswd -L -a <user> (-L: локальный режим, -a: добавить пользователя)
  3. Сопоставьте своих пользователей с помощью /etc/samba/smbusers [Синтаксис: <unix-user> = <smb-user1> <smb-user2> <smb-userN>]

Пути могут быть отложены в вашем дистрибутиве GNU / Lunux.