権限を変更するには、scpを/homeに変更しますか?

権限を変更するには、scpを/homeに変更しますか?

これはシナリオで最もよく説明できます。 「Test:OK」または「Test:Failed」と書くと、Apacheサーバー(httpdサービス)を再起動します。デフォルトでは、target_hostからrootとしてすべての操作を実行します。

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/

テスト:OK

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

テスト:OK

以下を使用した場合の動作は同じです。

scp root@source_host...

テストが失敗した場合:

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 が読み込めないか読み取れないように、これらのファイルの内容を変更しますか?

ベストアンサー1

はい、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

おすすめ記事