Настройка Ubuntu для совместного использования папки с доступом только для чтения для гостей и записи для аутентифицированных пользователей

Я настраиваю файловый сервер на работе. Это сервер Ubuntu, на котором я смонтировал и открыл общий доступ к жесткому диску. т.е. через "Local Network Share" - самба под капотом.

Это отлично работает. Пользователи могут просматривать на машине из Windows. Нет необходимости предоставлять учетные данные (до того, как учетные данные были включены и люди ворчали).

Но теперь мне нужно иметь возможность загружать файлы на сервер. т.е. мне нужны разрешения на запись. Но я не хочу, чтобы все пользователи могли писать.

Можно ли настроить общий ресурс так, чтобы гости могли просматривать и читать его (без учетных данных), а другие пользователи могли входить и записывать на диск?

Я наткнулся на этот пост

https://serverfault.com/questions/354791/samba-share-with-guest-access-and-authenticated-users-for-write-access

который, кажется, предполагает, что это так. Но в моем файле smb.confg я не вижу папку, которой я делюсь.

Я также не до конца понимаю предложение. Некоторые из понятий потерялись на мне, так как я был ребенком UI.

Разъяснение:

С точки зрения пользователей Windows, я ищу

a) Предоставьте гостевой доступ только для чтения, чтобы любой мог загружать файлы без учетных данных. b) Поддерживать авторизацию (для 1/2 пользователей), которая может загружать файлы.

Причина в том, что мне нужно это потому, что я хочу хранить символы pdb на сервере и использовать "symstore add" для загрузки их с компьютера с Windows.

3 ответа

Решение

Обдумывал это и нашел простое решение. Папка, которой я делюсь

/ Мнт / первичный / первичный /Public

На Public я щелкнул правой кнопкой мыши и выбрал Local Network Share. Я установил следующие параметры

  1. Поделиться этой папкой
  2. Гостевой доступ (для людей без учетной записи пользователя)

Я переместился на один каталог вверх

/ Мнт / первичный / первичный

На основном я нажал правой кнопкой мыши и выбрал Local Network Share. Я установил следующие параметры

  1. Поделиться этой папкой
  2. Разрешить другим создавать и удалять файлы в этой папке

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

sudo smbpasswd -a USERNAME

Где USERNAME - имя пользователя с правами на запись. Эта команда попросила меня также назначить пароль для пользователя USERNAME.

Теперь, когда я просматриваю общий ресурс из Windows, я вижу 2 папки.

  • первичный
  • общественного

Пользователи, которые заходят в Public, имеют доступ только для чтения и не нуждаются в учетных данных.

Пользователи, которые переходят на основной, получают запрос имени пользователя / пароля, где работает имя пользователя / пароль. Те, кто входит, имеют доступ для записи.

Предостережение: это работает, только если в / mnt / primary / primary установлены правильные права доступа к файлам. Для простоты я хочу предоставить полные права всем пользователям. т.е.

chmod 777 -R /mnt/primary/primary

Но очевидно, что это плохая идея, если вы беспокоитесь о безопасности на машине с Ubuntu.

Справа давайте сделаем шаг назад. Каждый файл имеет владельца (пользователя) и находится в группе. Права доступа к файлам делятся на 3 категории: пользовательские, групповые и другие. Пользователи могут быть добавлены в группы. Файл pemisions может быть Read, Write или eXecute. Команда apropos перечисляет все соответствующие руководства, команда man, за которой следует команда, отображает страницу команд man (ual). Попробуйте команды chown и chmod, а также владельца и разрешения каталога, в который монтируется ваш samba-диск. Я думаю, что ваше решение состоит в том, чтобы поместить файлы в группу rw, а другие - в надежную группу пользователей.

Если то, что вы говорите, требуются разрешения: user???, группа (доверенные) rwx, дополнительные (именованные) r, публичные нет. Единственный способ смоделировать эти дополнительные разрешения - сделать группу файлов доступной для чтения, никому не доступной. Затем создайте частое задание cron, которое будет аккуратно копировать пользователей ~/.samba_upload, это будет как обходные права root.

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