bash — переименование файла в переполнении стека

Я получаю сообщение об ошибке «Отказано в доступе» при попытке запустить rename Команда в PHP.

Файл, который он пытается переименовать, находится в домашнем каталоге другого пользователя.

Вот что я сделал до сих пор:

Предоставил пользователю PHP (userA) доступ к этой группе. Поэтому, когда я бегу id
я получил
uid=1004(userA) gid=1006(userA) groups=1006(userA),10(wheel),1007(userB)

PHP-скрипт работает как userA,

Я побежал sudo chmod -R g+rwx ./* в от /home/userB/subdomains/mp3s каталог.

Когда я перехожу в каталог, где хранятся файлы, в /home/userB/subdomains/mp3s/ и беги ls -lha Я получил:
-rw-rwxr-- 1 userB userB 62M Aug 8 2017 Stress Management - Lesson 1.mp3

Таким образом, группа имеет разрешение на чтение / запись / выполнение, и мой userA имеет доступ к этой группе, так почему он не может переименовать файл?

0

Решение

Спорим, у вас есть SELinux с этим модным экземпляром CentOS. Добавьте следующее поверх ваших прав доступа, чтобы PHP мог переименовывать файлы:

sudo chcon -t httpd_sys_rw_content_t /home/userB/subdomains/mp3s/ -R

Команде могут потребоваться другие разрешения для PHP CLI, в отличие от веб-службы, работающей с ней, но вы можете найти информацию об этом в CentOS SELinux, как:

https://wiki.centos.org/HowTos/SELinux

Первая команда помогла мне и была найдена на:

https://blog.lysender.com/2015/07/centos-7-selinux-php-apache-cannot-writeaccess-file-no-matter-what/

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector