[FreeBSD] 一般ユーザに root 権限を与え忘れて shutdown できないことに気がついた時にやるべきこと

インストール後 FreeBSD に一般ユーザーでログインした後 shutdown コマンドが実行できないことに気が付きました。しょうがない、では、root になって設定変更するか〜と思ったんですが root になるために su – を実行しても su コマンドを実行する権限がないために root になれないという状況でした。

ということで、

  • インストールする時に何かを忘れた

のではないかと思います。また、もし正しくインストールできたのだとしたら、

  • インストール後最初に起動した時は root でログインして一般ユーザーに権限を与える

が必要だったのだと思います。
で、いずれにしても、root 権限のない一般ユーザーでログインして shutdown できない状況になったので、仕方なく電源ボタン長押しの強制終了したあと、再度立ち上げて root でログインして以下の設定変更を行いました。

 [FreeBSD] 一般ユーザーが su コマンドを実行できるようにする設定方法

 

上の写真は root でログインしたところです。

 

/etc の group ファイルを修正する必要があるので、まず cp コマンドでコピってバックアップしておきます。

 

そして、vi エディタで /etc/group を編集しました。

 

修正した後に diff コマンドで差分を見てみると wheel の行にユーザー名が追加されていることがわかります。wheel グループにこのユーザーを追加したわけです。これでこのユーザーは su コマンドが実行できるようになりました。

 

で、もう一回再起動して一般ユーザーでログインした後 su – を実行するとちゃんと root になれました。めでたしめでたし。

しかし、これだけでは足りない。なぜなら root 権限の必要のあるコマンドを実行する時いちいち一旦 root にスイッチユーザーしないといけないというのは結構な手間です。Linux なんかで sudo の操作になれていると sudo も入れたくなるというものです。だからここで sudo も入れておきます。

FreeBSD に sudo をインストールする

ここからは MacBook Air から FreeBSD に ssh でログインしたあと設定していきます。

$ ssh oreore@10.1.0.3
Password for oreore@keyaki:
Last login: Mon Jan  2 14:59:03 2017 from 10.1.0.6
FreeBSD 11.0-RELEASE-p1 (GENERIC) #0 r306420: Thu Sep 29 01:43:23 UTC 2016

Welcome to FreeBSD!

Release Notes, Errata: https://www.FreeBSD.org/releases/
Security Advisories:   https://www.FreeBSD.org/security/
FreeBSD Handbook:      https://www.FreeBSD.org/handbook/
FreeBSD FAQ:           https://www.FreeBSD.org/faq/
Questions List: https://lists.FreeBSD.org/mailman/listinfo/freebsd-questions/
FreeBSD Forums:        https://forums.FreeBSD.org/

Documents installed with the system are in the /usr/local/share/doc/freebsd/
directory, or can be installed later with:  pkg install en-freebsd-doc
For other languages, replace "en" with a language code like de or fr.

Show the version of FreeBSD installed:  freebsd-version ; uname -a
Please include that output and any error messages when posting questions.
Introduction to manual pages:  man man
FreeBSD directory layout:      man hier

Edit /etc/motd to change this login announcement.
Need to remove all those ^M characters from a DOS file? Try

    tr -d \\r < dosfile > newfile
        -- Originally by Dru <genesis@istar.ca>
%

ssh で FreeBSD にログインできたら su – で root になります。

% su -
#

root になったら下記コマンドを実行します。

# cd /usr/ports/security/sudo
# make clean
# make instal

このあと、うじゃうじゃ文字が大量に出力されていきました。そしてその途中でこんな画面で止まりました。

 

意味があんまりわからなかったのでそのままエンターを押して先に進めました。

 

ここもまあええかーと思ってエンターを押して先に進めました。で、またぱらぱらとメッセージが表示され続けた後、sudo のインストールが完了しました。

この写真 ↓ は一般ユーザーで sudo date と試しに叩いてみたところなんですが、sudo をインストールするだけではダメで設定が必要です。それを今からやっていきましょう。

で、

FreeBSD の sudo 設定

root になって作業します。

% su -
Password:
#

visudo コマンドを引数なしで実行しますが、このコマンドで変更が加わる実ファイルは /usr/local/etc/sudoers です。visudo 実行前にバックアップをとっておきます。

# cd /usr/local/etc/
# ls -l sudoers
-r--r-----  1 root  wheel  3560 Jan  2 15:04 sudoers
# cp -p sudoers sudoers.org
# visudo

visudo コマンドを実行して

  • # % wheel ALL=(ALL) ALL

の行についているコメント # を剥がします。diff コマンドで差分を確認します。

# ls -l sudoers*
-r--r-----  1 root  wheel  3558 Jan  2 15:35 sudoers
-r--r-----  1 root  wheel  3560 Jan  2 15:04 sudoers.org
-r--r-----  1 root  wheel  3560 Jan  2 15:04 sudoers.sample

sudoers.d:
total 1
-rw-r--r--  1 root  wheel  0 Jan  2 15:04 .keep-me

# diff sudoers.org sudoers
90c90
< # %wheel ALL=(ALL) ALL
---
> %wheel ALL=(ALL) ALL
#

sudoers ファイルが修正されました。これで wheel グループに属するユーザーが sudo コマンドを実行できるようになります。一般ユーザーに戻ってもう一度 sudo date と叩いてみます。

# exit
logout
% sudo date
Password:
Mon Jan  2 15:41:25 JST 2017
%

できました!ここまでを FreeBSD インストール直後にやっておくと良いでしょう。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください