2009-08-21 3 views
2

В нашей среде FreeBSD, где у нас есть один сервер, который работает как файловый сервер, у нас есть проблема, связанная с тем, что наш системный администратор говорит, что нельзя исправить.FreeBsd: разрешить пользователям одной группы иметь автоматический доступ для чтения/записи к созданным ими файлам и каталогам

Все наши файлы находятся в каталоге, и все мы имеем доступ к этому каталогу, его подкаталогам и файлам. Проблема в том, что, как только пользователь в нашей группе создает файл или каталог, мы должны chmod этот каталог или файл, чтобы изменить права, чтобы другие пользователи нашей группы могли получать доступ, читать, писать и удалять. Это не файлы или подкаталоги внутри наших домашних каталогов, а в каталоге, где мы должны работать с ними ежедневно.

Находясь трудно поверить, что нет хорошего решения, я прошу, чтобы кто-то помог мне с решением.

ответ

2

Я думаю, что вы хотите, это бит setgid в каталогах и umask. Затем создаваемые там файлы и каталоги будут иметь надлежащую группу и соответствующие разрешения, чтобы другие читали abd и записывали их.

find /your-files-are-rooted-here -type d -print0 | xargs -0 chmod ug+rw,g+s

и установить umask к 002 (или что-то подходит). И, конечно же, вы можете исправить разрешения для существующих файлов (вышеприведенная команда только заботится о каталогах).

+0

Это не похоже на трюк: новые файлы и папки все еще должны быть chmodded ... Или наш sys-admin сделал это неправильно. – Henrik

+0

Наличие 'chmod' их (в отличие от' chown') звучит как отсутствие эффективной настройки 'umask'. –

+0

Странно то, что: если я использую expandrive и позволяю сказать textmate создать файл, он получит rw-r - r-- ... но если я использую touch в терминале для создания файла, файл получает rw-rw-r-- Извините, что беспокою вас так много, но так как мой sys-admin не может это исправить, и это сводит меня с ума, я перехожу к stackoverflow ... и вы, г-н «хакер», конечно! – Henrik

0

Одно место для установки umask - «/ etc/bashrc». Найдите «umask». Измените «umask = 022» на «umask = 002». После этого, когда новый файл будет создан, каждый в той же группе с владельцем файла может записать в этот новый файл.

Обратите внимание, что это работает только для файлов, созданных из оболочки, в частности bash.