Soru Farklı kullanıcı ve çalışan ekran olarak Sudo


Bugün, ekranın farklı bir kullanıcı olarak çalıştığını, işe yaramayacağını öğrendim!

diğer bir deyişle

ssh bob@server         # ssh into server as bob
sudo su "monitor" -
screen                 # fails

"Monitör" kullanıcısı olarak çalışan bir komut dosyası var. Ekrandaki çıkışı görmek için bir ekran oturumunda çalıştırıyoruz. Sorun şu ki, kendi hesaplarıyla (yani, bob, james, susie, vb.) Giriş yapan ve sonra "monitor" kullanıcısına seslenen bir çok kullanıcımız var. Onlara "monitör" kullanıcısına erişim vermek söz konusu değildir.


151
2018-02-25 15:07


Menşei


Bu aldığınız hata mı? "Terminalinizi açamıyorsunuz" / dev / pts / 0 '- lütfen kontrol edin. " - Jim
Evet öyle. Neden olduğunu anlıyorum ama bir çözüm var mı? - luckytaxi
Komutlarınıza bir yorum - İnsanları koşarken görmeye devam ediyorum sudo su "user" -. Neden kullanılmaz sudo -u user -s? - Andrew Aylett
@Jim: Eksik hata mesajını sağlamak için +1. - Dennis Williamson
@Andrew Bildiğim çoğu adam sudo su - Sanırım insanların alıştığı şey (benim durumumda, çünkü sudo bayraklarını bilmeniz gerekmez) sudo su - Sudo manpage'i hiç okudum sanmıyorum :) - voretaq7


Cevaplar:


Koşmayı dene script /dev/null kullanıcı olarak su Ekranı başlatmadan önce - bir getto küçük kesmek, ama ekran mutlu etmeli.


221
2018-02-25 16:46



Re: güvenlik etkileri, hiçbiri farkında değilim (ama bu demek değildir ki :) - IIRC, bu, yeni bir terminal aygıtını açan "betiğin" bir yan etkisine dayanıyor (kullanıcı bunu çağırırken) ve sen komut dosyasının çıktısını / dev / null'a gönderdiğinden, yakalanacak hiçbir şey yok. Ayrıca, kullanıcıları tty grubuna (IMHO) eklemekten kesinlikle daha güvenlidir. - voretaq7
@nalply Açıkçası, Unix sistem yöneticisi iseniz kafa karıştırıcı birden fazla mermi bulamamalısınız - script fırlatmak için kullanılabilir screen. Sonra sadece iki kez çıkmak zorundasınız ( screen, bir kere su). (Bu bir şey script Okumak için zaman ayırırsanız, sayfa sayfa size açıklık getirebilir ...) - voretaq7
Ya da sadece koş sudo -u bob script -q -c 'screen -dr myscreen' /dev/null. Sonra çıkmak / çıkarmak için sadece bir terminaliniz var. - Andy Shulman
Teşekkürler, bu beni kurtardı. Ama bu neden düzeltiyor? Anladığım kadarıyla, her şeyi stdout'tan ... hiçbir yere basmıyor. Ve bu bir şekilde ekranı düzeltir. - sudo
@sudo Kendi işini yapmak için script onu çalıştıran kullanıcı tarafından sahip olunan kendi tty cihazını açar /dev ve koştuktan sonra göründüğünü göreceksiniz script). screen sonra o tty aygıtı kapar (kullanıcı tarafından çalıştırılan aittir screen bu yüzden ona erişmede sorun yok). Bu bir hack işi, ama işe yarıyor. Bazı makinelerime baktığımda, ekranın yeni sürümlerinin de setuid-root'u yüklediğini görüyoruz, bu da işe yarıyor, ama etrafta dolanan başka bir setuid-root ikili var demektir, bu da bazı insanları haklı olarak rahatsız ediyor. - voretaq7


Ben bir sarıcı işlevi kullanıyorum screen kullanıcı (lar) için ben sudo su için. Bu, kullanıcılara eklediğim sarmalayıcı işlevidir ~/.bashrc:

işlev ekranı () {
  / usr / bin / script -q -c "/ usr / bin / ekran $ {*}" / dev / null
}

Bu, tüm seçenekleri ve parametreleri kullanmamı sağlar. screen kullanmak isteyebileceğim Bu fonksiyonu sistem geneline koymayı düşünüyorum.


32
2017-08-13 13:45



Mükemmel çalışıyor. Bu sistemden yararlanmak isteyenler için bunu tüm kullanıcılara /etc/bash.bashrc - eklemelerine öneriyorum. - Someguy123
Bu, doğru olarak taranacak argümanları, aksi takdirde iyi bir çözümü teklif etmeyecektir. - augurar


Ana bilgisayarda SSHing olduklarını varsayarak, ~ monitor / .ssh / authorized_keys dosyasındaki monitör hesabına erişmesi gereken her kullanıcının genel ssh anahtarlarını ekleyebilirsiniz. Sonra her kullanıcının uzaktan makinesinde çalıştırabilirler.

ssh -t monitor@remote.machine ekran -RD


7
2018-02-25 16:52



Bu başka bir iyi bir yaklaşımdır - Yetkili anahtar dosyasında zorlanmış komutlar belirtmeniz gerekir (her bir şansa göre "monitör 'kullanıcısına' erişim 'kullanıcısı soruya cevap vermiyor" notu yukarıda belirtilmiştir) zorlu komutlar bunları yalnızca ekran oturumunu ekleme) - voretaq7
Cevabımda bunu nasıl ele alacağımı bilemedim, çünkü "onlara erişim vermek ... sorudan çıktı" dedi, ama aynı zamanda "... 'monitör' kullanıcısına boyun eğdiler" dedi. Fakat kabul ediyorum ki, yetkili satıcılarda komut sınırlamasını zorlamak buna dikkat etmeli. - Alex


Bu hatadan bahsettiğimizi varsayalım:

$ sudo su - bob
$ screen
Cannot open your terminal '/dev/pts/5' - please check.

İşte bir tek liner (örneğin "alias gobob" olarak kullanılabilir), örneğin:

sudo su - bob -c "script -c bash /dev/null"'

Açıklama:

Bu kullanıcı bob olarak bir kabuk (giriş kabuğu gibi) başlayacaktır. Kullanıcı bob başlar scriptbir bash çağırması söylenir (çizgi veya ksh olabilir ...) ve oturumun bir kopyası atılır.


6
2018-02-22 08:36





Muhtemelen söz konusu cihazdaki izinleri değiştirmek veya bu cihazı okuma iznine sahip bir gruba monitör eklemek zorunda kalırdım, bu benim ilk eğilimim olur. Ama bunu yapmanın güvenlik etkilerini tartmak zorunda kalacaksın.


0
2018-02-25 15:51





Yaptığını söylüyorsun:

sudo su "monitor" -

Sondaki çizgi hakkında merak ediyorum. Genellikle yaparım:

sudo su - username

Çizgi (su adam sayfası başına), "kabuğun bir giriş kabuğunu oluşturmasını" söyler. Bu, tüm normal kabuk başlangıç ​​komut dosyalarına kaynaklık edecek ve PATH ve HOME gibi şeyleri doğru şekilde ayarlayacağı anlamına gelir.


0
2018-02-25 18:44



Hayır! sudo su - username ve sudo su username - aynı şeyi yap. - Tim Ludwinski


Sadece bu problemi gördüm. İle çözüldü chmod +rw $(tty) sudo çalıştırılmadan önce. Bu çözümdeki problem, bundan sonra terminalinize herhangi birinin bağlanıp snoop yapabilmesidir.


-2
2018-06-22 02:09



Harika bir çözüm gibi geliyor. - Evan Carroll
@EvanCarroll Verdiği bölüm hariç, harika bir çözüm tüm dünya terminaline okuma ve yazma erişimi. Sadece küçük bir güvenlik problemi - Hiçbir program bununla ilgilenmeyecektir, elbette şifreleri kabul etmeden önce terminal güvenliğini kontrol eden herhangi bir şey (gpg Örneğin). Ve elbette ki, hiç kimsenin izlemeyeceği kötü niyetli kullanıcılarla bir sistemde olmayacak. tty ve şifreleri kokla ... - voretaq7
Uyarmak: Bunu evde asla denemeyin! Bu tehlikeli!!! - ruizpauker