Su world neden çalıştırılabilir?


20

Birden fazla kullanıcı tarafından uzaktan oturum açmış başsız bir sunucum var. Diğer kullanıcıların hiçbiri sudoers dosyasında değildir, bu yüzden üzerinden root alamazlar sudo. Ancak, izinleri beri suolan -rwsr-xr-xkaba kuvvet kök şifrenin girişiminde onları durdurma hiçbir şey yok.

Bir kullanıcı root şifresini biliyorsa, sistemi yine de tehlikeye atabileceğini iddia edebilir, ancak durumun böyle olduğunu düşünmüyorum. OpenSSH ve ile yapılandırılmıştır PermitRootLogin nove PasswordAuthentication nodiğer kullanıcıların hiçbiri sunucuya fiziksel erişime sahip değildir. Anlayabildiğim kadarıyla, dünya yürütme izni /usr/bin/susunucumda kök kazanmaya çalışan kullanıcılar için tek yoldur.

Yararlı görünmemesi için bana daha da şaşırtıcı olan şey. suYapmam gerekmeden doğrudan koşmama izin veriyor sudo su, ancak bu zor bir rahatsızlık.

Bir şey mi görüyorum? Dünya susadece tarihi nedenlerle orada izin veriyor mu? Henüz karşılaşmadığım iznin kaldırılmasının bir dezavantajı var mı?


9
"Bu sudo su yapmak yerine doğrudan su çalıştırmama izin veriyor, ama bu pek rahatsız edici değil." - İsteğe bağlı sudokurulu olmayan sistemlere ne dersiniz ? Orada oldukça büyük bir rahatsızlık olduğunu söyleyebilirim;)
marcelm

1
/ Bin / su için erişimi her zaman kısıtlayabilirsiniz, ancak / usr / bin / pkexec için de aynısını yapmayı unutmayın.
jpa

6
Bu sorunun ardındaki motivasyonu anlayamıyorum. Görünüşe göre su neden dünyanın çalıştırılabilir olması gerektiğini merak ediyordu, ama alternatifin amacı ne olurdu? Yani, su sadece root (?) Tarafından çalıştırılabilir olsaydı, bunun ne için kullanılabileceğini düşünüyordunuz?
David Z

1
@DavidZ Aslında, kök için gerçekten yararlıdır! Kullanıcılar ile hızlı bir şekilde geçiş yapabilirsiniz.
val diyor Reinstate Monica

1
@val Evet, bu doğru. Kökün su kullanabilmesi burada söz konusu değildir. (Tekrar okurken, önceki yorumumun başka türlü nasıl önerebileceğini görebiliyorum, ama demek istediğim bu değil.) Altay_H'nin bu soruyu sormadan önce bu konuda ne düşündüğünü merak ediyorum.
David Z

Yanıtlar:


39

İlkkachu'nun cevabında eksik olan bir nokta, köke yükselmenin sadece belirli bir kullanım alanı olmasıdır su. Su'nın genel amacı, başka bir kullanıcının giriş hesabı altında yeni bir kabuk açmaktır. Yani diğer kullanıcı olabilir olmak root(ve belki de en sık), ancak suvarsaymak kullanılabilir herhangi yerel sistem kimlik doğrulaması yapabilir kimliğini.

Örneğin, kullanıcı olarak oturum açtıysam jimve mikebildirilen, ancak yeniden üretemediğim bir sorunu araştırmak istersem, olarak giriş yapmayı mikeve ona sorun veren komutu çalıştırmayı deneyebilirim .

13:27:20 /home/jim> su -l mike
Password:(I type mike's password (or have him type it) and press Enter)
13:27:22 /home/mike> id
uid=1004(mike) gid=1004(mike) groups=1004(mike)
13:27:25 /home/mike> exit  # this leaves mike's login shell and returns to jim's
13:27:29 /home/jim> id
uid=1001(jim) gid=1001(jim) groups=1001(jim),0(wheel),5(operator),14(ftp),920(vboxusers)

Nedenler -lseçeneğini kullanmak sutam bir oturum açma benzetmesine neden olur ( mansayfa başına ).

Ancak yukarıdaki mikeşifre bilgisini gerektirir . Erişimim varsa , şifresi olmadan bile sudogiriş yapabilirim mike.

13:27:37 /home/jim> sudo su -l mike
Password:(I type my own password, because this is sudo asking)
13:27:41 /home/mike>

Özetle, suçalıştırılabilir izinlerin gösterdiğiniz gibi olmasının nedeni su, sistemdeki tüm kullanıcılar tarafından kullanılabilen genel amaçlı bir araçtır .


1
Bu çok mantıklı. Kullanma alışkanlığımdan beri , sadece daha fazlası için kullanılabileceğini sudounuttum . Ve sudoer olmadan bu ssh anahtarlarını değiştirmeden kullanıcıları değiştirmenin tek yolu olurdu. Kullanım durumum için bu izni kaldırmak için başka bir neden, ancak şimdi dünyanın yürütme izninin neden varsayılan olarak ayarlandığını anlıyorum. Teşekkürler! susudo -s
Altay_H

1
Başka bir nokta da başka sudobir kullanıcının kimliğini kabul etmek için kullanılabilir olmasıdır root. Bu , kimliğin parolasına ihtiyaç duymadan başka bir kimlik varsaymak da dahil olmak üzere, kimin kim olarak ne yapabileceği üzerinde daha hassas bir kontrole izin verir .
chepner

Karışıklığın bir kısmı, suhiçbir kullanıcı belirtilmediğinde (veya kök açıklık belirtildiğinde) insanların "süper kullanıcı" anlamına geldiğini, ancak aynı zamanda "kullanıcı değiştir" anlamına geldiğini düşünmesidir . Bu sunedenle, bu ikinci kullanımı kolayca unutulur.
Monty Harder

20

Tarihsel olarak (GNU olmayan birimlerde), izin verilmiyordu veya en azından "tekerlek" adı verilen bir grupta olup olmadığınızı manuel olarak kontrol etti su. GNU sürümü, suRMS'nin o sırada erişim denetimi hakkındaki ideolojisi nedeniyle bu işlevi yeniden üretmedi:

Why GNU `su' does not support the `wheel' group
===============================================

   (This section is by Richard Stallman.)

   Sometimes a few of the users try to hold total power over all the
rest.  For example, in 1984, a few users at the MIT AI lab decided to
seize power by changing the operator password on the Twenex system and
keeping it secret from everyone else.  (I was able to thwart this coup
and give power back to the users by patching the kernel, but I wouldn't
know how to do that in Unix.)

   However, occasionally the rulers do tell someone.  Under the usual
`su' mechanism, once someone learns the root password who sympathizes
with the ordinary users, he or she can tell the rest.  The "wheel
group" feature would make this impossible, and thus cement the power of
the rulers.

   I'm on the side of the masses, not that of the rulers.  If you are
used to supporting the bosses and sysadmins in whatever they do, you
might find this idea strange at first.

Googling "tekerlek grubu rms" veya benzerlerini kullanarak bu konuda çok daha fazla şey bulabilirsiniz.


3
Tek doğru cevap bu. Ortam kasıtlı, tarihseldir ve bunun nedeni de tam olarak budur. Tüm teknik blabla sadece bu - blabla. Modern bir Unix'te "tekerlek" grubunu kesinlikle yeniden kullanabilirsiniz.
Tom

10

Ancak, izinleri beri suolan -rwsr-xr-xkaba kuvvet kök şifrenin girişiminde onları durdurma hiçbir şey yok.

Evet. Her zamanki Linux sisteminizi varsayarsak, pam_unix.somodül başarısız bir kimlik doğrulama girişimini ~ iki saniye geciktirir, ancak eşzamanlı girişimleri durduracak bir şey olduğunu düşünmüyorum.

Başarısız girişimler elbette günlüğe kaydedilir:

Aug 16 22:52:33 somehost su[17387]: FAILED su for root by ilkkachu

Eğer onları izlemek için herhangi bir sisteminiz varsa, kaba-zorlama şifresi günlüklerde belirgin bir şekilde görünmelidir. Güvenilmeyen yerel kullanıcılarınız varsa, belki de yapmalısınız. Güvenilmeyen yerel kullanıcılar, yalnızca yerel olarak ayrıcalık yükseltmesi istismarlarından herhangi birini kullanmaya çalışabilir ve uzaktan ayrıcalık yükseltmesinden çok daha yaygındır.

Yararlı görünmemesi için bana daha da şaşırtıcı olan şey.

Tabii ki yararlıdır, rootşifreyi biliyorsanız kendinizi yükseltmenize izin verir .

suYapmam gerekmeden doğrudan koşmama izin veriyor sudo su, ancak bu zor bir rahatsızlık.

sudo subiraz gereksiz. Programları başka bir kullanıcı olarak çalıştırmanıza izin veren iki program kullanmaya gerek yoktur, biri yeterlidir. Sadece kullanmak sudo -iveya sudo -s(veya sudo /bin/bashsize kabuk çalıştırmak istiyorsanız vs.).

Bir şey mi görüyorum? Dünya, tarihi nedenlerden ötürü su üzerinde izin icra ediyor mu?

Yukarıyı görmek. Tüm sistemlerin sudoalternatifi yok, o tarihi düşünüp düşünmediğinizden emin değilim.

Henüz karşılaşmadığım iznin kaldırılmasının bir dezavantajı var mı?

Gerçekten değil, bildiğim kadarıyla hayır. Ben düşünüyorum bazı sistemler var subelli bir grubun sadece üyeler (" so set wheel") çalıştırabilirsiniz. Aynı işlemi sudoisterseniz ( chown root.sudousers /usr/bin/sudo && chmod 4710 /usr/bin/sudo) de yapabilirsiniz.

Veya programlara ihtiyacınız yoksa programlardan birini veya her ikisini birden kaldırabilirsiniz. Debian'da supaketle birlikte gelse de, loginpaketi bir bütün olarak çıkarmak muhtemelen iyi bir fikir değildir. (Ve eşleştirme loginve subunun gibi birlikte biraz tarihi görünüyor.)


1
BSD sistemleri kullanıcıların wheelkullanmak için grupta olmalarını gerektirir su. Hiç birlikte gelmeyen bazı BSD sistemleri (sadece OpenBSD için konuşabilirim) vardır sudo(3. taraf bir pakettir). OpenBSD, doastemellerinin yeniden uygulanmasıdır sudo, ancak yeni bir sistem kurulduğunda varsayılan olarak devre dışıdır.
Kusalananda

@Kusalananda Sadece kök salmak wheelistiyorsan orada olmalısın su. Herhangi bir hesap su, wheelgruba üyelikleri ne olursa olsun, parolaya sahip oldukları kök olmayan herhangi bir hesaba yapabilir .
Jim L.

Aldığım kök kabuğun kullanıcı hesabımdan kirli bir ortam olmadan tam bir kök girişi olduğundan emin olmak için 'sudo su -' komutunu çalıştırıyorum. RHEL'deki varsayılan sudo ediciler, yürütülebilir (PS1 gibi) oldukça az ortam değişkeni içerir.
jsbillings

@jsbillings, hmm, tamam. Does susonra çevreyi temizlemek? Debian'da böyle görünmüyor ...
ilkkachu

“Su -“ bildiğim her Linux'ta var. Kesin çizgi.
jsbillings

7

Zaten bazı iyi yanıtlarınız var, ancak yayınınızın ele almadığı bir kısmı var.

Anlayabildiğim kadarıyla, / usr / bin / su üzerinde dünya yürütme izni sunucumda root kazanmaya çalışan kullanıcılar için tek yoldur.

Bu tehlikeli bir varsayım. Kök için iyi bir şifre belirlediyseniz, çoğu durumda, başarılı bir ayrıcalık yükselmesinin, çekirdekteki bir hatadan veya bir setuid ikili dosyasından kaynaklanması çok daha olasıdır (elbette setuid'i de kaldırabilirsiniz bunlardan biraz, ancak passwdsetuid ve yüksek güvenlik istiyorsanız, bunu kullanıcılarınıza da sunmalısınız ve onlara şifresini değiştirme seçeneğini reddetmekle uyumlu değildir).


1

su herkesin çalıştırabilmesi için dünya çapında çalıştırılabilir olması gerekir. Birçok sistemde, parolalarını girerek başka bir kullanıcıya geçmek için kullanılabilir.

Kök parolasını kaba kuvvet uygulayan biri hakkında endişeleriniz varsa, bunu devre dışı bırakabilirsiniz. (karma değerini geçersiz kılın, böylece verilen hiçbir şifre eşleşmez)

Fikir birliği hakkında bir fikrim yok, ama doğrudan kendi başına bir güvenlik sorunu olarak giriş yapabilmeyi düşünürdüm.


-2

Diğer cevaplar doğru "su" kök dışında hesaplara oturum açmanızı sağlar.

"Sudo su" hakkında bir not olsa. Bu aslında root şifresini bilmeden root hesabına giriş yapmanızı sağlar. Sudo ile çalıştırdığınız hesabın parolasını bilmeniz ve bu hesabın sudoers dosyasında olması gerekir.


3
Yani bütünlükle bağlı sudoersvardır targetpwya rootpwkümesi.
muru

1
Bunun herkes sutarafından yürütülebilir olmasıyla hiçbir ilgisi yoktur .
Kusalananda
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.