Настройка Ubuntu для совместного использования папки с доступом только для чтения для гостей и записи для аутентифицированных пользователей
Я настраиваю файловый сервер на работе. Это сервер Ubuntu, на котором я смонтировал и открыл общий доступ к жесткому диску. т.е. через "Local Network Share" - самба под капотом.
Это отлично работает. Пользователи могут просматривать на машине из Windows. Нет необходимости предоставлять учетные данные (до того, как учетные данные были включены и люди ворчали).
Но теперь мне нужно иметь возможность загружать файлы на сервер. т.е. мне нужны разрешения на запись. Но я не хочу, чтобы все пользователи могли писать.
Можно ли настроить общий ресурс так, чтобы гости могли просматривать и читать его (без учетных данных), а другие пользователи могли входить и записывать на диск?
Я наткнулся на этот пост
который, кажется, предполагает, что это так. Но в моем файле smb.confg я не вижу папку, которой я делюсь.
Я также не до конца понимаю предложение. Некоторые из понятий потерялись на мне, так как я был ребенком UI.
Разъяснение:
С точки зрения пользователей Windows, я ищу
a) Предоставьте гостевой доступ только для чтения, чтобы любой мог загружать файлы без учетных данных. b) Поддерживать авторизацию (для 1/2 пользователей), которая может загружать файлы.
Причина в том, что мне нужно это потому, что я хочу хранить символы pdb на сервере и использовать "symstore add" для загрузки их с компьютера с Windows.
3 ответа
Обдумывал это и нашел простое решение. Папка, которой я делюсь
/ Мнт / первичный / первичный /Public
На Public я щелкнул правой кнопкой мыши и выбрал Local Network Share. Я установил следующие параметры
- Поделиться этой папкой
- Гостевой доступ (для людей без учетной записи пользователя)
Я переместился на один каталог вверх
/ Мнт / первичный / первичный
На основном я нажал правой кнопкой мыши и выбрал Local Network Share. Я установил следующие параметры
- Поделиться этой папкой
- Разрешить другим создавать и удалять файлы в этой папке
Я также должен был установить пользователя 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.