「あなたはルートですか?」とはどういう意味ですか?


16

これは私が得るものです:

ascendermedia@magic2tower:~$ sudo apt-get install flashplugin-installer
bash: sudo: command not found
ascendermedia@magic2tower:~$ sudo apt-get install flashplugin-installer
bash: sudo: command not found
ascendermedia@magic2tower:~$ apt-get install flashplugin-installer
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
ascendermedia@magic2tower:~$ sudo aptitude install flashplugin-nonfree
bash: sudo: command not found
ascendermedia@magic2tower:~$ aptitude install flashplugin-nonfree
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
ascendermedia@magic2tower:~$ 

私は何を間違えていますか?

回答:


29

rootシステムのスーパーユーザーアカウントです。(基本的に)すべての特権があります。多くのシステムはsudo、別のコマンドの前にあるコマンドを使用して、そのコマンドを「rootとして」実行できるように構成されています。つまり、自分がrootユーザーであるかのように、同じ特権を持ちます。

通常、システムパッケージをインストールするためにルート権限が必要な場合がありますapt-get。そのため、最初はsudo利用できないため機能しません。2回目は、2回実行したからとsudoいって魔法のように表示されなかったためです。第三(第五)回ためapt-get(そしてaptitude実際にこのようなパッケージをインストールするには、ルートPRIVSを必要としません)。

最初のエラーメッセージからわかるように、sudoはインストールされていないか、パスにないため、おそらく構成されていません。su -c代わりに、rootプロンプトが表示されたらrootパスワード(アカウントのパスワード)を与えることができます。

そのパスワードがわからない場合は、a)このタスクを実行する担当者に依頼します(システムでない場合)、またはb)回復する方法を見つける必要があります。


これはほぼ正しいsudoですが、「rootであるかのように」コマンドを実行するだけでなく、実際にはrootとしてコマンドを実行することに言及します。プロセスを見ると、ユーザーIDではなくルートとして実行されていることがわかります。ちなみに、デフォルトでrootによる対話型ログインを許可するように設定されていないマシンでは、単に実行sudo bashしてrootシェルを取得できます。:)
レイラブ

@reirab sudo -iそれはあなたの現在のシェルを尊重するので、それが好ましいと思います。
new123456

2
@ new123456 sudo -iは、ルートにデフォルトのシェルを使用します。sudo -sは、実行中のユーザーに$ SHELLの値を使用します。
bgvaughan

@reirabあなたは、単純化されたユーザーの観点から「ルートとして」が何を意味するかを説明している部分から引用しています。
mattdm

5

経由でシステム更新を実行するには、ルート権限が必要apt-getです。

を使用してルートアカウントに切り替えることができますsu rootsudoプログラムがインストールされていないようです。


2
OPにはsudo特権が不足しているだけでなく、sudoインストールされていません。
n.st

1
本当に、OPはインストールしてセットアップするのに十分な時間だけrootにsuするべきsudoです。
ケビン

1
@ n.stが間違っている可能性がありますPATH
o11c

2
@ o11c私は、彼らが常にrootとしてログインしているので、sudoなしではその問題に出会うことのない人々と同じだと主張します。
ケビン

1
@ o11c可能ですが、特に少なくともDebianではデフォルトでインストールされているためsudo、可能性は低いようです。apt-get/usr/bin
n.st

5

「あなたはルートですか?」とはどういう意味ですか?

システム全体にパッケージをインストールする(実行する)ためには、apt-getシステムファイルを作成および変更するため、ルート権限が必要です(root* nix管理者アカウントの通常の名前です)。

«あなたはrootですか?»メッセージは、実行するために「rootになる必要がある」ことを穏やかに思い出させますapt-get install。これは、発生した問題の最も頻繁に発生する理由です(上記参照)。

/ var / lib / dpkg / lock-オープン(13:許可が拒否されました)

ルートになるには?

「rootになる」ための従来の方法は、実行suすることです(そしてrootユーザーのパスワードを提供します)。su(1)s uper u serまたはs witch u serを表します。

任意のユーザーになるために使用できるので、実行su johnしてjohnとしてシェルを取得できることに注意してください。suユーザー名なしで実行することは、の省略形ですsu root

これが機能するには、rootユーザーアカウントを有効にし、パスワードを設定する必要があります。誰かを避けるために、一部のシステムは(デフォルトでも)ルートアカウントが無効に設定されています。攻撃者-管理者アカウントでログインします。そのような場合、sudoのような管理コマンドを実行する別の方法を提供します。

須藤

sudo(1)は、コマンドを別のユーザーとして実行できるようにするプログラムです(上記のように、通常はrootに対して実行されます)。で構成され/etc/sudoers、特定のユーザー(再度独自のパスワードを要求するように設定される場合があります)に対して、rootとして単一のプログラムのみを実行できるようにするなど、より詳細な制御を可能にします。 johnはdestroy-systemをルートとして実行しました」)。

権限を増やしたruninngには他のオプション(califeなど)がありますが、使用方法ははるかに少なくなっています。

上記のログはsudo、magic2towerにインストールされていないことを示しています。


0

「コマンドが見つからない」場合はおそらく、実行しようとしているプログラムをインストールしていないか、env変数にパスがないためです。

以下のようにコマンドを実行してみてください。

/usr/bin/sudo apt-get install flashplugin-installer

一部のLinuxディストリビューションでは、rootに変更できないため、すべてのコマンドがsudoで実行されます。=)


1
葉はあなたが持っている場合のようなメッセージbash: sudo: command not found最高のアイデアはでそれをインストールすることでsudo apt-get install sudo、それはあなたに同じエラーを与える場合は、再帰が何であるかを学びます
pqnet

2
を使用してsudoをインストールすることはできませんsudo
ために行う
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.