루트의 $PATH(및 sudo의 secure_path)에 새 경로(이 경우 /usr/lib/cyrus/bin)를 추가하고 싶습니다. 그런데 저는 데비안을 사용하고 있습니다
먼저 /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 완성은 sudo를 통해 호출할 때 /usr/lib/cyrus/bin(예: cyr_dbtool, cyr_deny, cyr_expire 등) 아래의 바이너리를 제안하지 않습니다.
내가 놓친 게 무엇입니까?