私は最近PostgreSQLのインストールをアップグレードし、次のコマンドを実行する予定です。
sudo chown -R postgres:postgres /var/lib/postgres
残念ながら、タブの完成計算エラーのため、誤って最後に「postgres」部分を忘れてしまいました...結局、次のようになりました。
sudo chown -R postgres:postgres /var/lib
言うまでもなく、これはそれ自体で一連の質問を提起します。たとえば、オペレーティングシステムから起動できません。
修正する:
申し込み、chown -R gdm:gdm /var/lib/gdm
正常にログインできます!しかし、これがどの程度まで問題を引き起こすかはわかりません。
Starting User Manager for UID 120...
[ OK ] Started Session c1 of user gdm.
[ OK ] Started User Manager for UID 120.
LUKSを使用しており、ファイルシステムが暗号化されています。
ただし、もちろんinit=/bin/bash
カーネルラインに追加して grub を使ってシェルを作成することもできますので、正しい所有権要件を知ったら簡単に修正できます。
今私/var/lib
:
colord
有色人種に属し、gdm
gdm所有、locate
mlocate
ルートが所有しており、redis
redisに属し、systemd
ルートが所有- 他のすべてはpostgresの所有です。
バラよりls -ho
写真のエクスポート
権限と編集時間について学びます。
1つの問題は、/var/lib/gdm
ディレクトリがgdmの所有であり、一般的なホームディレクトリサブディレクトリ(、、、、、、、およびDesktop
)が含まれており、すべてpostgresが所有していることDocuments
です。 バラよりDownloads
Music
Pictures
Public
Templates
Videos
ls -ho
写真のエクスポート
権限と編集時間について学びます。
/var/lib
ファイル所有権を実行前の状態に復元する方法
chown -R postgres:postgres /var/lib
?どんな助けでも大変感謝します。
答え1
ディレクトリ内の chown コマンドを使用して、/etc/passwords のユーザー名と /etc/groups の対応するグループから知っている情報を返すことができ、残りは root:root に属します。
しかし、バグを作成できるまでは少し面倒です。忘れてしまった変更により、数日間表示されます。
私はpostgres gdmが大丈夫だと思います。残りはおそらくルートredisからredisに属します。 Torにも専用ユーザーがいると思います。
簡単な方法:すべてを再インストールします(もちろん/ homeをフォーマットせずにデータベースをバックアップした後)
答え2
/ varファイルシステム層はアプリケーションによって生成されたデータに使用されるため、パッケージマネージャは/ varでほとんど管理されません。ほとんどの場合、pacman -Qoは各アプリケーションのディレクトリがあるように構造化されているため、/ var / libの最上位ディレクトリの所有権のみを返します。
postgresよりも合理的なデフォルトを取得するには、まずすべてをroot所有者に設定する必要があります。
chown -R root:root /var/lib/
ファイルを所有するパッケージを再インストールします。/var/lib
pacman -Qo $(find /var/lib) 2>/dev/null
次に、各ディレクトリの所有者が誰であるかを確認します。
ls -la /var/lib
ルートが所有するディレクトリ内のすべてのエントリは、ルートが所有します。ルートに属さないディレクトリは、実際にはアプリケーションユーザのホームディレクトリです。いくつかの例外を除いて、これらのディレクトリに含まれるすべてのファイルはアプリケーションユーザーが所有します。だからランはchown -R gdm:gdm /var/lib/gdm
動作します。しかし例外があります。たとえば、私のシステムでは/var/lib/sddm/state.conf
rootが所有しています。
答え3
この問題を手動で修正するのは簡単な作業ではありません。/var/lib
のエントリに基づいて、ディレクトリの可能な所有権を推測できますが、/etc/passwd
失敗する可能性があります。アプリケーションディレクトリの下の一部のファイルはアプリケーションが所有し、他のファイルはルートが所有する場合(またはその逆)、どうなりますか?あなたはこれを見つけるのに長い時間を費やすでしょう...
システムにすべてのパッケージを再インストールすることをお勧めします。これを行うには、次のようにさまざまです。
# pacman -S $(pacman -Qeq) --noconfirm
ただし、これを行う前にシステムをバックアップすることをお勧めします。
答え4
ライブ構造の横にあるバックアップから復元し、所有権を復元された構造と同じに設定します。 - BURシステムが許可している場合は、空のファイル/ディレクトリを復元できます。