doas

提供: ArchWiki
2021年8月17日 (火) 22:54時点におけるKusakata (トーク | 投稿記録)による版 (翻訳)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

関連記事

翻訳ステータス: このページは en:doas の翻訳バージョンです。最後の翻訳日は 2021-08-17 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。

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" 
警告: /etc/doas.conf に構文エラーが含まれないように必ずチェックしてください。

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
ノート: 永続機能がデフォルトで無効になっているのは、新しい機能であり危険性を孕んでいるからです。オリジナルの doas ではカーネル API を使ってタイムアウトを設定・消去していました。この API は OpenBSD 特有のもので、他のオペレーティングシステムでは類似の API は存在しません。そのため、sudo と同じようにタイムスタンプファイルを使って実装されています。

sudo から doas への移行

後方互換を保ちつつ sudo から doas にスムーズに移行するために、以下の設定を追加すると良いかもしれません:

alias sudo='doas'
alias sudoedit='doas rnano'