Обновление: оказывается, проблема сложнее, чем я думал. Я одновременно пытался выяснить, почему мой mkdir
перестал работать, и это потому, что я вручную изменил разрешения родительского каталога для тестирования, затем переключил их обратно и добавил chmod
к сценарию, который не работает, поскольку этот управляется apache
, а не мной. Я опубликую новый вопрос с более крупной проблемой, так как думаю, что добавление всего этого в этот вопрос может привести к путанице.
Я преподаватель лаборатории в моем университете, и я переписываю сценарий, который они предоставляют для загрузки заданий, потому что тот, который у них есть, старый и глючный. Вместо того, чтобы модифицировать существующий скрипт (написанный на python), я пишу его с нуля в php.
Я столкнулся с проблемой, когда кажется, что chown не работает. Скрипты php запускаются под пользователем apache
. Я не уверен, является ли этот пользователь «привилегированным» или нет, но оригинальный скрипт использовал chown.
Могу ли я предположить, что поэтому apache
должен обладать необходимыми полномочиями и что моя проблема лежит в другом месте или это неверная логика?
Сервер является университетом, и они никак не позволят мне вносить какие-либо изменения в конфигурацию. Я верю, что это CentOS, что они работают. Нет сообщения об ошибке, я просто заметил, что я могу chmod
файл и изменить разрешения, но команда chown
в следующей строке, кажется, не имеет никакого эффекта.
ls -al
на старых сценариях показывают:
-rwxr-xr-x 1 mattw labstaff 5067 Sep 1 17:52 File_Upload.cgi
Не похоже, что бит setuid включен.
Стефан упомянул: «У пользователя apache, скорее всего, недостаточно прав для выбора файла / папки, которой он не владеет». Каталог, который я пытаюсь создать, chown
только что был создан с mkdir
, поэтому он должен принадлежать apache. Должен ли chown
работать независимо от привилегий, если у вас уже есть файл?