[Çözüldü] Sudo Komutunda Zaman Kısıtlamasını Kaldırma

Başlatan mhmtkrktr, 03 Nisan 2016 - 16:20:43

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

mhmtkrktr

Bilindiği gibi terminalde sudo komutuyla bir işlem çalıştırıldığın da, kullanıcı şifresine ihtiyaç duyulur. Fakat bu şifrenin ardından yine sudo ile verilen komutlar belirli bir süre ( 5 dk ) şifre istemez.

Sormak istediğim, varsayılan 5 dakika olan bu süre sınırı kaldırılıp, terminal yeniden başlatılana kadar şeklinde ayarlanabilir mi?

Bahsettiğim durum tty_ticket olarak şurada açıklanmış gibi.  http://www.sudo.ws/man/1.8.16/sudoers.man.html  Fakat araştırmalarım ve denemelerim henüz bir sonuca ulaştırmadı.

7hr33l3t73r

man sudoers ile bilgi vermesi lazim ama internet'te sudo -k ile sifirlandigi visudo duzenlemesi icin de
,timestamp_timeout=X gibi bir ekleme ile de ayarlandigi soylenmekte.
dc -e '[q]sa[ln0=aln256%Pln256/snlbx]sb207356256404211981204295703670388snlbxq'
https://www.getgnu.org/gnulinux/gnulinux-ipuclari/nasil-akillica-soru-sorulur.html

mhmtkrktr

Konu hakkında farklı söylentiler var :) Fakat ya anlatımlarla aynı şeyden bahsetmiyoruz yada ben önerileri yanlış yere uyguluyorum. 
Örneğin en son sudoers dosyasına belirli bir uygulama için şu şekilde eklemede bulunmuştum.
mtk    ALL=(ALL)    NOPASSWD:/uygulama/yolu
Defaults:mtk        !requiretty

Bu değişiklik hiç bir fark oluşturmadı. Farklı bir kaç denemeyi yine sudoers içerisinden yapmıştım. Peki bu ,timestamp_timeout=X komutunu nereye uygulamam gerekiyor? Belki uygulama şeklim yanlıştır.

7hr33l3t73r

#3
  Defaults timestamp_timeout=-1
yukarida ki  isinizi gorur saniyorum.
dc -e '[q]sa[ln0=aln256%Pln256/snlbx]sb207356256404211981204295703670388snlbxq'
https://www.getgnu.org/gnulinux/gnulinux-ipuclari/nasil-akillica-soru-sorulur.html

mhmtkrktr

Kullanıcı_Adı: mtk

sudoers içeriği:

root ALL=(ALL) ALL

Defaults : mtk timestamp _ timeout= 10


Bu şekilde düzenleyince sudo komutu aşağıda ki şekilde hata veriyor.

>>> /etc/sudoers: syntax error near line 80 <<<
sudo: parse error in /etc/sudoers near line 80
sudo: no valid sudoers sources found, quitting
sudo: ilke eklentisi başlatılamıyor


Değişikliği geri alınca düzeliyor.

7hr33l3t73r

dc -e '[q]sa[ln0=aln256%Pln256/snlbx]sb207356256404211981204295703670388snlbxq'
https://www.getgnu.org/gnulinux/gnulinux-ipuclari/nasil-akillica-soru-sorulur.html

mhmtkrktr

Şimdi hata vermedi. 10 dk kadar bekleyip, deneyince sonuca bakayım. 

7hr33l3t73r

dc -e '[q]sa[ln0=aln256%Pln256/snlbx]sb207356256404211981204295703670388snlbxq'
https://www.getgnu.org/gnulinux/gnulinux-ipuclari/nasil-akillica-soru-sorulur.html

mhmtkrktr

Şuan daha beklemede. Neden iptal ettik. Öyle değilmiymiş. :)

7hr33l3t73r

dc -e '[q]sa[ln0=aln256%Pln256/snlbx]sb207356256404211981204295703670388snlbxq'
https://www.getgnu.org/gnulinux/gnulinux-ipuclari/nasil-akillica-soru-sorulur.html

mhmtkrktr

#10
Aslında buna tekbir uygulama için ihtiyacım var. Daha önce örneğini verdiğim şekilde uygulamayı hedef alan bir çözüm kendi başına yeterli. Uygulama süresi 5 dk yı geçen betikler de, ikinci defa şifre istemi olsun istemiyorum.

Örneğin aşagıdaki betik de, kurulum senaryolarına göre üç farklı giriş metodu var. Buna göre işlem nasıl başlayacaksa şifre ekranı o bölüm için açılıyor. Diğer bölümler uygulamaya dahil edilse bile artık onlar için şifre sormuyor. Ancak devamında paket kurulumları vs gibi işlemlerden dolayı işlem 5 dk yı geçiyor ve terminal üzerinde yeniden şifre girme ihtiyacı oluşuyor.

function SCC () {
echo "e" >$SYNC/onay ; sleep .3
data=$(dialog --passwordbox "Kullanıcı Parolanızı Girin !" 10 30 3>&1- 1>&2- 2>&3-)
if [ $? = 1 ]; then exit ; fi
echo -e $data | sudo -S pacman -Scc <$SYNC/onay && touch $SYNC/passw
if [ $(find $SYNC/passw 2>/dev/null) ]; then echo ""; else SCC; fi
touch $SYNC/superuser
}
function DBLCK () {
data=$(dialog --passwordbox "Kullanıcı Parolanızı Girin !" 10 30 3>&1- 1>&2- 2>&3-)
if [ $? = 1 ]; then exit ; fi
echo -e $data | sudo -S rm -rf /var/lib/pacman/db.lck 2>/dev/null && touch $SYNC/passw
if [ $(find $SYNC/passw 2>/dev/null) ]; then echo ""; else SCC; fi
touch $SYNC/superuser
}
function DBUPGRADE () {
data=$(dialog --passwordbox "Kullanıcı Parolanızı Girin !" 10 35 3>&1- 1>&2- 2>&3-)
if [ $? = 1 ]; then exit ; fi
echo -e $data | sudo -S pacman-db-upgrade && touch $SYNC/passw
if [ $(find $SYNC/passw 2>/dev/null) ]; then echo ""; else DBUPGRADE; fi
}
################################################################
function apdeyt () {
dialog --infobox '\n\n  YAZILIM DEPOLARI HAZIRLANIYOR ......\n\n' 7 55 ; sleep 3
if [ $(find $SYNC/updatelog 2>/dev/null) ]; then SCC  ; else dialog --title 'BİLGİLENDİRME' --infobox '\n\n  BU BİLGİSAYAR İÇİN İLK DEFA KURULUM YAPILACAK\n' 7 55 ; sleep 3; fi
if [ $(find /var/lib/pacman/db.lck 2>/dev/null) ]; then if [ $(find $SYNC/superuser 2>/dev/null) ]; then sudo  rm -rf /var/lib/pacman/db.lck 2>/dev/null ; else DBLCK ; fi ; fi

#############################################################3
echo -e "\n\n"
if [ $(find $SYNC/superuser 2>/dev/null) ]; then sudo pacman-db-upgrade ; else DBUPGRADE ; fi
sudo pacman-optimize && sync ; clear



Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 03 Nisan 2016 - 18:02:55

Bu arada yaklaşık 30 dk oldu ve tekrar denemem de şifre istemedi. Daha uygun bir çözüm bulunur mu? Eğer yoksa bunu betiğin başında sudoers 'e ilave edip, betik sonunda çıkartabilirim. Biraz ilkel olur ama işlemin ortasında terminal ekranında şifre sormasından iyidir.

7hr33l3t73r

#11
Biraz daha arastirmak lazim. Su an gorunen ya uygulamayi direk sizin gibi sudoers ile sifre girmeden calistirmak ya da sudo suresini uzatmak. Onun disinda arastirinca neler bulunur bakmak lazim :-)
Evet biraz ilkel olacak ama sudoers ile ac kapa yapmak su an icin mantikli.
sudo sed -i "/Defaults timestamp_timeout=-1/d" /etc/sudoers ile acabiliriz tekrardan.
sudoers isleme
sudo sh -c 'echo "\nDefaults timestamp_timeout=-1">>/etc/sudoers'
dc -e '[q]sa[ln0=aln256%Pln256/snlbx]sb207356256404211981204295703670388snlbxq'
https://www.getgnu.org/gnulinux/gnulinux-ipuclari/nasil-akillica-soru-sorulur.html

mhmtkrktr

Alıntı Yapsudo sh -c 'echo "\nDefaults timestamp_timeout=-1">>/etc/sudoers'

Bunu şu şekilde değiştirelim yakmasın kimseyi :)

sudo sh -c 'echo -e "\nDefaults timestamp_timeout=-1">>/etc/sudoers'


@8100d1r0n ilgin ve yardımın için teşekkür ederim. Konuyu çözüldü olarak işaretliyorum. Farklı bir çözüm yolu var mıdır? Vardır muhtemelen ama bu kadarı benim için yeterli.

7hr33l3t73r

Ben se degisiklik icin tesekkur ederim. telden olunca boyle seyler oluyor ama zaten tek satir olacagini biliyorlardir herhalde telefon da net goremedigim icin olfu yokda  \ ile belirtirim. alt satiri.
Kisaca gecmis olsun. :-)
dc -e '[q]sa[ln0=aln256%Pln256/snlbx]sb207356256404211981204295703670388snlbxq'
https://www.getgnu.org/gnulinux/gnulinux-ipuclari/nasil-akillica-soru-sorulur.html