Як я можу передати псевдонім судо?


38

Я спробував покласти свої псевдоніми ~/.bash_profile, ~/.bashrc, /etc/profile, і /etc/bashrc.

Я досі не можу виконати наступне:

alias zf2="php public/index.php"

а потім виконати:

sudo zf2 orm:info

Здається, проблема полягає в тому, що я не в змозі вказати псевдонім як команду за допомогою visudo--, що викликає синтаксичну помилку.

Тому я не можу зателефонувати:

sudo zf2 orm:info

Однак мені вдалося створити скрипт в / usr / share / script / zf2, який містить:

#!/bin/bash

alias zf2="php public/index.php"
zf2 $1

і додайте цей скрипт як команду у візуально. Коли цей скрипт знаходиться в кінці користувача PATH, я можу виконати

zf2 orm:info

У мене є різні псевдоніми, такі, zf2які мені потрібно виставити кінцевому користувачеві. Я вважаю за краще підтримувати псевдонім замість колекції сценаріїв.


1
На жаль, я хочу використовувати псевдоніми у візуалі, і я не в змозі.
Майкл Ніньо

2
Це неможливо. Псевдоніми обробляються оболонкою (у вашому випадку баш) та розширюються перед тим, як надсилати програму. sudoсама нічого не знає про псевдоніми.
Стівен

2
Оскільки @Steven є технічно правильним, ви повинні уточнити, чи просто ви хочете розгорнути псевдоніми до того, як sudoбуде передано лінію, чи ви хочете, щоб псевдоніми розгорнулися в підвищеному середовищі. Педантність - це не просто спосіб отримати рулони очей. (Нічого собі, але це останнє речення зовсім не виглядає кошерним.)
can-ned_food


1
Спробуйтеsudo -E
Денис де Бернарді

Відповіді:


66

Як не дивно, рішення полягає в тому, щоб зателефонувати sudoз псевдоніма.

alias sd="sudo "

Примітка. Хоча це не рекомендується, ви можете назвати псевдонім sudo:alias sudo="sudo "

Довідник по Bash (Псевдоніми)

Якщо останній символ значення псевдоніму є порожнім, то наступне командне слово, що йде за псевдонімом, також перевіряється на розширення псевдоніму.


7
Можливо, я бачу причини, чому хтось хотів би і не хотів би це робити як за замовчуванням для будь-якої системи. Зручність та очікування, як вимагають, порівняно з обережністю з підвищеними привілеями.
Pysis

5
alias sd="sudo "можливий вихід?
Нейт

Переглянувши свої псевдоніми, я помітив, що у мене немає alias sudo="sudo "в кінцевому середовищі користувачів. Це відповідь
Майкл Ніньо
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.