Takma adı sudo'ya nasıl geçirebilirim?


38

Ben benim takma adları koyarak çalıştı gelmiş ~/.bash_profile, ~/.bashrc, /etc/profile, ve /etc/bashrc.

Hala aşağıdakileri yürütemiyorum:

alias zf2="php public/index.php"

ve sonra yürütmek:

sudo zf2 orm:info

Sorun, visudo kullanarak bir takma ad belirtemem gibi görünüyor, bu da bir sözdizimi hatasına neden oluyor.

Bu yüzden arayamıyorum:

sudo zf2 orm:info

Bununla birlikte, / usr / share / scripts / zf2 dizininde bir komut dosyası oluşturabildim:

#!/bin/bash

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

ve bu komut dosyasını visudo'da komut olarak ekleyin. Bu betik, son kullanıcının PATH'sinde olduğunda, yürütebilirim.

zf2 orm:info

zf2Son kullanıcıya maruz bırakmam gereken farklı takma adlarım var . Bir komut dosyası koleksiyonu yerine takma adını korumayı tercih ederim.


1
Ne yazık ki, takma adları visudo'da kullanmak istiyorum ve yapamıyorum.
Michael Niño

2
Bu imkansız. Takma adlar kabuk tarafından taşınır (bash durumunda) ve uygulamaya gönderilmeden önce genişletilir. sudokendisi takma adlar hakkında hiçbir şey bilmiyor.
Steven,

2
@Steven teknik olarak doğru olduğundan, sadece takma ad genişletmek isteyip açıklamak gerekir önce için sudosize yükseltilmiş ortamda genişletilmiş takma ad isteyip hattı geçirilen ya. Pedantry sadece göz merdaneleri çıkarmanın bir yolu değildir. (Vay, ama bu son cümle hiç hoş görünmüyor.)
can-ned_food


1
Deneyinsudo -E
Denis de Bernardy,

Yanıtlar:


66

İronik olarak, çözüm sudobir takma ad aramaktır.

alias sd="sudo "

Not: Tavsiye edilmemekle birlikte, diğer adı adlandırabilirsiniz sudo:alias sudo="sudo "

Bash Referans Kılavuzu (Diğer Adlar)

Diğer ad değerinin son karakteri boşsa, diğer adı izleyen bir sonraki komut sözcüğü ayrıca diğer ad genişletme olup olmadığını denetler.


7
Birisinin neden herhangi bir sistem için varsayılan olarak yapılmasını isteyip istemediğinin nedenlerini belki de görebilirim. İstenilen kolaylık ve beklenti, ayrıcalıklara karşı daha dikkatli olmaya karşı.
Pysis

5
alias sd="sudo "maychance?
Nate,

Takma adlarımı inceledikten sonra alias sudo="sudo "son kullanıcı ortamında olmadığımı fark ettim . Cevap bu
Michael Niño
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.