[wiki:docs Vine Linux ドキュメント] / [wiki:../../ Vine Linux 7.x] / [wiki:../ CUI ユーザーズガイド] / root権限 = root権限 = == rootとは == root(ルート) は、一般ユーザとは異なり、システムの管理などのために、ほぼ全ての操作を行う権限を持った特別なユーザです。 rootは、rootユーザ、スーパーユーザ、管理者などとも呼ばれます。 以下で説明する sudo や gksu などを利用して root 権限で特定のコマンドを実行することを、「root権限で○○を実行」、「スーパーユーザ権限で○○を実行」、「管理者権限で○○を実行」のように表現します。 {{{ #!Admonition type=warning === su による root ユーザーへの昇格は非推奨となりました === アプリケーションのインストールおよびアンインストールや、ユーザーの登録および抹消や、(ハードディスクやUSBメモリなどの)ファイルシステムのマウントおよびアンマウントや、ファイルのアクセス制限を無視した読み書き作成削除が出来たりなど様々なことが出来るため、何か誤操作を行うとシステムを破壊したり、重要なデータを削除するということも起こります。 本当に必要な時だけ root 権限で作業し、それ以外の時は一般ユーザ権限で作業するためにも以下で説明する sudo を利用するようにしてください。 }}} == sudo == 特定のユーザや特定のグループに所属するユーザが、スーパーユーザ権限(あるいはそれ以外の特定ユーザの権限)でいくつかのコマンド操作を行うことを許可する sudo というプログラムがあります。 {{{ #!Admonition === Vine Linux 6.0 からインストーラで作成した一般ユーザアカウントが標準で sudo できるようになりました === Vine Linux 6.0 から、インストーラで作成した一般ユーザアカウントは wheel グループ(管理者グループ)に所属するようになりました。 wheel グループには標準で sudo 権限が付与されます。 }}} sudo は、あらかじめ、userAというユーザに対してスーパーユーザ権限で実行できるコマンドの一覧を作成しておき、実行する際には、userAというユーザであるかどうかを認証するという形になります。 また、コマンドを制限できるので、誤操作の危険性を減らすことができます。 利用頻度の高いコマンドなどを登録しておくと便利です。 === sudo でのコマンドの実行 === root 権限でコマンドを実行するには、sudo の後に実行したいコマンドを続けます。 {{{ $ sudo apt-get update Password: }}} この際、パスワードを求められるので root のパスワードではなく、sudo を実行したユーザー自身のパスワードを入力します。 {{{ #!Admonition type=important === sudo を実行したユーザーのパスワードで認証します === su や gksuexec などでは、root のパスワードが必要ですが、sudo では認められたユーザ本人であるかを確認するので、root のパスワードは不要です。 }}} {{{ #!Admonition type=warning === 一般ユーザーで実行できるコマンドを sudo で実行しないようにしましょう === 実行例にあるコマンドは、一般ユーザー権限で実行すると失敗するため sudo を利用しています。 {{{ $ apt-get update E: ロックファイル /var/lib/apt/lists/lock をオープンできません。 - open (13 許可がありません) E: listディレクトリをロックすることができません }}} 逆に言うと一般ユーザー権限で実行できるコマンドに sudo を利用する必要はありません。常に sudo を介してコマンドを実行するようにしていると思わぬ事故を招く恐れがあるため、必要性を考慮して sudo を利用するように心がけてください。 }}} === visudo での設定 === root権限で visudo コマンドを実行し、ユーザ名、ホスト名(現在利用しているホストの名前は hostname コマンドで確認出来ます)、許可するコマンドなどを設定します。 visudo コマンドについては、man visudo で、また、書式については、man sudoers で確認してください。 visudo コマンドを実行すると、vi というエディタが設定ファイル(/etc/sudoers)を開いた状態で起動します。 {{{ #!Admonition ==== visudo では vi 以外のテキストエディタも使えます。 ==== GNOMEテキスト・エディタ(gedit) で編集するには VISUAL=gedit visudo のように、また、Emacs で編集するには VISUAL=emacs visudo のように、 {{{ # VISUAL=エディタのコマンド visudo }}} という形で指定します。 visudo コマンドでは、エディタ起動時、エディタ終了時に、文法のチェックなどが行われるようになっているので、他のエディタを用いる場合でも、visudo コマンドを用いてください。 }}} パスワードを用いた認証を省略するように設定することもできます。man sudoers で "NOPASSWD と PASSWD" の部分などを読んでください。 {{{ #!Admonition ==== vi について ==== vi は、一般的なエディタとは操作方法が異なりますが、Unix,Linux では、Emacs と並んで人気のある有名なエディタの一つです。 Vine Linux では vi を改良した VIM(VIsual editor iMproved) があり、vim という名前のパッケージになっています。 慣れるまでには多少時間がかかるかもしれませんが、チュートリアルを体験してみるとよいでしょう。 {{{ $ vimtutor ja }}} とすると日本語でのチュートリアルが起動します。 {{{ $ vimtutor en }}} とすると英語でのチュートリアルが起動します。 }}} ==== ユーザごとの設定 ==== 次のように記述すると userA は localhost というホストにおいて、sudo を利用して root権限で /usr/bin/apt-get update というコマンドを実行出来るようになります。 {{{ userA localhost = /usr/bin/apt-get update }}} ===== visudo でのユーザごとの設定例 ===== 18〜19行のところに、ユーザーごとの設定の部分があるので、その次の行あたりに書いておくとよいでしょう。 {{{ # User privilege specification root ALL=(ALL) ALL # for user : userA userA localhost = /usr/bin/apt-get update }}} 行頭に # をつけることでその行を無効にできるのでコメントを書いておきます。ひらがなや漢字など日本語は用いないほうがよいでしょう。 この場合、update という部分も書いているので、/usr/bin/apt-get upgrade や /usr/bin/apt-get install や /usr/bin/apt-get remove など、update 以外は実行できません。 install や upgrade や remove なども認めるのであれば、 {{{ userA localhost = /usr/bin/apt-get upgrade userA localhost = /usr/bin/apt-get install userA localhost = /usr/bin/apt-get remove }}} のようにそれぞれ指定するか、 {{{ userA localhost = /usr/bin/apt-get }}} のように apt-get 以降は指定しない形で書きます。 ==== グループごとの設定 ==== ユーザ一人一人についてではなく、グループ単位での設定も可能です。 補助グループなどを利用すると便利です。グループについては、ユーザ登録 を参照してください。 power というグループに所属するユーザが /sbin/shutdown コマンドを実行出来るようにするには次のように記述します。 {{{ %power localhost = /sbin/shutdown }}} 先頭のユーザ名だったところを %グループ名 に変えるだけで、あとの書式は同じです。 ===== visudo でのグループごとの設定例 ===== 21〜22行のところに、グループごとの設定の例の部分があるので、その次の行あたりに書いておくとよいでしょう。 {{{ # Uncomment to allow people in group wheel to run all commands # %wheel ALL=(ALL) ALL # for group : power %power localhost = /sbin/shutdown }}} ==== sudo -l での確認 ==== 一般ユーザは sudo -l とすると自分がどんなコマンドを実行できるか確認できます。 userA で確認してみると次のようになります。 {{{ $ sudo -l Password: }}} root のパスワードではなく、userA 自身のパスワードを入力します。 {{{ User userA may run the following commands on this host: (root) /usr/bin/apt-get update }}} 二行目以降で、root権限で実行できるコマンドが表示されます。 sudo でのコマンドの実行が認められていない場合には、パスワード入力のあとに {{{ Sorry, user test may not run sudo on localhost. }}} のようなメッセージが表示されます。 {{{ #!Admonition synaptic などのように、root権限を必要とするアプリケーションは、コマンドで起動したり、GNOME Panel などのメニューから選択して起動するだけで、rootのパスワードの入力を求めるウィンドウが開くものがあります。 また、次のようにしてアプリケーションを起動することもできます。 GNOME Panel のメニューの アプリケーション→システムツール→Run as different user (GKsu) を選択します。 {{{ $ gksuexec }}} のようにコマンドを入力しても起動できます。 プログラムの実行というウィンドウが開くので 実行するコマンド と 実行するユーザ名 を入力します。 OK をクリックすると、実行するユーザ名で指定したユーザのパスワードの入力を求められるので、パスワードを入力すると、そのユーザの権限でアプリケーションを起動することができます。 実行するユーザ名の部分に root と入力することで root権限でアプリケーションを起動できます。 }}}