「Doas」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) (→設定: add Note.) |
Kusanaginoturugi (トーク | 投稿記録) (→sudo から doas への移行: add article.) |
||
87行目: | 87行目: | ||
alias sudo='doas' |
alias sudo='doas' |
||
alias sudoedit='doas rnano' |
alias sudoedit='doas rnano' |
||
+ | |||
+ | Or alternatively, symlink ''doas'' to where ''sudo'' would normally be (does not provide {{man|8|sudoedit}}): |
||
+ | |||
+ | # ln -s $(which doas) /usr/bin/sudo |
||
+ | |||
+ | {{AUR|opendoas-sudo}} provides this symlink as well. |
||
+ | |||
+ | {{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: |
||
+ | |||
+ | {{hc|/etc/doas.conf| |
||
+ | permit setenv { XAUTHORITY LANG LC_ALL } :wheel |
||
+ | }} |
||
+ | }} |
||
+ | |||
+ | === Bash tab completion === |
||
+ | |||
+ | 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| |
||
+ | complete -cf doas |
||
+ | }} |
2022年2月24日 (木) 14:13時点における版
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"
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
sudo から doas への移行
後方互換を保ちつつ sudo から doas にスムーズに移行するために、以下の設定を追加すると良いかもしれません:
alias sudo='doas' alias sudoedit='doas rnano'
Or alternatively, symlink doas to where sudo would normally be (does not provide sudoedit(8)):
# ln -s $(which doas) /usr/bin/sudo
opendoas-sudoAUR provides this symlink as well.
Bash tab completion
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 .bashrc
, or the global /etc/bash.bashrc
:
~/.bashrc
complete -cf doas