web-dev-qa-db-ja.com

etcフォルダーの所有権が変更されましたコマンドラインを使用して復元する方法は?

Ubuntu13.10がインストールされたコンピューターを持っています。ユーザー(たとえばWalesa)は、特権ファイルマネージャーを使用して、etcフォルダーとそのすべてのサブフォルダーの所有権をrootからWelesaに変更しました。 Sudoが無効にされたので、彼はそれが再び有効になることを期待して再起動しました。ただし、セキュリティでは、「etc/profileの所有者はrootではありません」というユーザー名とパスワードを入力した後のログインは許可されていません。

ただし、I have no name!@Walesaを使用したコマンドラインログインは可能です。このコマンドラインを使用して、etcとそのすべてのサブフォルダーの所有権をrootに復元する方法はありますか?

2
nano - merge me

実行:

Sudo chown -R root.root /etc

コマンドラインで/etcとその下のすべてを所有者rootとグループrootに設定します

しかし、私のシステム(Ubuntu 12.04)では、/etcの下のすべてがグループrootにあるわけではありません。次のリストが役立つ場合があります(Sudo find /etc ! -gid 0 -ls | cut -c 29-で生成):

root     dovecot      5348 Apr  8  2012 /etc/dovecot/dovecot-sql.conf.ext
root     dovecot       782 Apr  8  2012 /etc/dovecot/dovecot-dict-sql.conf.ext
root     dovecot       410 Apr  8  2012 /etc/dovecot/dovecot-db.conf.ext
root     shadow       2009 Dec 23 16:10 /etc/shadow
root     lp           4096 Mar 12 19:38 /etc/cups
root     lp            540 Mar 12 19:38 /etc/cups/subscriptions.conf
root     lp            108 Sep  1  2012 /etc/cups/classes.conf
root     lp           4096 Oct  8  2012 /etc/cups/ppd
root     lp           2751 Mar 12 07:38 /etc/cups/printers.conf
root     lp           2751 Mar 11 21:06 /etc/cups/printers.conf.O
root     lp            108 Jun  6  2012 /etc/cups/classes.conf.O
root     lp            540 Mar 12 19:24 /etc/cups/subscriptions.conf.O
root     lp           4096 Mar 28  2012 /etc/cups/ssl
root     sasl        12288 Jun  6  2012 /etc/sasldb2
root     daemon        144 Oct 25  2011 /etc/at.deny
root     dialout        66 Oct 31  2012 /etc/wvdial.conf
root     lightdm         0 Apr 21  2012 /etc/mtab.fuselock
root     shadow        981 Feb 19 23:38 /etc/gshadow
root     dovecot      1306 Jun  6  2012 /etc/ssl/certs/dovecot.pem
root     ssl-cert     4096 Jun  6  2012 /etc/ssl/private
root     dovecot      1704 Jun  6  2012 /etc/ssl/private/dovecot.pem
root     ssl-cert     1704 Apr 21  2012 /etc/ssl/private/ssl-cert-snakeoil.key
root     Fuse          216 Oct 18  2011 /etc/Fuse.conf
root     dip          4096 Oct 31  2012 /etc/ppp/peers
root     dip          1093 Mar 28  2012 /etc/ppp/peers/provider
root     dip          4096 Mar 28  2012 /etc/chatscripts
root     dip           656 Mar 28  2012 /etc/chatscripts/provider
7
Anthon

/etc/passwdを変更できるため、rootアカウントのパスワード検証を削除できます。 /etc/passwdを編集して、行を変更します

root:x:0:0:root:/root:/bin/sh

root::0:0:root:/root:/bin/sh

(つまり、2番目のコロンで区切られたフィールドは空である必要があります)。これで、suを実行して、パスワードを入力せずにrootになることができます。 (これはUbuntuで機能すると思いますが、空のパスワードが無効になっている場合は、代わりに2番目のフィールドにaaxSuH/.jTvGsを入力して、パスワードchangemeを使用できます。)

実行して権限を修復する

cd /etc
chown -R root:root /etc
chgrp shadow shadow gshadow

そして、さらに多くのchgrpコマンド— Anthonのリスト は良いスタートです。

それが終わったら、Sudoを通常どおり使用できる別の端末を確認します。

次に、rootのパスワードを無効に戻すか、/etc/shadowのパスワードに戻します。/etc/passwordを編集し、2番目のフィールドとしてx(または*)を入力します。

最後に、ワレサに厄介なメールを送信し、そのようなスタントを引っ張らないように彼に伝えます。それは、目を閉じて空中にナイフを投げて、ささくれを治すのにちょうどよく落ちることを期待するのと同じです。

/ etc内のすべてのファイルをuser:userに変更し、変更したらroot:rootに戻しました。ユーザーをスーパーユーザーに変更する必要があります:su次に、スーパーユーザーの資格情報を入力しますアカウント。

スーパーユーザーになったら、chown -R root:root /etcそしてあなたは戻ってきました

1
Eric

上記のAnthonの回答のおかげで、ログインの問題は解決されました。

古いkubuntu12.04の代替CDを見つけ、レスキューシェルに入りました。

Sudo chown -R root.root /etc

実行される可能性があります。その後、ログインでき、すべてが完璧に見えました

しかし、Sudoはこのエラーでは機能しませんでした:

/etc/sudoers is world writable
no valid sudoers sources found, quitting...
unable to initialise policy plug-in

私はエラーを見つけて、 this thread を見つけました、このコマンド:

pkexec visudo

奇妙に解決されたSudoprobelm、エラー/etc/sudoers is world writable持続する(ただし干渉しない)。 wierdly手動で何も変更しなかったと思うので(または、そうであれば、保存を避けようとしました)。

次に、同じスレッドで、これら:

chmod u=rwx,g=rx,o=rx /etc/sudoers.d/
chmod u=r,g=r,o= /etc/sudoers.d/*

sudoの永続的なエラーを削除しました。それでも問題がある可能性があります(おそらく深刻ではありません)。

1
nano - merge me