「Doas」の版間の差分
(翻訳) |
(→sudo から doas への移行: 情報を更新) |
||
(2人の利用者による、間の10版が非表示) | |||
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}} の前に置かれます |
||
}} |
}} |
||
65行目: | 72行目: | ||
詳しくは {{man|5|doas.conf}} を読んでください。 |
詳しくは {{man|5|doas.conf}} を読んでください。 |
||
− | |||
− | また、''doas'' コマンドの[[Bash#タブ補完|タブ補完]]を設定すると良いでしょう。 |
||
== ヒントとテクニック == |
== ヒントとテクニック == |
||
86行目: | 91行目: | ||
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 |
||
+ | |||
+ | {{AUR|opendoas-sudo}} はこのシンボリックリンクも提供します。 |
||
+ | |||
+ | {{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 |
||
+ | }} |
||
+ | |||
+ | {{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
/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 の persist 機能
doas には永続機能があります: ユーザーが認証成功した後、しばらくはパスワードを要求しなくなります。デフォルトでは無効になっているので、persist
オプションで有効にしてください:
/etc/doas.conf
permit persist :wheel
sudo から doas への移行
後方互換を保ちつつ sudo から doas にスムーズに移行するために、以下の設定を追加すると良いかもしれません:
alias sudo='doas' alias sudoedit='doas rnano'
または、代わりに、sudo を doas へのシンボリックリンクにします。(ただし sudoedit
コマンドは提供されません):
# ln -s $(which doas) /usr/bin/sudo
opendoas-sudoAUR はこのシンボリックリンクも提供します。
Bash タブ補完
デフォルトでは、bash はカレントまたは参照ディレクトリ内のファイルとディレクトリのみをタブで補完します。引数を別のコマンドのように補完するようにするには(他のコマンドのタブ補完の設定も利用する)、次のようにユーザの .bashrc
またはグローバルの /etc/bash.bashrc
に追加します。
~/.bashrc
complete -cf doas
bash-completion がインストールされている場合は、以下を使用して、ターゲットコマンドの追加補完を可能にすることもできます。
~/.bashrc
complete -F _command doas