doas
私はDebian / GNU / Linux Unstableを使用しており、今日は次の簡単な設定ファイルを使って初めて試しました。
$ doas cat /etc/doas.conf
permit persist alx as root
しばらく動作している間(たとえば、実行できますdoas apt-get update && doas apt-get upgrade
)、次は失敗します。
alx@ady1:~$ doas gdisk /dev/sdb
doas: gdisk: command not found
まあ、これはバイナリ gdisk
ですか?バイナリファイルです。たぶん間違っているかもしれません。確認してみましょう:sbin
apt-get
bin
PATH
$ sudo env | grep PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
$ doas env | grep PATH
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
doas
知っているようですが、sbin
何かが逆になったようですPATH
。わかった、どこgdisk
?
alx@ady1:~$ sudo which gdisk
/usr/bin/which: this version of `which' is deprecated; use `command -v' in scripts instead.
/usr/sbin/gdisk
alx@ady1:~$ doas which gdisk
/usr/bin/which: this version of `which' is deprecated; use `command -v' in scripts instead.
/sbin/gdisk
command -v
組み込みまたはsudo
orと一緒に使用できないため、ここでは機能しませんdoas
。しかし、その警告を無視しましょう(which
適切な交換がないと、なぜもう使用されないのですか?)。
まあ、彼らは同意しません。みましょう:
$ realpath /usr/sbin/gdisk
/usr/sbin/gdisk
$ realpath /sbin/gdisk
/usr/sbin/gdisk
$ ls -l /sbin
lrwxrwxrwx 1 root root 8 Nov 11 15:37 /sbin -> usr/sbin
doas
おそらく、このバイナリを実行する必要があると信じるのに苦労しているシンボリックリンクのためでしょうか?PATH
実際のパスを最初に探すように修正してみましょう。
$ doas PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin gdisk /dev/sdb
doas: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin: command not found
ハハ、変です。一般的な構文を使ってみましょう(sudo
構文とは反対です。一貫性がないのではないでしょうか、それとも私だけですか?)。
$ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin doas gdisk /dev/sdb
GPT fdisk (gdisk) version 1.0.8
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Command (? for help): q
$
さて、今見つけました。
この問題に対する正しい解決策は何ですか?構成に何か抜けましたか?