На сервере у меня есть файл с названием загрузить и его состояние было следующим:
drwx--x--- 12 bob bob 4096 JUL 20 19:07 upload
Я использую этот файл в качестве файла назначения для PHP функция move_uploaded_file
Второй аргумент для хранения загруженных файлов.
Итак, чтобы получить apache это разрешение на перемещение файлов из / tmp к моему загрузить, Я добавить Apache к боб группа, поэтому у нее есть разрешение. Apache это пользователь, от имени которого работает apache.
Но если я исключу Apache из группы боб с помощью usermod, Я все еще могу загружать файлы, что означает Apache все еще есть разрешения, как будто он все еще находится в группе, но, очевидно, это не так.
Загрузка файлов не удастся, только если я
chmod -R 700 upload
или когда я
service httpd restart
Не знаю, где я в этом упустил.
Мне кажется, usermod
применит изменения разрешений только после перезапуска apache.
Заранее спасибо за помощь.
Это ожидаемое поведение, usermod команда изменяет только файлы учетной записи
Команда usermod изменяет файлы системной учетной записи, чтобы отразить изменения, указанные в командной строке.
При запуске процессу apache будут предоставлены привилегии, основанные на информации в соответствующих файлах учетной записи, и он будет сохранять их до перезапуска.