Как распределить права доступа на папки в Ubuntu Server?
Доброго времени суток!
Итак, описание проблемы:
Небольшой офис, 8 windows машин, пару маков, сервер на Ubuntu Server. На сервере файловое хранилище и тестовые площадки под внутренние нужды офиса. Поднята самба в локалку. На файлопомойке три основные папки - одна общая, куда ходят все без учеток и паролей, и две закрытые для бухгалтера и админа. И все нормально, все работает, все пользуются, пока бухгалтер или админ не начинают создавать папки или файлы в общей папке. По умолчанию, от других юзеров (без учеток и паролей) папки и файлы создаются от имени nobody и группы nogroup и все имеют к ним доступ. А папки, создаваемые бухгалтером и админом, получают права их имен и их групп, соответственно все остальные юзеры доступа к ним не имеют. А хотелось бы бы наоборот.
И теперь вопрос: как сделать так, чтобы бухгалтер и админ ходили в свои закрытые папки, создавали в них папки и файлы от своих имен и групп, но в то же время могли создавать папки и файлы в общей папке, чтоб все могли получать к ним доступ.
Николай Савельев: нечто подобное есть но пользоваться надо очень аккуратно.
anonuid and anongid
These options explicitly set the uid and gid of the anonymous account. This option is primarily useful for PC/NFS clients, where you might want all requests appear to be from one user. As an example, consider the export entry for /home/joe in the example section below, which maps all requests to uid 150 (which is supposedly that of user joe).
По хорошему надо чтобы пользователи и группы у обоих хостов были. Еще можно глянуть в NFSv4, в нем можно толкать не uid\gid а строку типа someuser@somehost т.е. для действа достаточно создать юзверя на хосте такого.
Еще как вариант пот***аться с nsswitch и libnss-extrausers.
В итоге вопрос решил, но другим способом. Изначально пошел по пути, подсказанном Дмитрий Александров , почитал про create mask\force create, и пока знакомился с этой информацией, нашел другой способ - в конфиг самбы расшареной папки (/etc/samba/smb.conf) добавляются параметры строгого назначения группы и пользователя (force group и force user). В итоге в нужном каталоге все файлы и папки создаются только от указанных группы и пользователя, независимо, кто и с какими правами их создает. Пример конфига конкретной папки:
[Server storage]
comment = Общие файлы
path = /путь к шаре
writeable = yes
browseable = yes
guest ok = yes
read only = no
create mask = 0775
directory mask = 0775
force group = nogroup
force user = nobody