scp to / home изменяет разрешения?

Это будет очень хорошо иллюстрировано схемой. Когда я пишу «Test: OK» или «Test: FAIL», я перезапускаю сервер Apache (httpd service). В принципе, выполнение всего как root в target_host:

scp user@source_host:/etc/httpd/conf.d/custom.conf /home mv /home/custom.conf /etc/httpd/conf.d/ 

Тест не пройден

 scp user@source_host:/etc/httpd/conf.d/custom.conf /etc/httpd/conf.d/ 

Тест: ОК

 scp user@source_host:/etc/httpd/conf.d/custom.conf / mv /custom.conf /etc/httpd/conf.d/ 

Тест: ОК

Такое же поведение при использовании:

 scp root@source_host... 

Когда тест: FAIL:

 Iniciando httpd: httpd: Syntax error on line 221 of /etc/httpd/conf/httpd.conf: Could not open configuration file /etc/httpd/conf.d/custom.conf: Permission denied 

«Iniciando» – это испанское слово для запуска

Разрешения внутри conf.d всегда (ls -ln):

 -r--r--r--. 1 0 0 311 Jun 18 14:19 custom.conf 

Является ли scp что-то менять в этих файлах, чтобы apache мог их прочитать или не прочитать?

2 Solutions collect form web for “scp to / home изменяет разрешения?”

Да, scp изменяет разрешения. Он создает новый файл при копировании, и этот новый файл будет создан с разрешениями по умолчанию для каталога, в котором вы его создаете:

 terdon@local$ ls -l aa -rwx------ 1 root root 0 Jun 19 15:37 aa terdon@local$ scp aa terdon@remote:/home/terdon/aa terdon@remote$ ls -l aa -rw-r--r-- 1 terdon terdon 587 2013-06-19 15:38 aa 

Если вы этого не хотите, используйте флаг -p :

 -p Preserves modification times, access times, and modes from the original file. 
 terdon@local$ scp -p aa terdon@remote:/home/terdon/aa terdon@remote$ ls -l aa -rwx------ 1 terdon terdon 587 2013-06-19 15:38 aa 

Другая возможная проблема заключается в том, что пользователь файла изменен. Если вы хотите скопировать файлы конфигурации, которые, вероятно, должны принадлежать root убедитесь, что вы используете scp root@remote .

От drupalwatchdog.com

SELinux будет блокировать процессы Apache при чтении данных, помеченных как домашний контент пользователя (user_home_t) или данных базы данных (mysql_db_t).

Я также узнал, что разница заключается в присвоении метки файлам SELinux. Вы можете проверить их на ls -Z . В моем случае:

 -r--r--r--. root root unconfined_u:object_r:home_root_t:s0 custom.conf -r--r--r--. root root unconfined_u:object_r:httpd_config_t:s0 custom_ok.conf 

Со вторым файлом перезагружается Apache. С первым терпит неудачу. Фактически, когда я перемещаю custon_ok.conf домой, ничего не меняется. Но когда я делаю cp или cp -p для дома, новый файл имеет метки

 unconfined_u:object_r:home_root_t:s0 

так что Apache не сможет прочитать его при возврате в /etc/httpd/conf.d

  • Можно ли включить SELinux в модуль политики?
  • Воспроизведение локальных контекстов selinux после переустановки ОС
  • Какой процесс / программа создает / записывает файл, к которому перенаправляется ввод-вывод?
  • Как предотвратить процесс записи файлов
  • selinux, dovecot и сито
  • Как скопировать контекст SELinux из одного каталога и применить его к другому каталогу?
  • Настроить vsftpd разрешить доступ к установленному файлу ISO
  • SELinux - CentOSx86_64: ограничение пользовательской команды
  • Как монтировать NFS 3 тома на Fedora 17?
  • Я хочу разрешить пользователю запускать * только * утилиту ping с использованием SELinux
  • Включение SELinux на RHEL
  • Linux и Unix - лучшая ОС в мире.