Zmienna ekspansja w pliku sudoers

1

Poniżej /some/long/and/annoying/pathmam kilka skryptów, do których muszę dać dostęp sudo, więc piszę w moim /etc/sudoers (A) :

Cmnd_Alias MY_SCRIPTS = /some/long/and/annoying/path/foo.sh, \
                        /some/long/and/annoying/path/bar.sh, \
                        /some/long/and/annoying/path/baz.sh, \
                        /some/long/and/annoying/path/qux.sh, \
                        /some/long/and/annoying/path/quux.sh, ...

Ale nie lubię się powtarzać.

Zdaję sobie sprawę, że mogę po prostu napisać (B) :

Cmnd_Alias MY_SCRIPTS = /some/long/and/annoying/path/

Aby uwzględnić wszystkie skrypty, /some/long/and/annoying/path/ale podoba mi się kontrola określania każdego pliku według nazwy.

Więc moje pytanie brzmi:

Czy istnieje składnia taka jak (C) :

MY_DIR = /some/long/and/annoying/path
Cmnd_Alias MY_SCRIPTS = $MYDIR/foo.sh, \
                        $MYDIR/bar.sh, \
                        $MYDIR/baz.sh, \
                        $MYDIR/qux.sh, \
                        $MYDIR/quux.sh, ...

To będzie zarówno wyraźne, jak i SUCHE?

Zauważ, że: Nie jest akceptowalną odpowiedzią, która pozwoli mi kontynuować życie.

Chen Levy
źródło

Odpowiedzi:

2

Nie jestem pewien, czy dotyczy to twojej sprawy, ale jeśli chcesz, aby wszystkie skrypty w katalogu były wykonywane przy użyciu sudo przez określonego użytkownika, możesz użyć następującej konstrukcji:

username ALL=(ALL) NOPASSWD: /some/ungodly/long/directory/name/

zwróć uwagę na końcowe /, co oznacza, że ​​wszystkie pliki w katalogu są dozwolone przez sudo.

Nawet jeśli tak nie jest, nadal możesz tworzyć kopie skryptów w bloku aliasu polecenia sudoers, przenieść je do innego katalogu i użyć powyższej konstrukcji.

MelBurslan
źródło
Dzięki @MelBurslan, ale już zdałem sobie sprawę, że jest to opcja (B) . Mogę powrócić do tego rozwiązania, jeśli to, czego naprawdę pragnę, nie jest możliwe
Chen Levy
Będzie to wskazywać na oczywiste, ale zamiast określać katalog w pliku sudoers, możesz dodać go do PATH i zachować PATH z Defaults env_keepdyrektywą w pliku sudoers. Wówczas nazwa katalogu nie poprzedza każdego pliku wykonywalnego. Tylko myśl.
MelBurslan
Przyjmuję tę odpowiedź jako „Opcja C nie jest obsługiwana w sudoerspliku”. Twoje pozostałe sugestie są ważne. Dzięki.
Chen Levy,