「Doas」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
 
(2人の利用者による、間の8版が非表示)
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}}
{{TranslationStatus|doas|2021-08-17|691373}}
 
 
OpenDoas は OpenBSD の [[Wikipedia:doas|doas]] コマンドの移植版です。[[sudo]] と比べてサイズがかなり小さいことで知られています。''sudo'' と同じように、''doas'' はシステム上の他のユーザーとして実行したいときに使います。
 
OpenDoas は OpenBSD の [[Wikipedia:doas|doas]] コマンドの移植版です。[[sudo]] と比べてサイズがかなり小さいことで知られています。''sudo'' と同じように、''doas'' はシステム上の他のユーザーとして実行したいときに使います。
   
40行目: 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}} に設定してください:
66行目: 72行目:
   
 
詳しくは {{man|5|doas.conf}} を読んでください。
 
詳しくは {{man|5|doas.conf}} を読んでください。
 
また、''doas'' コマンドの[[Bash#タブ補完|タブ補完]]を設定すると良いでしょう。
 
   
 
== ヒントとテクニック ==
 
== ヒントとテクニック ==
88行目: 92行目:
 
alias sudoedit='doas rnano'
 
alias sudoedit='doas rnano'
   
  +
または、代わりに、''sudo'' を ''doas'' へのシンボリックリンクにします。(ただし {{ic|sudoedit}} コマンドは提供されません):
Or alternatively, symlink ''doas'' to where ''sudo'' would normally be (does not provide {{man|8|sudoedit}}):
 
   
 
# ln -s $(which doas) /usr/bin/sudo
 
# ln -s $(which doas) /usr/bin/sudo
   
{{AUR|opendoas-sudo}} provides this symlink as well.
+
{{AUR|opendoas-sudo}} はこのシンボリックリンクも提供します。
 
{{Note|By default ''sudo'' preserves some environment variables while ''doas'' does not, most notably XAUTHORITY, LANG and LC_ALL. This means you will not be able to start graphical applications under X nor to access the user's locale without further configuration. For instance, to allow members of the ''wheel'' group to run graphical applications and to access the user's locale using the setenv option:
 
   
  +
{{Note|デフォルトでは、''sudo'' はいくつかの環境変数を保持しますが、''doas'' は保持しません。特に XAUTHORITY、LANG、LC_ALL は保持しません。これは、X でグラフィカルなアプリケーションを起動したり、 ユーザーのロケールにアクセスしたりすることが、さらなる設定なしではできないことを意味します。例えば、''wheel'' グループのメンバーがグラフィカルなアプリケーションを実行したり、setenv オプションを使用してユーザーのロケールにアクセスできるようにするには、次のようにします。
 
{{hc|/etc/doas.conf|
 
{{hc|/etc/doas.conf|
 
permit setenv { XAUTHORITY LANG LC_ALL } :wheel
 
permit setenv { XAUTHORITY LANG LC_ALL } :wheel
101行目: 104行目:
 
}}
 
}}
   
=== Bash tab completion ===
+
=== Bash タブ補完 ===
   
  +
デフォルトでは、bash はカレントまたは参照ディレクトリ内のファイルとディレクトリのみをタブで補完します。引数を別のコマンドのように補完するようにするには(他のコマンドのタブ補完の設定も利用する)、次のようにユーザの {{ic|.bashrc}} またはグローバルの {{ic|/etc/bash.bashrc}} に追加します。
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 {{ic|.bashrc}}, or the global {{ic|/etc/bash.bashrc}}:
 
   
 
{{hc|~/.bashrc|
 
{{hc|~/.bashrc|
 
complete -cf doas
 
complete -cf doas
 
}}
 
}}
  +
  +
{{Pkg|bash-completion}} がインストールされている場合は、以下を使用して、ターゲットコマンドの追加補完を可能にすることもできます。
  +
{{hc|~/.bashrc|
  +
complete -F _command doas
  +
}}
  +
  +
{{TranslationStatus|doas|2024-01-02|736536}}

2024年1月2日 (火) 04:03時点における最新版

関連記事

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 コマンドは提供されません):

# 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

bash-completion がインストールされている場合は、以下を使用して、ターゲットコマンドの追加補完を可能にすることもできます。

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