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

На сервере у меня есть файл с именем upload, и его состояние было следующим:

drwx--x--- 12 bob bob 4096 JUL 20 19:07 upload

Я использую этот файл в качестве файла назначения функции PHP move_uploaded_fileВторой аргумент для хранения загруженных файлов.

Поэтому, чтобы получить разрешение Apache на перемещение файлов из / tmp в мою загрузку, я добавляю apache в группу bob, поэтому у него есть разрешение. apache - пользователь, от имени которого работает apache.

Но если я исключаю apache из группового боба с помощью usermod, я все равно могу загружать файлы, что означает, что apache по- прежнему имеет разрешения, как и в группе, но, очевидно, это не так.

Загрузка файлов не удастся только тогда, когда я

chmod -R 700 upload

или всякий раз, когда я

service httpd restart

Я не знаю, где я пропустил это.

Мне кажется, usermod будет применять изменения разрешений только после перезапуска apache.

Заранее спасибо за помощь.

1 ответ

Решение

Это ожидаемое поведение, команда usermod изменяет только файлы учетной записи.

Команда usermod изменяет файлы системной учетной записи, чтобы отразить изменения, указанные в командной строке.

При запуске процесс apache получит свои привилегии, основываясь на информации в соответствующих файлах учетной записи, и будет сохранять их до перезапуска.

Другие вопросы по тегам