sudo şifresiz başka bir kullanıcıya izin ver


46

Belirli bir kullanıcıya 'su' yapabilmek, şifre girilmeden herhangi bir komutu çalıştırmama izin vermek istiyorum.

Örneğin:

Giriş bilgilerim user1 ise ve 'su' yapmak istediğim kullanıcı user2 ise:

Bu komutu kullanırdım:

su - user2

ama sonra beni uyarıyor

Password:


Diğer kullanıcıdan şifreyi isteyin. En azından diğer kullanıcı kimliği altında ne yapıldığını biliyor.
Küresel göçebe

1
Bu başka bir fiziksel kullanıcıyla ilgisi yok. Her iki kimlik de benim. Hesabı oluştururken şifreyi biliyorum. Sadece her seferinde şifreyi girmek istemiyorum.
zio

Kullanıcıya ssh yapmak uygun olur mu yoksa özellikle bir kabuğu miras almanız ve çalışmak için suya ihtiyacınız var mı?
bmike

1
@ zio Mükemmel kullanım durumu. Sizin open -na Skypeiçin çalışmıyor mu ?
bmike

Yanıtlar:


66

sudo sadece sizin için yapabilirim :)

Yine de biraz konfigürasyona ihtiyacı var, ancak bir kez yapmanız yalnızca şunu yapacaktır:

sudo -u user2 -s

Ve bir şifre girmeden user2 olarak giriş yapmış olursunuz.

Yapılandırma

Yapılandırmak sudo için, aracılığıyla kendi yapılandırma dosyasını düzenlemelisiniz: visudo. Not: Bu komut, vimetin editörünü kullanarak konfigürasyonu açacaktır , eğer rahat değilseniz export EDITOR=<command>, aşağıdaki satırı çalıştırmadan önce (kullanarak ) başka bir editör ayarlamanız gerekir . Bazen daha kolay kabul edilen bir başka komut satırı editörü de nanoöyledir export EDITOR=/usr/bin/nano. Genelde aşağıdakiler için süper kullanıcı ayrıcalığına ihtiyacınız vardır visudo:

sudo visudo

Bu dosya farklı bölümlerde yapılandırılmıştır, takma adlar, sonra varsayılanlar ve sonunda kurallara sahipsiniz. Yeni satırı eklemeniz gereken yer burasıdır. Böylece dosyanın sonuna gidin ve şunu ekleyin:

user1    ALL=(user2) NOPASSWD: /bin/bash

Ayrıca değiştirebilir /bin/bashtarafından ALLve daha sonra şifre olmadan user2 gibi herhangi komutu başlatmak olabilir: sudo -u user2 <command>.

Herhangi bir kullanıcıya geçebilmek istiyorsanız sadece kullanmanız yeterli

user1    ALL=(ALL) NOPASSWD: /bin/bash

Güncelleme

Skype ile ilgili yorumunuzu yeni gördüm. Skype'ı doğrudan sudo yapılandırma dosyasına eklemeyi düşünebilirsiniz. Uygulamalar klasörünüzde Skype kurulu olduğunu varsayıyorum :

user1    ALL=(user2) NOPASSWD: /Applications/Skype.app/Contents/MacOS/Skype

Sonra terminalden arayacaktınız:

sudo -u user2 /Applications/Skype.app/Contents/MacOS/Skype

Bu, ssh keys fikrinden çok daha az karmaşık olduğundan, uzaktan erişim için ssh tuşlarına ihtiyaç duymazsanız bunu kullanın.
bmike

2
Güvenlik perspektifinden not edilmesi gereken bir şey, belirli bir komutun belirtilmesinin, bunun kullanıcı için salt okunur bir komut olması gerektiği anlamına gelmesidir; Aksi takdirde, komutun üzerine başka bir şeyin üzerine yazabilir ve bunu user2 olarak çalıştırabilirler. Ve bunu umursamıyorsanız, o zaman kullanıcı1'in kullanıcı2 olarak herhangi bir komutu çalıştırabileceğini ve bu nedenle daha basit bir sudo yapılandırmasına sahip olduğunuzu belirtebilirsiniz .
Stan Kurdziel

@StanKurdziel iyi nokta! Farkında olması gereken bir şey olsa da, root olmadıkça kullanıcılar tarafından yazılabilir sistemlerin çalıştırılabilir olması çok nadiren olur, ancak bu durumda sudo'ya ihtiyacınız yoktur ;-) Ama bu yorumu eklemek doğru Muhtemelen birden fazla kez görmezden geldim.
Huygens

Davranış su - user2yerine davranışa daha yakın olması için su user2, komutların muhtemelen sudo -u user2 -ikullanıcı ilk girişini simüle etmek için kullanması gerekir2
Gert van den Berg

4

İkinci hesap için genel / özel ssh anahtarlarını ayarlarım ve anahtarı ilk hesapta saklardım.

Sonra şöyle bir komut çalıştırabilirsiniz:

 ssh user@localhost -n /Applications/Skype.app/Contents/MacOS/Skype &

İki örnek bir kullanıcı hesabında çalıştığından ve bu program tarafından okunan / yazılan dosyalar çakışabileceğinden, Skype'ın kafanızın karıştığına dair hala sorunlarınız olabilir. Ayrıca ihtiyaçlarınız için yeterince iyi çalışabilir ve ikinci Skype örneğinizi çalıştırmak için bir iPod touch'a ihtiyacınız olmaz.


1
Bu, herhangi bir ana bilgisayardaki herhangi bir hesaba genel olarak şifresiz giriş yapma durumu için iyi bir güvenli çözümdür, ancak her iki hesap aynı ana bilgisayardayken ve aynı kullanıcıya ait olduğunda muhtemelen geçersiz sayıldığını söyleyebilirim.
calum_b

@scottishwildcat Parola yazmanın ve açık metin olarak beslemenin alternatifini ya da bir değişkeni kullanarak ve parolayı anahtarlığa saklama expectve etkileşimi komut dosyası gibi bir araç kullanarak çok daha güvenli . Sadece sudo su - blahşifremi kullanıyorum ve yazıyorum. Diğer cevabın sudo olarak yorumda bulunacak kadar iyi olduğunu düşünüyorum.
bmike

Oh, kesinlikle cevabınızın kaldırılması gerektiğini önermiyordum… Aşağı oy bile vermedim, mükemmel bir cevap.
calum_b

Tamamen aynı fikirdeyiz - ekleme için teşekkürler - geliştirebilirseniz cevabını düzenlemek için çekinmeyin.
bmike

Kabul edilen çözüm ( sudo -u user2 <...>), uzaktan kullanılamayacağına, güvenlik için yardımcı olabilecek bir avantaja sahiptir - çalınabilecek kullanıcı1 için özel bir anahtar yoktur.
Gert van den Berg
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.