「Doas」の版間の差分
翻訳 |
→使用方法: 同期 |
||
| (2人の利用者による、間の12版が非表示) | |||
| 3行目: | 3行目: | ||
[[Category:コマンド]] |
[[Category:コマンド]] |
||
[[en:doas]] |
[[en:doas]] |
||
[[ru:doas]] |
|||
[[zh-hans:Doas]] |
|||
{{Related articles start}} |
{{Related articles start}} |
||
{{Related|ユーザーとグループ}} |
{{Related|ユーザーとグループ}} |
||
| 8行目: | 10行目: | ||
{{Related|アプリケーション一覧/セキュリティ#管理者権限}} |
{{Related|アプリケーション一覧/セキュリティ#管理者権限}} |
||
{{Related articles end}} |
{{Related articles end}} |
||
| ⚫ | |||
OpenDoas は OpenBSD の [[Wikipedia:doas|doas]] コマンドの移植版です。[[sudo]] と比べてサイズがかなり小さいことで知られています。''sudo'' と同じように、''doas'' はシステム上の他のユーザーとして実行したいときに使います。 |
OpenDoas は OpenBSD の [[Wikipedia:doas|doas]] コマンドの移植版です。[[sudo]] と比べてサイズがかなり小さいことで知られています。''sudo'' と同じように、''doas'' はシステム上の他のユーザーとして実行したいときに使います。 |
||
| 27行目: | 28行目: | ||
$ doas pacman -Syu |
$ doas pacman -Syu |
||
別のユーザーとして対話型シェルに入るには({{ic|-u ''user''}} を省略すると、デフォルトで root になります): |
|||
root のインタラクティブシェルを開くには: |
|||
$ doas - |
$ doas -su ''user'' |
||
詳しくは |
一部のコマンドを実行するには、別のユーザーとしてログインする必要があります。詳しくは [[Sudo#ログインシェル]] を参照してください。 |
||
詳細については、 {{man|1|doas}} を参照してください。 |
|||
== 設定 == |
== 設定 == |
||
| 40行目: | 43行目: | ||
{{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}} の前に置かれます |
|||
}} |
}} |
||
| 65行目: | 74行目: | ||
詳しくは {{man|5|doas.conf}} を読んでください。 |
詳しくは {{man|5|doas.conf}} を読んでください。 |
||
また、''doas'' コマンドの[[Bash#タブ補完|タブ補完]]を設定すると良いでしょう。 |
|||
== ヒントとテクニック == |
== ヒントとテクニック == |
||
| 74行目: | 81行目: | ||
''doas'' には永続機能があります: ユーザーが認証成功した後、しばらくはパスワードを要求しなくなります。デフォルトでは無効になっているので、{{ic|persist}} オプションで有効にしてください: |
''doas'' には永続機能があります: ユーザーが認証成功した後、しばらくはパスワードを要求しなくなります。デフォルトでは無効になっているので、{{ic|persist}} オプションで有効にしてください: |
||
{{hc|/etc/doas.conf| |
{{hc|/etc/doas.conf|2= |
||
permit persist :wheel |
permit '''persist''' setenv {PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin} :wheel |
||
}} |
}} |
||
{{ic|doas -L}} を実行すると、自動的なタイムアウト前に保存されていた認証情報がクリアされます。 |
|||
| ⚫ | |||
| ⚫ | |||
=== sudo から doas への移行 === |
=== sudo から doas への移行 === |
||
| 86行目: | 95行目: | ||
alias sudo='doas' |
alias sudo='doas' |
||
alias sudoedit='doas rnano' |
alias sudoedit='doas rnano' |
||
または、代わりに、''sudo'' を ''doas'' へのシンボリックリンクにします。(ただし {{ic|sudoedit}} コマンドは提供されません): |
|||
# ln -s $(which doas) /usr/bin/sudo |
|||
もう1つの方法は、いくつかの sudo オプションをエミュレートする {{AUR|doas-sudo-shim}} をインストールすることです。 |
|||
{{Note|デフォルトでは、''sudo'' はいくつかの環境変数を保持しますが、''doas'' は保持しません。特に XAUTHORITY、LANG、LC_ALL は保持しません。これは、X でグラフィカルなアプリケーションを起動したり、 ユーザーのロケールにアクセスしたりすることが、さらなる設定なしではできないことを意味します。例えば、''wheel'' グループのメンバーがグラフィカルなアプリケーションを実行したり、setenv オプションを使用してユーザーのロケールにアクセスできるようにするには、次のようにします。 |
|||
{{hc|/etc/doas.conf| |
|||
permit setenv { XAUTHORITY LANG LC_ALL } :wheel |
|||
}} |
|||
}} |
|||
=== Bash タブ補完 === |
|||
デフォルトでは、bash はカレントまたは参照ディレクトリ内のファイルとディレクトリのみをタブで補完します。引数を別のコマンドのように補完するようにするには(他のコマンドのタブ補完の設定も利用する)、次のようにユーザの {{ic|.bashrc}} またはグローバルの {{ic|/etc/bash.bashrc}} に追加します。 |
|||
{{hc|~/.bashrc| |
|||
complete -cf doas |
|||
}} |
|||
{{Pkg|bash-completion}} がインストールされている場合は、以下を使用して、ターゲットコマンドの追加補完を可能にすることもできます。 |
|||
{{hc|~/.bashrc| |
|||
complete -F _command doas |
|||
}} |
|||
| ⚫ | |||
2025年5月7日 (水) 03:09時点における版
OpenDoas は OpenBSD の doas コマンドの移植版です。sudo と比べてサイズがかなり小さいことで知られています。sudo と同じように、doas はシステム上の他のユーザーとして実行したいときに使います。
インストール
opendoas パッケージをインストールしてください。
使用方法
非特権ユーザーで doas を使い始めるには、設定が必要です。#設定を見てください。
doas を使う時はコマンドとその引数の前に doas とスペースを追加します:
$ doas cmd
例えば pacman を使う場合:
$ doas pacman -Syu
別のユーザーとして対話型シェルに入るには(-u user を省略すると、デフォルトで root になります):
$ doas -su user
一部のコマンドを実行するには、別のユーザーとしてログインする必要があります。詳しくは Sudo#ログインシェル を参照してください。
詳細については、 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 setenv {PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin} :wheel
doas -L を実行すると、自動的なタイムアウト前に保存されていた認証情報がクリアされます。
sudo から doas への移行
後方互換を保ちつつ sudo から doas にスムーズに移行するために、以下の設定を追加すると良いかもしれません:
alias sudo='doas' alias sudoedit='doas rnano'
または、代わりに、sudo を doas へのシンボリックリンクにします。(ただし sudoedit コマンドは提供されません):
# ln -s $(which doas) /usr/bin/sudo
もう1つの方法は、いくつかの sudo オプションをエミュレートする doas-sudo-shimAUR をインストールすることです。
/etc/doas.conf
permit setenv { XAUTHORITY LANG LC_ALL } :wheel
Bash タブ補完
デフォルトでは、bash はカレントまたは参照ディレクトリ内のファイルとディレクトリのみをタブで補完します。引数を別のコマンドのように補完するようにするには(他のコマンドのタブ補完の設定も利用する)、次のようにユーザの .bashrc またはグローバルの /etc/bash.bashrc に追加します。
~/.bashrc
complete -cf doas
bash-completion がインストールされている場合は、以下を使用して、ターゲットコマンドの追加補完を可能にすることもできます。
~/.bashrc
complete -F _command doas