TrueNASやJailでsudoを使えるようにする

2022-10-06
  • B!

TrueNAS

TrueNASやJail環境のプラグイン内で何かカスタマイズをする際にはシェルで作業をすることがある。シェルはWebブラウザのコンソールから使用したり、Jailはiocageコマンドからシェルへ入ることができるが、rootアカウントのシェルでの操作がデフォルトのため、ついうっかりミスでファイルを消してしまったりとやらかしてしまう恐れがある。

そこでシェルへは一般ユーザーでSSHログインし、必要な時だけsudoで管理作業をするような環境を設定する。

TrueNAS本体のsudoを有効にする

SSHの有効化

Services > SSHを有効にする。SSHの設定ではAllow Password Authenticationを有効にする。自宅LANサーバなのでパスワード認証でよしとする。組織用であればチェックを外して秘密鍵認証にした方が良いであろう。

ホームディレクトリを作る

ホームディレクトリ型のネットワークフォルダによる方法で各アカウントのホームディレクトリを作成する。その後、TrueNASのアカウント設定で、SSHログインを許可させたいユーザーのホームディレクトリのパスとシェルを設定する。ホームディレクトリは先に設定したファイル共有のホームディレクトリと同じパスにしておくと何かと使いやすい。シェルはデフォルトでは/usr/sbin/nologinなので、/bin/cshに変更しておけば良い。

sudoのインストール

Web管理画面のシェルか、TrueNASマシン本体のコンソールからpkgでインストールしてsudo許可ユーザーを設定する

# pkg install -y sudo

(インストールが完了後、sudo許可ユーザーの設定)
# visudo

##
## User privilege specification
##
root ALL=(ALL) ALL
<ユーザー名> ALL=(ALL) ALL

プラグインのJail内でsudoを有効にする

TrueNAS本体の手順とほぼ同じだが、sshdの有効化とユーザー作成の手順が異なる。TrueNAS上で以下のようにコマンドを実行する。
(Jail名の確認)
% iocage list

(Jailの中へ入る)
% sudo iocage console <Jail名>

(Jailの中で作業用ユーザーアカウントを作成)
# adduser
(以後、対話形式でユーザー作成)

(SSHを有効にする)
「etc/rc.conf」へ追記
sshd_enable="YES"

(SSHの設定)
# vi /etc/ssh/ssh_config
PermitRootLogin no    #コメントを外して有効に

(sshdの開始)
# service sshd start

この後は、前の手順と同様にJail内でsudoのインストールと初期設定を行う。