scp para / home muda as permissões?

2

Isso seria ilustrado muito bem com um esquema. Quando escrevo "Teste: OK" ou "Teste: FALHA", estou reiniciando o servidor apache (serviço httpd). Basicamente, executando tudo como root no target_host:

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

Teste: FAIL

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

Teste: OK

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

Teste: OK

O mesmo comportamento ao usar:

scp root@source_host...

Quando o teste: 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" é a palavra espanhola para começar

As permissões dentro de conf.d são sempre (ls -ln):

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

O scp está alterando algo nesses arquivos para que o apache possa ou não lê-los?

    
por cantalapiedra 19.06.2013 / 11:00

2 respostas

0

De drupalwatchdog.com

SELinux will block Apache processes from reading data labeled as user's home content (user_home_t) or database data (mysql_db_t).

Aprendi também que a diferença reside no rótulo atribuído aos arquivos pelo SELinux. Você pode verificá-las por ls -Z . No meu caso:

-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

Com o segundo arquivo, o Apache é reiniciado. Com o primeiro falha. Na verdade, quando eu movo o custon_ok.conf para casa, nada muda. Mas quando eu faço cp ou cp -p para casa, o novo arquivo tem os rótulos

unconfined_u:object_r:home_root_t:s0

para que o Apache não possa lê-lo quando for movido de volta para o /etc/httpd/conf.d

    
por 20.06.2013 / 10:32
1

Sim, scp altera as permissões. Está criando um novo arquivo quando ele é copiado e esse novo arquivo será criado com as permissões padrão do diretório em que você o criou:

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

Se você não quiser isso, use o sinalizador -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

Outro problema possível é que o usuário do arquivo é alterado. Se você deseja copiar arquivos de configuração que provavelmente precisam ser de propriedade de root , certifique-se de usar scp root@remote .

    
por 19.06.2013 / 15:45