Права пользователя: Демон и Пользователь

7925
Eddie Parker

Я часто сталкиваюсь с этой проблемой в Linux, и я хотел бы знать правильный способ ее решения.

Скажем, у меня работает демон. В моем примере я буду использовать LigHTTPD, веб-сервер.

Некоторому программному обеспечению, например Wordpress, нравится иметь доступ на чтение / запись к файлам для обновления приложений через веб-интерфейс, что, на мой взгляд, очень удобно.

В то же время мне нравится взламывать мои файлы, используя vim, используя мою локальную учетную запись «eddie».

В этом и заключается загвоздка. Либо я записал все на lighttpd, либо на eddie и общую группу между ними обоими, и chmod it 660, либо постоянно sudo для редактирования проклятых вещей. Первый вариант не является плохим решением, пока я не создам новый файл, и в этом случае я должен не забыть его соответствующим образом chmod или создать какой-нибудь хак, например, задание cron, которое выполняет chmods для меня.

Есть ли более простой способ сделать это? Я что-то упустил?

Ура,

-е-

2
Вы, вероятно, можете сделать что-то с ACL (зависимым от файловой системы), чтобы сделать доступ простым (r), но это забавный шар, с которым я еще не связался, так что, надеюсь, кто-то еще просветит нас. quack quixote 14 лет назад 0
Да, это можно сделать и с помощью ACL, но большинство дистрибутивов не включают их по умолчанию, и я думаю, что это сложнее. Это также позволяет более мелкозернистый контроль, хотя. Смотрите man setfacl, если вам интересно. Kim 14 лет назад 0

1 ответ на вопрос

2
Kim

На самом деле существует способ автоматического выбора файлов, созданных в определенном каталоге. Допустим, файлы, к которым у вас есть доступ к lighttpd, находятся в / var / www. Затем вы устанавливаете группу / var / www в свою группу и устанавливаете бит SGID в / var / www. Возможно, вы захотите сделать это рекурсивно для подкаталогов. Я предполагаю, что группа www-data.

chgrp -R www-data /var/www chmod -R g+s /var/www 

Это только установит группу как бы то ни было. Чтобы дать вновь созданным файлам права доступа 660 по умолчанию, вы можете установить umask на 007. Добавьте эту строку в ~ / .bashrc:

umask 007 
Интересно. Я только смутно слышал о бите SGID, так что это хорошая информация, чтобы получить. Что касается umask, как это работает с процессом lighttpd в этом случае? Как установить umask для не пользователей? Eddie Parker 14 лет назад 0
Я не специалист по lighttpd, и процесс может изменить свой собственный umask по желанию, но вы можете попробовать добавить команду umask в сценарий запуска lighttpd. Если это не поможет, взгляните на документацию lighttpd или wordpress. Kim 14 лет назад 1
Хорошо, спасибо Ким. Очень лаконичный ответ и именно то, что я искал. Я буду разбираться с серверной стороной, но, по крайней мере, бит SGID даст мне 90% пути. Eddie Parker 14 лет назад 0
ах, я забыл SGID. спасибо @Kim quack quixote 14 лет назад 0

Похожие вопросы