「Doas」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(他言語へのリンクを追加)
(→‎設定: 情報を更新)
41行目: 41行目:
   
 
{{hc|/etc/doas.conf|
 
{{hc|/etc/doas.conf|
  +
permit setenv {{{{ic|PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin}}}} :wheel
permit :wheel
 
  +
  +
}}
  +
  +
{{Note|
  +
* 設定ファイルは改行で終わる必要があります。
  +
* {{ic|setenv}} オプションは、OpenDoas の BSD 由来の [https://github.com/Duncaen/OpenDoas/issues/117 問題] を回避します。Linux では、{{ic|/usr/local/bin}} は一般的に実行可能ファイルを上書きするために使われるので、パッケージの実行可能ファイルを含む {{ic|/usr/bin}} の前に置かれます
 
}}
 
}}
{{Note|設定ファイルは改行で終わる必要があります。}}
 
   
 
{{ic|/etc/doas.conf}} の所有者および所有グループは {{ic|0}} に、ファイルのパーミッションは {{ic|0400}} に設定してください:
 
{{ic|/etc/doas.conf}} の所有者および所有グループは {{ic|0}} に、ファイルのパーミッションは {{ic|0400}} に設定してください:
67行目: 72行目:
   
 
詳しくは {{man|5|doas.conf}} を読んでください。
 
詳しくは {{man|5|doas.conf}} を読んでください。
 
また、''doas'' コマンドの[[Bash#タブ補完|タブ補完]]を設定すると良いでしょう。
 
   
 
== ヒントとテクニック ==
 
== ヒントとテクニック ==

2023年7月6日 (木) 23:34時点における版

関連記事

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 setenv {PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin} :wheel

ノート:
  • 設定ファイルは改行で終わる必要があります。
  • setenv オプションは、OpenDoas の BSD 由来の 問題 を回避します。Linux では、/usr/local/bin は一般的に実行可能ファイルを上書きするために使われるので、パッケージの実行可能ファイルを含む /usr/bin の前に置かれます

/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 の 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'

または、代わりに、sudodoas へのシンボリックリンクにします。(sudoedit(8) は提供しません):

# ln -s $(which doas) /usr/bin/sudo

opendoas-sudoAUR はこのシンボリックリンクも提供します。

ノート: デフォルトでは、sudo はいくつかの環境変数を保持しますが、doas は保持しません。特に XAUTHORITY、LANG、LC_ALL は保持しません。これは、X でグラフィカルなアプリケーションを起動したり、 ユーザーのロケールにアクセスしたりすることが、さらなる設定なしではできないことを意味します。例えば、wheel グループのメンバーがグラフィカルなアプリケーションを実行したり、setenv オプションを使用してユーザーのロケールにアクセスできるようにするには、次のようにします。
/etc/doas.conf
permit setenv { XAUTHORITY LANG LC_ALL } :wheel

Bash タブ補完

デフォルトでは、bash はカレントまたは参照ディレクトリ内のファイルとディレクトリのみをタブで補完します。引数を別のコマンドのように補完するようにするには(他のコマンドのタブ補完の設定も利用する)、次のようにユーザの .bashrc またはグローバルの /etc/bash.bashrc に追加します。

~/.bashrc
complete -cf doas
翻訳ステータス: このページは en:doas の翻訳バージョンです。最後の翻訳日は 2022-09-12 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。