ルートの$ PATH(およびsudoのsecure_path)に新しいパス(この場合は/usr/lib/cyrus/bin)を追加したいと思います。しかし、私はDebianを使用しています
まず、/etc/bash.bashrcを使用してルートの$ PATHに追加しました。これまではとてもよかったです。
# which cyr_expire
/usr/lib/cyrus/bin/cyr_expire
# cyr<Tab><Tab>
cyradm cyr_dbtool cyrdeliver cyr_deny cyr_df cyrdump cyr_expire cyr_info cyrmaster cyr_sequence cyrus cyr_userseen
Bash Completionはうまく機能します。
次に、/etc/sudoersにあるsudoのsecure_pathにこれを追加しました。
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/cyrus/bin"
sudoが新しいディレクトリをうまく処理していることを確認してください。
$ sudo which cyr_expire
/usr/lib/cyrus/bin/cyr_expire
わかりました。
しかし、bashの完了は新しいディレクトリを考慮していないようです。
$ sudo cyr<Tab><Tab>
cyradm cyrdeliver cyrmaster cyrus
Bash Completeは、sudoを介して呼び出すときに/usr/lib/cyrus/bin(cyr_dbtool、cyr_deny、cyr_expireなど)の下のバイナリを提案しません。
私が逃したものは何ですか?