terminalde sudo ayrıcalıkları varsa ve ne kadar zaman kaldığını gösterirse nasıl uyarılırsınız?


10

Terminalde sudo ayrıcalıklarına sahip olduğunuzu nasıl görürsünüz? (bu ayrıcalıklara sahip olduğumu bilerek, sadece yazabilirim sudo -k) Terminale çok fazla bilgi eklememek daha iyi olurdu, sadece bir tür basit ve küçük uyarı!

KALAN ZAMAN MÜMKÜN DEĞİL, değil mi?

Ayrıca, o terminaldeki bu ayrıcalıklarla ne kadar zamanım olduğunu nasıl görebilirim? (böylece yazmak yerine bitmesine izin verebilirim sudo -k). Enter tuşuna her basışımda kalan sürenin görünebileceğini düşünüyorum.

DÜZENLEME: Daha fazla araştırdım ve /var/lib/sudo/$USER/$nPts($ nPts'in şu anki terminal puanları olduğu yerde ps -p $$) bir sudo komutu her verildiğinde zaman damgasının güncellendiğini ve yalnızca bir sudo komutu kullanırsanız erişilebilir olduğunu, bu nedenle kalan sürenin her zaman yapılandırılmış bir ...

PS .: Alternatif olarak, denedim alias sudo='sudo -k'ama her komut için şifreyi yazmaktan hoşlanmıyorum ... Ve ayrıca, bu alias sudos='sudo -k'(veya alias ssudo='sudo -k'uzun bir satır yazdıysanız iyi, sadece Ana Sayfa'ya basın ve 's' yazın) sadece bir komut yazarak yazmak istersiniz sudos. Ama hala harekete geçmem gerektiğini bilmek için normal sudo ayrıcalıklarına sahip olduğumu bilmiyorum ...


2
Bu neden düşük oylandı? Bu en açık gönderi olmasa da, başlık sorusu hala benim için geçerli bir soru gibi görünüyor (ve bu konuda oldukça yararlı bir soru)
DaimyoKirby

Neyin netleştirilebileceğini söyleyebilir misiniz? benim düzenlenmemiş ilk yazım 3 kat daha büyüktü ve daha özlü hale getirmek için çok şey temizledim :)
Aquarius Power

Bence geç oldu - tekrar okudum ve daha mantıklı.
DaimyoKirby

Yanıtlar:


5

[Hala daha iyi bir cevap olup olmadığını bilmek istiyorum.]

İşe yarayan bir yol buldum ve bilgi istemi tek bir satırda tutulacak:

şunu ~/.bashrcekleyin:

function FUNCsudoOn() { 
    if sudo -n uptime 2>/dev/null 1>/dev/null; then 
        echo -ne "\E[0m\E[93m\E[41m\E[1m\E[5m SUDO \E[0m"; 
        #echo #without newline, the terminal seems to bugout with lines that are too big... discomment this if you find any problems...
    fi; 
}
function FUNCpromptCommand () { 
    FUNCsudoOn
}
export PROMPT_COMMAND=FUNCpromptCommand
#export PS1="\`FUNCsudoOn\`$PS1" #this also works, use instead of PROMPT_COMMAND

DÜZENLEME: Ben sudo -n uptimesudo zaman aşımını güncelleyecek buldum , bu yüzden Enter tuşuna her bastığınızda, o sudo zaman güncellenecektir ... Bu, kalan zamanı bilmeden yapar, çünkü her zaman yapılandırılmış olacak, varsayılan olarak 15dk. .

ve bulmak için en iyi renkleri kullanabilirsiniz tadı için biçimlendirme ScriptEchoColor ile --escapedcharsbenzeri seçeneği:

echoc --escapedchars "@{nRlyo} SUDO " #that outputs below...
echo -e "\E[0m\E[93m\E[41m\E[1m\E[5m SUDO \E[0m"

Sadece yanıp kaldırmayı durdurmak için \E[5molduğu gibi\E[0m\E[93m\E[41m\E[1m SUDO \E[0m


4

Bunu YAPMAYIN gibi aptalca bir şey yapmazsan, terminalin "sudo ayrıcalıklarına sahip değil" sudo bash !

"Normal sudo ayrıcalıklarına sahip olmak" için yapmanız gereken tek şey sudokomutun önüne yazmaktan kaçınmaktır .

/usr/bin/idne yaptığını görmek için iyi bir yoldur sudo. Örneğin:

id -a        # returns my UID info
sudo id -a   # returns root's info
id -a        # me again
sudo id -a   # root again

sudoAdam sayfası "sudoers (5) geçersiz sürece Sudoers politikası, 15 dakika boyunca kimlik bilgilerini önbelleğe alır" diyor. Bunun anlamı, varsayılan olarak, bir sudokomut verirseniz (ve şifrenizi girerseniz ), ikinci bir sudokomut vermeden önce 14.9 dakika bekleyin , şifrenizi tekrar girmeniz gerekmez. 15.1 dakika beklerseniz, şifreyi tekrar girmeniz gerekir. sudo -ksadece 15 dakikalık zamanlayıcıyı hemen sona erer. Görebildiğim tek kullanım sudo -k, kilitli terminalinizi güvenmediğiniz birine vermek üzereyseniz UID 0.


" sudoKomutun önüne yazmaktan kaçının" dediniz . Ancak güvenlik duvarı kurallarımı kontrol etmek istersem, iptables -Lyazmadıkça çalışmaz sudo iptables -L. Demek istediğim, sudo kullanmaktan nasıl kaçınabiliriz?
Kova Gücü

Ayrıca, kalan süre hakkında, terminalde her Enter tuşuna bastığımda ne kadar zaman kaldığını bilmek istiyorum. Hakkında sudo -k, makineme uzaktan erişmeye çalışan krakerlerden endişeliyim (yine de yapabileceklerini gerçekten bilmiyorum ...) veya makinemi birkaç dakika boyunca kilitlemeden açık bırakmam durumunda ... iyi, asıl mesele şu: Bunu bu şekilde yapmak istiyorum! Ben yazmak zorunda umurumda değil sudo -kben bu şekilde yapmak, ben iyi hissetmeye ihtiyacım defalarca olarak daha sonra tekrar ve benim şifre! :)
Kova Gücü

"Sudo kullanmaktan kaçının"? Sudo, root şifresini dağıtmak, ikili dosyaları setuid yapmak veya kullanmak için bir çözümdü /bin/su. Atmak istediğinizden emin misiniz? "Makineme uzaktan eriş ..." ve sanırım ele geç /proc/YourPID/fd/{0,1,2}. Hayır. Makinenize uzaktan erişilirse, Bad Guy'ın UID 0 için daha kolay yolları vardır. Bu düzeyde bir endişeden önce Linux-foo'nuzu artırmalısınız.
waltinator

Eğer gerektiği gibi Maalesef rant için, bu sesler alias k=/usr/bin/sudo -kyerine sudoçağrısına sarar bir takma veya bash fonksiyonu ile komutu /usr/bin/sudoile /usr/bin/touch $HOME/tmp/$$/sudotimezaman ($ HOME / tmp / $ - son olarak, ve $ {{zaman (şimdi) yazdırmak için bir şey eklemek $ / sudotime))). Önemsiz değil, ama kendinizi iyi hissettirecekse, gidin.
waltinator

bu ilginç, ben de girişimi oldu, hatta daha da iyisi, herhangi bir ağ iletişimini kapatın, ben serin günlüğü! ama gizlemek bile sudoherhangi rasgele kelime bir takma ad ile, hala yazabilirsiniz /usr/bin/sudoyerine sudove sudo yaptığı gibi ben gerçek değiştirirseniz yine iş :(. Neyse fikir gibi .. acaba olur /usr/bin/sudoo başka bir şey kıracak onu kullanan tüm senaryolarım .. bunu yapsam bile, senaryoları okuyarak sudo'nun ne olduğunu tahmin edebilirler ..
Kova Gücü
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.