Süper kullanıcı izinlerini sudo kullanmaktan daha uzun süre nasıl yapabilirim?


25

Yapabileceğim bir yol var mı sudoKomutun varsayılan süresinden daha uzun bir süre bana izin vermesini ?

sudoBirçok paketin kurulumunu gerektirirken şifreyi girmeye devam etmek acı verici olabilir , bu nedenle kullanım süresini etkilemek için yapılabilecek bir komut veya konfigürasyon varsa, iyi olur.


3
Yani suartık kimse kullanmıyor mu? Hiç?
Bay Lister,

9
@ MrLister sudo -ive bir kök kabuğuna sahipsiniz, herkes istediği kadar ayağa kalkarsa yardım etmeye hazır ...
Rmano

1
@DevRobot, bunun için bir kaynağınız var mı? Canonical'ın bu kadar önemli bir komutu sileceğine inanmak zor geliyor ve bu konuda google'da bir şey bulamıyorum.
DJMcMayhem 6:15

9
@DevRobot'un suşifresine sahip olması için root gerekli. Varsayılan olarak, Ubuntu'nun kök kullanıcısının bir şifresi yoktur. Bu nedenle, sukök olamaz . suburada amaçlandığı gibi çalışıyor. Parolası olan herhangi bir kullanıcı ile deneyin.
muru

3
@muru sudo subiraz tekrarlı olsa da, gayet iyi çalışıyor.
coteyr

Yanıtlar:


27

Davranışı dosyada sudoyapılandırılmıştır /etc/sudoers. Vartimestamp_timeoutBelirli bir süreden sonra kullanıcının parolayı yeniden taramasından sorumlu bir seçenek .

Gönderen adam sudoers

timestamp_timeout
                       Number of minutes that can elapse before sudo will ask
                       for a passwd again.  The timeout may include a frac‐
                       tional component if minute granularity is insufficient,
                       for example 2.5.  The default is 15.  Set this to 0 to
                       always prompt for a password.  If set to a value less
                       than 0 the user's time stamp will never expire.

Bu ayarı değiştirmek için aşağıdakileri yapın:

  1. Terminal çalışmasında sudo visudo. visudoözellikle /etc/sudoersdosyayı düzenlemek için kullanılır ve varsayılan olarak nanometin düzenleyiciyi kullanır .
  2. İle başlayan satırları bulun Defaults. Aşağıdaki satırı ekle

    Defaults        timestamp_timeout=x
    

    x, reprompts arasında istediğiniz dakika sayısıdır

  3. Dosyayı Ctrl+ ile kaydedinO


12

Kimden man sudoers:

timestamp_timeout
                       Number of minutes that can elapse before sudo will ask
                       for a passwd again.  The timeout may include a frac‐
                       tional component if minute granularity is insufficient,
                       for example 2.5.  The default is 15.  Set this to 0 to
                       always prompt for a password.  If set to a value less
                       than 0 the user's time stamp will never expire.  This
                       can be used to allow users to create or delete their
                       own time stamps via “sudo -v” and “sudo -k” respec‐
                       tively.

Gördüğünüz gibi, varsayılan zaman aşımı sudo15 dakikadır. İçinde bu değeri değiştirebilirsiniz /etc/sudoers.

Doğrudan düzenleme yapmazsınız /etc/sudoers, bunun yerine kullanın visudo.

Kimden man visudo:

     visudo edits the sudoers file in a safe fashion, analogous to vipw(8).
     visudo locks the sudoers file against multiple simultaneous edits, pro‐
     vides basic sanity checks, and checks for parse errors.  If the sudoers
     file is currently being edited you will receive a message to try again
     later.

Bu nedenle, dosyayı metin düzenleyicide sudo visudoaçacak olan bir terminal yazın ./etc/sudoersnano

Bu çizgiyi arayın:

Defaults    env_reset

Ve eklemek nerede X'in bir kaç dakika içinde ayarlamak istediğiniz zamandır.timestamp_timeout=X

Örnek olarak:

Defaults    env_reset,timestamp_timeout=5

0 belirtirseniz, her zaman parola sorulur. Negatif bir değer belirtirseniz, zaman aşımı süresi asla dolmaz.

Bir kez yapılır, kaydedin ve çıkın.

RootSudoTimeout'a bakın


Beni 29 saniye geç) =)
Sergiy Kolodyazhnyy

1
Sen iyisin, ben bir dizüstü bilgisayardayım. . . belki daha fazla kahveye ihtiyacım var
Sergiy Kolodyazhnyy

Ayrıca, örneğin -1 zaman aşımı olarak ayarlayabilirsiniz - parola istemini tetiklemek istemiyorsanız.
Michał Żywiecki

8

Bunu dene .

  1. Bir Terminalde aşağıdaki komutu çalıştırın:

    sudo visudo
    
  2. Bu gibi görünen satıra ilerleyin:

    Defaults        env_reset
    
  3. Örneğin olarak değiştirin:

    Defaults        env_reset,timestamp_timeout=30
    

30'u, dakika cinsinden, zaman aşımına uğramadan önce beklemesini istediğiniz şekilde değiştirin. Her sudo çalıştırdığınızda bir parola istemi istiyorsanız 0, parola istemi istemiyorsanız -1 , düzenlemeyi bitirmek için Ctrl+ X, değişiklikleri kaydetmek için Y ve çıkmak için Enter tuşuna basabilirsiniz.

İşte kaynak: http://lifehacker.com/make-sudo-sessions-last-longer-in-linux-1221545774


5

/etc/sudoersDosyayı düzenleyebilir (ile sudo visudo: dikkatli olun) ve benzeri bir satır ekleyebilirsiniz

Defaults:myname timestamp_timeout=15 

mynamekullanıcı kimliğin nerede ? Zaman aşımı değeri dakika cinsindendir. Asla sona ermemek için -1 değerini kullanabilir ve ardından sudo -kkimlik doğrulamasını kesmek için yazın , bu nedenle tekrar bir parola kullanmanız gerekir.

Veya belirli bir komutun şifreye ihtiyacı olmadığını söylemek için bir giriş ekleyebilirsiniz.


1
sudo -kÖnbelleğe alınmış kimlik doğrulamasını el ile geçersiz kılmaktan bahsettiği için +1 .
Byte Komutanı

5

En basit emir olduğuna inanamıyorum:

sudo -s

burada belirtilmez. "-S" anahtarı, siz çıkana kadar dayanan ve kök izinlerine sahip bir konsol sunar. Varsayılan ayarlarla uğraşmanıza gerek yok.


1
Bu neden oy kullandı?
coteyr

3
Oy vermedim ama bu kullanım avantajını yendi sudo: her bir komut günlüğe kaydedilir (böylece ne yaptığınızı görebilirsiniz). Bir kök kabuğunu açtığınızda bu günlüğü kaybedersiniz.
guntbert

1
@guntbert elbette her komut kaydedilir, ancak kök kullanıcının geçmişinde.
Oliver Friedrich

@ BeowulfOF mutlaka değil - bash geçmişi sistem günlüğünden tamamen farklı bir şeydir.
guntbert 11:15

1
Gerçekten, @guntbert, Eğer böyle bir auth log kullanıyorsanız, farklı problemleriniz var.
Oliver Friedrich

1

Şimdiye kadarki diğer tüm cevaplar, şifrenizi tekrar ne zaman yazmanız gerektiğine dair varsayılan zaman aşımını değiştirmek için odaklanmış gibi görünüyor sudo. Ancak, komutları her komutu hazırlamadan sadece root olarak çalıştırabilmek sudoistiyorsanız, aşağıdakileri içeren bir root kabuğu alabilirsiniz:

sudo -i

veya

sudo bash

veya

sudo <your preferred shell here>

Bunların hepsi kök olarak tek bir işlemi başlatırken, söz konusu tek süreç, daha fazla yazmaya gerek olmadan sudobir şifre veya başka bir şifre gerekmeden kök olarak istediğiniz kadar başka işlemi başlatmanıza olanak sağlayacak bir kabuk olur . :)

Tabii ki, büyük güç ile büyük sorumluluk gelir, aptalca şeyler yapma, vb


1
Bu konuda son derece dikkatli olun. Aslında bir kök kabuğu çalıştırıyor olacaksınız.
hmayag

4
Bu neden indirildi?
coteyr

@ hmayag Evet, bir kök kabuğu başlatırsanız, gerçekten bir kök kabuğu çalıştırıyor olacaksınız. Bu nedenle uyarının sebebi sonunda.
reirab

@coteyr Muhtemelen BeoWulf'un cevabıyla aynı sebepten dolayı.
guntbert 13:15

1

Yapılandırma dosyalarını değiştiren ve paket güncellemesinden sonra değişikliklerinin neden üzerine yazıldığından kullanıcılardan çok fazla soru gördükten sonra, değiştirmek isterseniz timestamp_timeout, /etc/sudoers.dyerine bir dosya oluşturarak bunu yapmanın daha iyi olacağını unutmayın. /etc/sudoersdoğrudan değiştirin .

Yani yapmalısın

sudo visudo -f /etc/sudoers.d/timeout

(dosyanın adı, bir süre ( .) içermediği veya bir tilde ( ~) ile bitmediği sürece, istediğiniz herhangi bir şey olabilir . Bunun yerine açma /etc/sudoersseçtiğiniz editörü, bu açılacaktır /etc/sudoers.d/timeoutmevcut değil çünkü boş bir dosya olarak normalde. Koy senin

Defaults timestamp_timeout=X

İçinde ve her zamanki gibi kaydedin. Ardından, yeni bir sürüm çıkarsa, yeni sürümü /etc/sudoersyüklemek veya değişikliklerinizi tutmak arasında seçim yapmak zorunda kalmazsınız - otomatik olarak her ikisine de sahip olacaksınız.


1

Yapılandırma dosyasını değiştirmeyen bir çözüm arıyorsanız , örneğin belirtecin belirli bir oturum için daha uzun süre dayanmasını istediğinizde veya yalnızca açık bir işlemden sonra geçerli olduğunda, aşağıdakileri deneyebilirsiniz:

# Work as is with Bash 4.1.2(1)-release and later, this might require some adaptation for other shells
(while [ true ]; do sudo -v; sleep $((60*4)); done)&

Temelde önceki kod , arka planda başlatılan bir işlemle her 4 dakikada bir sudo tokenini yeniliyor .

Aslında, sudokılavuza göre : "sudoers güvenlik ilkesi için varsayılan parola istemi zaman aşımı süresi 5 dakikadır ." Bu nedenle, sisteme özgü politikaya bağlı olarak, döngünün iki döngü arasında uykuya geçme süresini azaltabilirsiniz.

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.