Как запустить Alias ​​как Sudo

Thank you for reading this post, don't forget to subscribe!

Псев­до­ним помо­жет вам лег­ко выпол­нять длин­ные поль­зо­ва­тель­ские коман­ды. Вы може­те сде­лать псев­до­ним посто­ян­ным, доба­вив его в bashrc или в файл кон­фи­гу­ра­ции любой обо­лоч­ки, кото­рую вы исполь­зу­е­те в Linux.

Про­бле­ма воз­ни­ка­ет, когда вы пыта­е­тесь запу­стить псев­до­ним с помо­щью sudo. Вы уви­ди­те ошиб­ку, подоб­ную этой:

 

Вы буде­те думать, что, посколь­ку вы рабо­та­е­те как поль­зо­ва­тель root, псев­до­ним дол­жен быть опре­де­лен в bashrc поль­зо­ва­те­ля root, т.е. /.bashrc. Попро­буй­те, но дер­жим пари, это не сработает.

Поз­воль­те нам пока­зать вам хит­рый малень­кий трюк для запус­ка коман­ды alias как sudo.

 

Запуск alias как sudo

Хит­рость в том, что­бы создать псев­до­ним для само­го sudo сле­ду­ю­щим образом:

 

Про­бел (или табу­ля­ция, если вы пред­по­чи­та­е­те это) после sudo важен в при­ве­ден­ном выше коде. Теперь, если вы запу­сти­те коман­ду псев­до­ни­ма с помо­щью sudo, она будет рабо­тать нормально.

Но поче­му? Поче­му это рабо­та­ет сей­час, когда все, что вы сде­ла­ли, это заме­ни­ли коман­ду sudo на sudo и про­бел? Ответ заклю­ча­ет­ся в том, как псев­до­ним пред­на­зна­чен для использования.

Если вы обра­ти­тесь к руко­вод­ству alias в bash, вы уви­ди­те, что пер­вое сло­во каж­дой про­стой коман­ды, если оно не заклю­че­но в кавыч­ки, про­ве­ря­ет­ся на нали­чие псев­до­ни­ма. Если послед­ний сим­вол зна­че­ния псев­до­ни­ма явля­ет­ся про­бе­лом или сим­во­лом табу­ля­ции, то сле­ду­ю­щее сло­во коман­ды, сле­ду­ю­щее за псев­до­ни­мом, так­же про­ве­ря­ет­ся на рас­ши­ре­ние псевдонима.

Дру­ги­ми сло­ва­ми, в коман­де толь­ко пер­вое сло­во про­ве­ря­ет­ся на псев­до­ним. Но если зна­че­ние псев­до­ни­ма име­ет про­бел или табу­ля­цию в кон­це, сле­ду­ю­щее сло­во коман­ды так­же про­ве­ря­ет­ся на псевдоним.

Вот поче­му, когда вы про­сто запус­ка­е­те коман­ду sudo my_alias с псев­до­ни­мом sudo ‘sudo’, сна­ча­ла sudo про­ве­ря­ет­ся на псев­до­ним. Псев­до­ним най­ден с про­бе­лом в кон­це, и поэто­му ваша систе­ма про­ве­ря­ет сле­ду­ю­щее сло­во для псев­до­ни­ма. Он так­же нахо­дит псев­до­ним для это­го, и ваша коман­да с псев­до­ни­мом рабо­та­ет так, как вы хотите.