このページの本文へ

システムの起動・ルートユーザー・シェル

これで解決! Linux 100の疑問―その3

2001年09月06日 05時35分更新

文● Linux magazine編集部

  • この記事をはてなブックマークに追加
  • 本文印刷

Q:rootで使い続けるのはよくないといわれますが、どうしてでしょうか?

A:大きく分けて理由は3つあります。まず、rootユーザーは、システムに関するあらゆる権限を持っています。そのため、システムクラッシュ、ファイルの破壊などが行えてしまいます。そして、LinuxのようなOSは、それが簡単にできてしまいます。たとえば、“rm -rf *”を実行すると、カレントディレクトリ以下にあるファイルとディレクトリを問答無用ですべて削除してしまいます。

次に、セキュリティ確保の問題があります。rootユーザーとしてログインしているときに離席する場合は、マシンにイタズラをされないよう、なんらかの防護策をとらないといけません。防護策が必要なのは一般ユーザーであっても同じですが、前述の権限などの理由により、イタズラされた場合にシステムが受けるダメージはケタ違いに大きくなります。

最後に、Linuxの便利なリモートツールが利用できません。最近のディストリビューションの多くは、セキュリティ上の理由からrootユーザーがtelnetやFTPを利用してアクセスできないようにしてあります。これでは、Linuxの持つメリットが半減します。

これらの問題を防ぐために、一般ユーザーを作っておき、ふだんはそのユーザーで作業するようにしておきます。そして、rootユーザーの権限が必要な作業が発生したときだけ、suコマンドを利用して、一時的にrootユーザーとなり、作業が終わったらexitして、すぐに一般ユーザーに戻ることをお勧めします。

Q:では、一般ユーザーはどのようにして作るのですか?

A:新しいユーザーを作る方法はいくつかあります。LASER5 Linux 6.0やVine Linux 1.1などのユーザーなら、Linuxconfを使って作成できます。また、TurboLinux 4.xのユーザーならturbousercfgコマンドで作成することができます。また、useraddコマンドを利用してコマンドラインから作成することもできます。

Q:suコマンドを実行してrootになったのに、管理者コマンドが使えない。

A:オプションをつけずにsuコマンドを実行すると、直接rootユーザーとしてログインしたときとは違い、そのユーザーの環境を引き継いだままroot権限を持ちます。これにより、PATHの設定も元のユーザーと同じになるので、管理者コマンドが置かれた/sbinや/usr/sbinなどにはパスが通っていません。

管理者コマンドを利用する場合は、絶対パス指定でコマンドを実行するか、suコマンドにー(ハイフン)オプションをつけてrootユーザーになります。このオプションをつけると、直接rootユーザーとしてログインしたときと同じ環境に初期化されますので、/sbinや/usr/sbinなどにもパスが通るようになります。

Q:rootでtelnetやFTPログインができない

A:これは、セキュリティを確保するための措置です。

telnetやFTPでは、ユーザー認証の際にパスワードをそのままのテキスト(平文)のままで回線に流します。これはとても危険です。

一般ユーザーとしてtelnetログインし、その後suコマンドでrootになることは可能です。しかし、インターネットに接続したマシンでは、telnetを使うべきではありません。

それでは不便ですから、telnetの代わりにSSH(Secure Shell)を使いましょう。SSHは、ホスト間の通信とユーザー認証を公開鍵暗号によって暗号化します。これにより、リモートログインや、ホスト間でのファイルコピーを安全に行えます。ただし、商用利用する場合は有償のライセンスを受ける必要があります。詳しくは、SSHのWebページ(http://www.cs. hut.fi/ssh/)を参照してください。また、SSHをフリーで実装するOpenSSHプロジェクト(http://www.openssh. com/)もあります(画面7)。

画面7画面7 OpenSSHプロジェクトのWebページ

週刊アスキー最新号

編集部のお勧め

ASCII倶楽部

ASCII.jp Focus

MITテクノロジーレビュー

  • 角川アスキー総合研究所
  • アスキーカード
ピックアップ

デジタル用語辞典

ASCII.jp RSS2.0 配信中