web-dev-qa-db-ja.com

etckeeper、Gitチェックアウト、および/ etc内の壊れたファイルのパーミッション

etckeeper コミット後、再起動で問題が発生した理由を理解したかったのです(このすばらしいおかげですでに解決されています)。

私はetckeeperで遊んで、git checkout some_commit_shaを実行して簡単に確認してから、git checkout masterを実行しました。

そして、/etcのファイル権限は、これらの操作の後で壊れたようです。 ssh_Host_rsa_key passwd-, shadow-を含むすべてのファイルはrw-r--r--でした。 Gitがファイルのパーミッションを保存しないことを知りませんでした。

今、私はそれらすべてを修正しました(私は何も見逃していなかったと思います)。

/etcの以前の状態を取得し、周りを見回して、適切なファイル権限でマスターに戻るための正しい方法は何でしたか?

6
koddo

ドキュメント(以下を参照)によると、実行する必要があります

etckeeper init

権限を復元するためにファイルをチェックアウトした後。 gitはファイルのパーミッションを直接保存できないため、etckeeperによって処理され、チェックアウト後にそれらを復元するには、initを再度実行する必要があります。

ドキュメントセクション、

好きなgitコマンドを使用できますが、別のブランチや古いバージョンをチェックアウトすると、gitはシステムの/ etcで直接動作することに注意してください。ブランチまたはタグをチェックアウトすることにした場合は、メタデータの変更を取得するために、必ず「etckeeperinit」を再度実行してください。

git checkout april_first_joke_etc

etckeeperinit

8
EightBitTony