削除した後にsudoを再インストールできますか?


61

これは鶏卵の問題のようです。使用する最も一般的なタスクsudoは、ソフトウェアのインストールと削除です。

sudo apt-get purge <appname>

ただし、sudoそれ自体は削除できます。

sudo apt-get purge sudo # Do not run this command on production computers!

ここからが楽しみです

ubuntu@ubuntu:~$ sudo
bash: /usr/bin/sudo: No such file or directory

それは彼の右心の中で何人が、パージしないことは明らかだがsudo(私以外)、誰かがだまさすることができます(その16進モードでは、直接ではなく、またはそれはと呼ばれるものは何でも)、このコマンドを実行するか、人が中にSSH可能性がハイテクの第一人者として偽装しますと混乱を行います。

sudoを再インストールする方法はありますか?


3
sudoがパージされることさえ知らなかった良いものです!Linuxはまさにカスタマイズ可能です!
— user247696 14年

回答する価値はありません。これが発生すると手遅れになりますが、ユーザーのパスワードの設定を妨げるものは何もありませんroot。その後、を使用するsuか、マシンに物理的にアクセスできる場合は、rootとして直接ログインします(通常、sshは、rootとしてのログイン試行を拒否するように構成されます)。
— IMSoP 14年

すべての答えは、特権でファイルシステムにアクセスする何らかの方法に依存します。(カウンター)例:私のAndroid Asus Memopadにはsudo「セーフブート」または同等の機能がありません。私が知っている唯一の方法はxda-dev、d / laのビルド済みフルインストールパッケージに移動することです。言うまでもなく、この制限がないことは幸運です。
— カールウィットフト14年

@CarlWitthoft Androidは、実際にはLinuxディストリビューションであるというよりは、Linux派生物です。また、グーグルは多くの変更を加えました(ほとんどのLinuxファンは嫌いです)。Androidスマートフォンでよく知られているRootingは、Androidで実際のLinuxの能力を獲得する試みに他なりません。
— 登録ユーザー14年

4
ルートとしてログインすることはできませんか?
— コンラッドホフナー14年

回答:


56

次を使用してアプリケーションをインストールできます。

pkexec apt-get install <appname>

からman pkexec:

  pkexec allows an authorized user to execute PROGRAM as another user. If
  username is not specified, then the program will be executed as the
  administrative super user, root.

だから、私はそれpkexec apt-get install sudoもうまくいくはずだと思います。


編集:今私は確認することができます:はい、sudoを使用してインストールすることができますpkexec apt-get install sudo:

sudoを再インストールする

(クリックして拡大)


これは私が......このおかげでuを試してみるつもりです面白いです@RaduRadeanu
— Premkumar

@Premkumar注意してテストしてください!スクリーンショットからの最後のコマンドは、おそらくあなたの場合のみです:sudo apt-get install gksu ubuntu-minimal。しかし、より良いのは、でどのパッケージが同時に削除されたかを確認することsudoです。
— ラドゥラデアヌ14年

5
@Thebluefishパッケージは呼び出されますpolicykit-1(12.04現在)。削除することはできますが、gnome-coreandやなどのデスクトップシステムで通常必要なパッケージを削除することを犠牲にしてubuntu-desktop(サーバーでは、必要なパッケージで必要とされない可能性が高くなります)。しかし、Radu、あなたのアカウントが使用できることを決定するものは何pkexec apt-get …ですか?これはあなたが設定したものですか、それは自動的に行われますか?その場合、アカウントがこれを行うことができると判断するものは何ですか?
— ジル 'SO-悪であるのをやめる' 14年

1
@Gilles過去にこの意味でいくつかの構成を行ったことを覚えていません。だから、それは自動的に起こると思います。アカウントがこれを行うことができると判断するものがわかっている場合は、共有してください。これは私の専門分野外です。
— ラドゥラデアヌ14年

2
@Gilles グループのメンバーはを使用できると思いsudoますpkexec。(私の経験では、このグループにユーザーを追加すると、与えることでpkexec能力を、それが削除さからそれらを取り除くpkexec能力を、このように、pkexec能力が同じようだった授与されているように見えるsudoデフォルトで能力sudoersにできることので、理にかなっている設定、sudoおよびpkexecされているルートとして主にUbuntuでユーザーを管理者にするものです。)アンインストールしsudoてもsudoグループが削除されるとは思いません。しかし、私はない私の仮定は、すべての合理的な状況下で真である完全に確認してください。
— エリアケイガン14年

29

いつでもリカバリモードで起動し、ルートシェルにドロップして、sudoなしでインストールできます。


16
ここのリンクから重要で関連する部分を追加できますか?
— 登録ユーザー14年

grubブートメニューに利用可能なリカバリがない場合は、<kbd> e </ kbd>を押してブートラインに「single」を追加します。次に、起動時にを使用してルートパスワードを設定しますpasswd。通常リブートし、コマンドラインで入力suしてから新しいパスワードを入力し、実行しますapt-get install sudo(sudo
— -prefix

1
ルートシェルでどのようにインターネットに接続しましたか?
— アビナッシュラジ

22

はい、chrootメソッドsudoを使用してパッケージを再インストールできます。

  • Ubuntuライブディスクからの最初の起動。

  • 以前にインストールしたUbuntuパーティションを任意のディレクトリにマウントし/media/ubuntuます。私の場合、にマウントしました。

    sudo mkdir /media/ubuntu
    sudo mount /dev/sdaX /media/ubuntu   # /dev/sdaX - previously installed Ubuntu partition.
    
  • デフォルトでは、パーティションにchrootされた後にインターネット接続を取得できませんでした。以下のコマンドを実行して動作させます。

    for d in dev sys run proc; do sudo mount --bind /$d /media/ubuntu/$d ; done
    

@Oliに感謝します。このすばらしいコードです。

  • マウントされたディレクトリにchrootし、

    $ sudo chroot /media/ubuntu
    # apt-get update
    
  • 実行してsudoパッケージをインストールします。

    # apt-get install sudo
    
  • 次に、chrooted環境を終了します。

    exit
    
  • 最後に、Ubuntu OSを起動します。今すぐsudoコマンドをテストしてください。


4

init=/bin/shカーネルコマンドラインで追加のパラメーターを使用して起動します。これにより、ルートシェルに直接移動し、そこから単純に実行apt-get install sudoして再起動できます。/etc/init.d/networking start最初に実行中のネットワーク接続を取得するために実行する必要がある場合があります。あなたが私に尋ねるなら、リカバリCDやライブディスクをいじるよりもずっと簡単です。


1

rootこのコマンドでユーザーアカウントのパスワードを既に設定または更新している場合、アカウントにログインしてインストールするsudo passwd rootだけで心配ありません。sudorootsudo

su
apt-get install sudo

ここに画像の説明を入力してください

ここをクリックして拡大


これは、rootアカウントが有効になっている場合に機能し、ubuntuでは通常無効になっています。su私は、正しいパスワードを提供するものの、「認証失敗suコマンドを」私のPC上で提供します
— BЈовић

はい、あなたは正しい、それは私が言ったことです。すでにルートユーザーアカウントのパスワードを更新した場合、あなたはパージを心配しません。sudo今これを試してsudo passwd root、それはあなたがルートユーザーアカウントのパスワードを更新できるようになります実行して、suその後、あなたがでsudo.Nowパージsudoをパージする無料となりますログインすることがcommand.Onceますsudo apt-get purge sudo実行することにより、sudoパッケージを再インストールするために、あなたのrootアカウントに.loginファイルsuとapt-get install sudo
— のAvinashラジ

-1

sudo(およびその他のルート権限)は、実行中のOSにのみ適用されます。愚かでsudo(または/ usr /)を削除していて、pkexecのような代替手段がない場合は、単に他のものから起動し、不足しているソフトウェアをコピーして、再起動します。

物理的なアクセスは、システムにあるすべてのソフトウェアセキュリティを無効にします。


これを展開して、「既存のソフトウェアをコピーする」という意味を説明することをお勧めします。
— エリアケイガン14年

しかし、それを修正するのは非常に簡単な方法ではありません。
— セス14年

op介入なしの@Seth私は、別の答えを書かなくても修正できると真剣に考えています。
— Braiam 14年

さて、それを行う適切な方法はchrootですが、それほど多くの野barな方法はありません。たとえば、ルートとしてログインする(通常の方法)か、何らかの方法でルートパスワードを持たない場合は、カーネルパラメーターとしてinit = / bin / bashを設定し、ログイン認証を含むinitシステム全体を渡します。
— オリオン14年

-2

この問題は、ubuntu固有のものであるようです。ubuntuを使用していないユーザーとして、sudoが何らかの理由で特別なケースになる理由を最初は理解していませんでした(多くのディストリビューションはデフォルトではインストールしません)。

sudoはまったく必要ありません。これは、実際にルートとしてログインせずにルートコマンドを実行できる、怠laなショートカットです。ただし、単一のコマンド以外の操作を行う必要がある場合は、常にすべての前にsudoを付けるのはひどいことです。言うまでもなく、使用sudoすると、アクセス許可とルートアカウントの動作についてユーザーが無知になります。rootとしてログインし、システムの管理とログアウトを実行する方がはるかに理にかなっています。あなたが行うことをsuすでに通常のユーザとしてログインしている場合。または、rootとして直接ログインすることもできます。

もちろん、あなたが持っている必要がありますrootそうでなければ、誰もが行うことができないというアクションがあるWindowsライクなシステムを持っているし、あなたが本当に何とか場合はロックアウトされ、それが合理的な構成ですが、パスワードのセットをsudo使用できません(それは作業を必要と/etc/し、$PATHかつ他のマウントされたもの-ブートの早い段階で何かがうまくいかない場合は持っていないかもしれません


これは役に立つ情報かもしれませんが、質問には答えません。
— ルイスデスーサ14

確かに。これは、rootのパスワードが無効になっており、デフォルトでsudo がインストールされているシステムには関係ありません。そして、他の答えを見ると、最後の段落も真実ではないことがわかります。
— オリ

sudoubuntuからの削除を検討しているユーザーは、rootパスワードの設定も検討する必要があります(他の質問でその方法が指摘されています)。このようなことを気にしないユーザーは、sudoを使い続けることができます。
— オリオン14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.