doas
OpenDoas は OpenBSD の doas コマンドの移植版です。sudo と比べてサイズがかなり小さいことで知られています。sudo と同じように、doas はシステム上の他のユーザーとして実行したいときに使います。
目次
インストール
opendoas パッケージをインストールしてください。
使用方法
非特権ユーザーで doas を使い始めるには、設定が必要です。#設定を見てください。
doas を使う時はコマンドとその引数の前に doas
とスペースを追加します:
$ doas cmd
例えば pacman を使う場合:
$ doas pacman -Syu
root のインタラクティブシェルを開くには:
$ doas -s
詳しくは doas(1) を参照してください。
設定
PAM モジュールはインストールされますが、デフォルトの設定やサンプルは含まれていません。
wheel グループのメンバーに他のユーザーとしてコマンドの実行を許可するには、以下の内容の設定ファイルを作成します:
/etc/doas.conf
permit :wheel
/etc/doas.conf
の所有者および所有グループは 0
に、ファイルのパーミッションは 0400
に設定してください:
# chown -c root:root /etc/doas.conf # chmod -c 0400 /etc/doas.conf
/etc/doas.conf
の構文エラーをチェックするには、以下のコマンドを実行:
# doas -C /etc/doas.conf && echo "config ok" || echo "config error"
plugdev
グループのメンバーが root ユーザーとして smartctl をパスワードなしで実行できるようにするには:
/etc/doas.conf
permit nopass :plugdev as root cmd /usr/bin/smartctl
/etc/doas.conf
の基本構文は以下のとおりです:
permit|deny [options] identity [as target] [cmd command [args ...]]
詳しくは doas.conf(5) を読んでください。
また、doas コマンドのタブ補完を設定すると良いでしょう。
ヒントとテクニック
doas の persist 機能
doas には永続機能があります: ユーザーが認証成功した後、しばらくはパスワードを要求しなくなります。デフォルトでは無効になっているので、persist
オプションで有効にしてください:
/etc/doas.conf
permit persist :wheel
sudo から doas への移行
後方互換を保ちつつ sudo から doas にスムーズに移行するために、以下の設定を追加すると良いかもしれません:
alias sudo='doas' alias sudoedit='doas rnano'
または、代わりに、sudo を doas へのシンボリックリンクにします。(sudoedit(8) は提供しません):
# ln -s $(which doas) /usr/bin/sudo
opendoas-sudoAUR はこのシンボリックリンクも提供します。
Bash tab completion
By default bash will only tab complete files and directories within the current or referenced directory. To tell bash to complete arguments as if they were separate commands (also leveraging the tab completion settings of other commands) the following can be added to either the users .bashrc
, or the global /etc/bash.bashrc
:
~/.bashrc
complete -cf doas