1.なぜrootパスワードがないのか
あなたがいる間ことができ、あなたが持つrootでログインできるようにするスーパーユーザアカウントのパスワードを作成してsu
、それの価値が、これは通常のUbuntuで物事を行う方法(または、ますます、だけでなく、他のディストリビューション)ではないことを言及します。Ubuntuは、理由によりデフォルトでルートログインとパスワードを提供しないことを選択しました。代わりに、デフォルトのUbuntuインストールでsudo
スーパーユーザー権限を付与します。デフォルトのUbuntuインストールでは、OSをインストールした人にはデフォルトで「sudo」権限が付与されます。
完全な「sudo」権限を持つユーザーはsudo
、自分のコマンドを事前に保留することで、「スーパーユーザーとして」何かを実行できます。たとえばapt-get dist-upgrade
、スーパーユーザーとして実行するには、次を使用できます。
sudo apt-get dist-upgrade
このsudoの使用方法は、WebでUbuntuに関するチュートリアルを読むところならどこでも見ることができます。これに代わるものです。
su
apt-get dist-upgrade
exit
sudoでは、sudoアクセスを許可するユーザーを事前に選択します。独自のパスワードを使用するため、rootパスワードを覚えておく必要はありません。複数のユーザーがいる場合、rootパスワードを変更して新しいパスワードを全員に通知する必要なく、sudo権限を削除するだけでスーパーユーザーのアクセスを取り消すことができます。ユーザーがsudoを使用して実行できるコマンドと、そのユーザーに対して禁止されているコマンドを選択することもできます。最後に、セキュリティ違反がある場合、場合によっては、どのユーザーアカウントが侵害されたかを示すより良い監査証跡を残すことができます。
Sudoを使用すると、スーパーユーザー特権で単一のコマンドを簡単に実行できます。を使用するとsu
、exit
またはを使用して終了する必要があるスーパーユーザーシェルに永続的にドロップしますlogout
。これは、ログアウトしてから再びログインするよりも便利だからといって、必要以上に長くスーパーユーザーシェルにとどまる人を招く可能性があります。
sudoでは、次のコマンドで永続的な(インタラクティブな)スーパーユーザーシェルを開くことができます。
sudo su
...これは、rootパスワードなしでも実行できます。これはsudo
、su
コマンドにスーパーユーザー特権が付与されるためです。
同様に、su -
ログインシェルの代わりに、sudo su -
またはそのショートカットを使用できますsudo -i
。
ただし、その場合は、すべてのコマンドのスーパーユーザーとして行動していることに注意する必要があります。誤ってシステムに何らかの損傷を与える可能性を減らすために、スーパーユーザーとして必要以上に長く留まらないようにすることは良いセキュリティ原則です(これがないと、ユーザーが所有するファイルにのみ損傷を与えることができます)。
ただ、明確にするために、あなたがすることができ、あなたが選択した場合は、特にその代わりのものをこの方法で行いたい場合は、rootユーザーにオリの答え@で説明したように、rootとしてログインを許可するパスワードを与えます。sudo
代わりに優先するというUbuntuの慣習についてお知らせし、代替案があることをお知らせしました。
2. chmod 777 -Rコマンドの問題
質問には、2番目の部分もありますsudo chmod 777 -R foobs
。コマンドに関する問題です。
まず、次の警告は、マシンの潜在的に深刻なセキュリティ問題を示しています。
sudo: /var/lib/sudo writable by non-owner (040777), should be mode 0700
これは、ある段階で、あなたが誰でも書き込めるよう/var/lib/sudo
になったことを意味します。のようなコマンドを使用して、何らかの段階でこれを実行したと思いますsudo chmod 777 -R /
。残念ながら、これを行うことにより、おそらくシステム全体のすべてのファイルのアクセス権がほぼ無効になります。これが、権限が誰でも書き込み可能に変更された唯一の重要なシステムファイルになるとは考えられません。本質的に、あなたは簡単にハッキングできるシステムを手に入れました。そしてそれを取り戻す唯一の簡単な方法は再インストールすることです。
次に、使用していたコマンド:
sudo chmod 777 -R foobs
この場合、ホームディレクトリ内のファイルを操作するとき~/Desktop
、を使用する必要はありませんsudo
。ホームディレクトリに作成するすべてのファイルは、とにかく変更可能でなければなりません(そうでなければ、何かおかしいことが起こっています)。
また、再帰的に実行したり、膨大な数のファイルに対して実行するなど、ファイルのアクセス許可を一括して変更した場合の結果を十分に認識する必要があります。この場合、ファイルのアクセス許可を慎重に設定して、誰でも書き込み可能に変更します。他のユーザー、またはマシン上のバグのあるサーバーソフトウェアは、これらのファイルとディレクトリをすべて簡単に上書きできる可能性があります。
あなたが解決しようとしていたどんな問題に対してもchmod 777 -R [dir]
それが適切な解決策ではないことはほぼ確実です(そして、前述したように、/ var / lib内のシステムファイルにもそれを行ったという証拠があり、私は他の多くのことを想定しています場所)。
いくつかの基本的な経験則:
ホームディレクトリやデスクトップなどにある自分のファイルをいじっているだけならsudo
、スーパーユーザー権限を使用する必要はないはずです。もしそうなら、それはあなたが何か間違ったことをしているという警告サインです。
パッケージが所有するシステムファイルを手動で変更しないでください。例外:これらのパッケージで文書化された方法で具体的に実行している場合を除きます(例:の構成を変更するなど)/etc
。これは、ファイル許可の変更にも適用されます。チュートリアルまたは問題を修正するためにsudo
スーパーユーザー権限が必要であり、それが/ etc /内の構成の単なる変更ではない場合、何か間違ったことをしているという警告サインです。
chmod -R 777 whatever
巨大なセキュリティリスクを引き起こす場合を除き、ほとんど実行しないでください。