scpは/ tmpディレクトリの権限を変更します。

scpは/ tmpディレクトリの権限を変更します。

私はいくつかのサポートファイルを端末に自動的に転送するためにExpectスクリプトを使用します。サポートファイルはscpの前にターゲット端末に自動的に圧縮されます。これはscpのパスワードを自動的に入力する内部Expectプログラムを介して行われるため、パスワードを入力する必要はありません。個々のファイルは問題なくコピーできますが、tar.gzファイルをコピーしようとすると/ tmpディレクトリの権限が変更されます。権限を取得するために、/ tmpディレクトリを1777に戻し、それを通常設定する方法であるroot.rootに変更しましたが、これは常に機能するわけではありません。 sqliteは/ tmpに一時ファイルを書き込めないため、非常に破壊的なsqliteエラーが発生します。この問題の正確な原因をどのように確認できますか?私はそれがtar.gzファイルに関連していることを知っていますが、tarがファイルの権限を保存するという印象を受けました。

私のディレクトリにあるファイルの権限は次のとおりです。

-rw-rw-r-- 1 aembree aembree  88K Oct  2 15:20 dropin.tar.gz

/tmp を送信する前に、ls -al では次のようになります。

drwxrwxrwt  15 root root 8.4K Oct  2 15:08 tmp

転送後の/tmpは次のようになります。

drwxrwxr-x  15 10539 10539 8.4K Oct  2 15:01 tmp

実行中のtarコマンドは次のとおりです。

tar -vPczf /home/aembree/bin/resources/dev/dropin.tar.gz --exclude='helperscript' -C $dropinlist . > /home/aembree/bin/resources/logs/tarlog

ファイルがリモートシステムにある場合は、次のコマンドを実行して解凍します。

send "cd /tmp ; tar -xzf dropin.tar.gz ; rm dropin.tar.gz ; cd ;\n"

答え1

.提供されたソースコレクションに含めましたtar。タールボールを抽出して権限を適用すると問題が発生します。ソースディレクトリが.抽出され、権限が適用されます。残念ながら、抽出ポイント.は実際に/tmp

回避策は、すべてのコンテンツを抽出するタールボールから一時.ディレクトリを除外または作成することです。/tmp

関連情報