Обновление: оказывается, проблема сложнее, чем я думал изначально. Я одновременно пытался устранить неполадки, почему мой mkdir
перестал работать, и это было потому, что я вручную изменил разрешения родительского каталога для проверки, затем переключил их обратно и добавил chmod
в сценарий, который не работает, поскольку этот запускается apache
и не я. Я опубликую новый вопрос с более крупной проблемой, так как я думаю, что добавление всего этого в этот вызовет путаницу.
Я преподаватель лаборатории в своем университете, и я переписываю сценарий, который они предоставляют для загрузки заданий, потому что тот, который у них есть, устарел и содержит ошибки. Вместо изменения существующего скрипта (написанного на питоне) я пишу его с нуля на 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
работать независимо от привилегий, если у вас уже есть файл?