2012-05-21 2 views
2

Я работаю над проектом BOINC.Права Debian/Linux Group не работают, поскольку они должны быть

У меня есть два пользователя: boincadm и www-data (для apache). Оба принадлежат к группе BOINC

www-data : boinc www-data boincadm 
boincadm : boinc adm dialout fax cdrom floppy tape audio dip www-data video plugdev netdev bluetooth lpadmin fuse scanner sambashare subversion 

У меня есть Boinc проект, созданный в/главная/boincadm/проекты/MyProject/ Все файлы и папки там находятся в собственности boincadm: и есть BOINC rwxrwx --- разрешения.

Проблема заключается в том, что пользователь WWW-данные не могут получить доступ к файлам, которые вызывает множественные ошибки как:

Warning: require_once(../inc/db.inc): failed to open stream: Permission denied in /home/boincadm/projects/myproject/html/user/index.php

Fatal error: require_once(): Failed opening required '../inc/db.inc' (include_path='.:/usr/share/php:/usr/share/pear') in /home/boincadm/projects/myproject/html/user/index.php

или просто

Can't access the file XXX

в журналах ..

IF I изменить грант rwx на «другие» (777) он работает ..

Мой вопрос в том, почему не стоит oup разрешения работают, как я ожидаю? Есть идеи?

Я не специалист в Linux, поэтому я мог что-то пропустить.

+1

Попробуйте войти в систему как www-data и попытайтесь получить доступ к этим файлам вручную. В какой-то момент пути разрешения неверны. – scai

+0

Я не могу войти в систему как этот пользователь .. может быть, это система или что-то в этом роде. Это пользователь, который создается при установке apache2. – bravik

+0

Вы можете просто выполнить «su www-data». – scai

ответ

1

Вот как я ее решил:

Прежде всего я прочитал это: link В какой-то момент эта статья упомянутый файл /etc/group Whe информация о группах хранится.

Я открыл этот файл и упомянул, что вопреки моим предыдущим действиям нет www-data в группе boinc. И нет www-data в группе boincadm и наоборот. Это странно! Странно, потому что я добавил этих пользователей в группу boinc с помощью команды usermod и удостоверился, что эта группа является основной для обоих. Кроме того, команда groups <username> показала, что они находятся в группе boinc.

Итак, вопрос в следующем: Почему это произошло?

Проблема была решена путем модификации 3 линии:

boinc:x:1111:boincadm, www-data 
boincadm:x:1112:boincadm, www-data 
www-data:x:1113:www-data, boincadm 

мне нужно было все 3 линии, чтобы заставить его работать. Надеюсь, это поможет кому-то.И я все же хотел бы понять, почему файл /etc/group не был автоматически изменен при использовании usermod. И почему grops показывает правильный результат, если так.

2

Вот возможность:

www-data имеет основную группу www-data; остальные supplementary groups.

Процесс сервер имеет право пользователя (setresuid или аналогичным) и основную группу (по setresgid или аналогичному), но отсутствует другие дополнительные группы (без initgroups или аналогичной).

Если это так, у вас есть несколько вариантов: изменить владельца файла на основную группу, изменить группу, на которой работает сервер, или исправить сервер, чтобы включить все дополнительные группы.

+0

Я убедился, что группа является основной для обоих .. Я решил наконец ... Но вопрос изменен ... См. Мой собственный ответ – bravik

Смежные вопросы