Düzenli olarak sadece sudo subirkaç özel amaçlı kullanıcı olarak giriş yaptığım oturumumun geri kalanını harcamak için kullandığım birkaç makinem var. Genel iş akışı:
mymachine:~ me$ ssh me@othermachine
othermachine:~ me$ sudo su - specialuser # note: no password needed
othermachine:~ specialuser$ # do stuff
Bunu, takma ad kullanabileceğim tek bir astar içine kaynatmak istiyorum, böylece her makine için bir takma ad ayarlayabilir ve sudo su - specialuserkazan plakasını yazmak zorunda kalmadan tek bir komutta olmam gereken yere gidebilirim . Belki kurmak olabilir me@othermachineiçin sudo sugiriş yapıldığında, ama ben gibi çalışmaya esneklik tutmak istiyorum meben gerekirse.
( Not: Herhangi bir kontrolüm othermachineveya kurulum şeklim yok; bu işe alındığımda geldiğim yerleşik bir iş akışı.)
İlk düşüncem sadece
ssh me@othermachine "sudo su - specialuser"
ve bu tür işler, ama istem almıyorum, ^Cöldürüyor ve oturumu kapatıyorum ve diğer birçok şeyin de muhtemelen yanlış olduğunu varsayıyorum.
Tam Giriş Kabuğu ile Uzaktan Kumanda ssh komutunu okuduktan sonra ,
ssh me@othermachine 'bash -l -c "sudo su - specialuser"'
ve
ssh me@othermachine 'bash -l -c "sudo su - specialuser"; bash'
- hiçbiri çalışmayı beklemiyordum, ama yapmadılar, ama onları tamlık için denemem gerektiğini düşündüm (ve kopya kadar yakın olmamak için); aynı derhal daha az mermi ürettiler (ikincisi , diğerinden mesonra için ilave bir ikramiye exitiçermeyen mermi ile birlikte specialuser). Ve denedim
ssh me@othermachine "sudo su - specialuser -c bash -l"
ama beni yakaladı
sudo: no tty present and no askpass program specified
Daha iyi fikirler?
sudovurmak istemiyorum olmasıdır ^C? Daha iyi bir şey bulamazsam bunu deneyebilirim.
su medan specialuser. Ya içinde .profileya .bashrc, sen takip etmezsen sudoile exit, ilk exitgeri götürecek meoturumunu bitirmek için ikinci bir ile. Ya da bir bayrak dosyası kullanın, bunun sudoöncesinde [ -f ~/.keep.me ] && del ~/.keep.meve arkasından gelir [ \! -f ~/.keep.me ] && exit: komut meolarak yalnızca bir komut dosyasına veya takma ada ihtiyacınız vardır :>~/.keep.me; exit. Şimdi exitoturumunuzu sonlandıracak ve oturum oturumunuza megeri dönecektir.
/bin/bashbasit bir son değil , son sürümünüzde yazmayı düşünün bash( truva atını önlemek için ). Özellikle daha sudoönce varsa ...
~/.profileKısa bir gecikmeden sonra sudo komutunu eklemeye ne dersiniz ?