sudoers - basit açıklama istendi


24

Her sudoerzaman çok fazla olmamı gerektiren bir şeyi çalıştırabilmek istediğimde, /etc/sudoerstekrar yazmanın tam olarak ne yolu olduğunu hatırlatmak için google'a ihtiyacım var.

Şimdi dosyamda farklı yazı stilleri görüyorum sudoers, bu da aylar boyunca farklı Google sonuçlarının bir sonucu. Ayrıca ikinci örneğin (aşağıda) XFCE'de çalıştığını, ancak Tarçın'da (Gnome 3) olmadığını fark ettim. Bu tamamen ilgisiz olabilir, ama yine de bilmek istiyorum ki, sudoer çizgisinin doğru dilbilgisi nedir ve verilen örnekler arasındaki fark nedir?

  1. redsandro ALL=NOPASSWD:/path/to/command
  2. redsandro ALL=(ALL) NOPASSWD:/path/to/command
  3. redsandro ALL=(ALL:ALL) NOPASSWD:/path/to/command

Ayrıca, tüm bunlar ne ALLiçin? Bir kullanıcı, bir komut, ancak ALLanahtar kelimeyi üç defa kullanmam gerekiyor mu? Bunu yanlış mı yapıyorum?

Tabii ki, ihmal NOPASSWD:komutunu çalıştırmak için izin verilmeden önce markaları şifrenizi girin, ancak karışıklık bir nokta kullanımıdır =ve :ya tarafından önüne alınabilir hattının konu olan nihai komut için, =, :, , veya ), Benzer anlambilim için kafa karıştırıcı dilbilgisi.


3
Ayrıca sudoerssözdizimi konusunda gerçekten sinirli hissediyorum . Man sayfasını okumak daha da sinir bozucu oldu: özlü ve kesin EBNF dilini anlatıyor, örnekler çok uzun. Bu nedenle, bu dosya ile ilgili burada çok fazla konu bulmak için şaşırmadım.
m-ric

1
Bunun için teşekkürler. Birkaç yıl önce bir
sudo

Yanıtlar:


35

Bir kullanıcı ve komuttan daha fazlası:


redsandro host=(user:group) tag:commands
  • hostbu satırın geçerli olduğu ana bilgisayar adlarını belirtir. Asudoers dosyasını, ALL"all hosts" özel değerini kullanan farklı kurallara ihtiyaç duyan farklı hostlar arasında paylaşmıyorsanız , iyi bir seçimdir.

  • user-uKomutu çalıştırmak için hangi seçenekleri kullanabileceğinizi belirtir . Bunu atlarsanız, -useçeneği kullanamazsınız .

  • group-gseçeneklerle hangi grupları kullanabileceğinizi belirtir . Bunu atlarsanız, -gseçeneği kullanamazsınız .

Her ikisi de userve groupözel değeri ALL"tüm kullanıcılar / gruplar" olarak anlayın

Eğer hepsini atlarsanız (user:group)kullanamazsınız -uve -gsadece komutu root olarak çalıştırın.

  • tag gibi bazı seçenekleri belirlemenizi sağlar NOPASSWD

Böylece ilk örneğinizle komutu root olarak çalıştırabilirsiniz ancak kullanamaz -uve -gbaşka bir kullanıcı veya grup olarak çalıştıramazsınız.

Örnek 2 ile komutu root -uolarak çalıştırabilir veya başka bir kullanıcı olarak çalıştırmak için kullanabilirsiniz .

3. komutunu root olarak çalıştırabilir veya kullanabilirsiniz -uveya -gkomutu başka bir kullanıcı veya grup olarak çalıştırabilirsiniz.


Bu tam olarak aradığım şeydi. Cevabınızı kabul ettim ve emeğiniz için teşekkür ederim.
Redsandro

1
Nihai düşünce, ben kullanabilir 127.0.0.1veya localhostolarak hostönemsiz güvenlik için?
Redsandro

5
Manpage diyor ki 'Not sudo yalnızca gerçek ağ arayüzlerini denetler; bu, 127.0.0.1 IP adresinin (yerel ana bilgisayar) hiçbir zaman eşleşmeyeceği anlamına gelir. Ayrıca, "localhost" ana bilgisayar adı yalnızca, yalnızca ağa bağlı olmayan sistemler için geçerli olan gerçek ana bilgisayar adıysa eşleşir. '
Florian Diesch,

1
Teşekkürler. Özellikle sudoers dosyasını birkaç makineye kopyalayabilmek istediğim için benim için bir ana bilgisayar adı yok. ALLbu.
Redsandro,

9

Bunu birbirinden ayıralım:
redsandro ALL=(ALL:ALL) NOPASSWD:/path/to/command

redsandro, izin verdiğimiz kullanıcı adıdır. Bir gruba uygulanmasını sağlamak için öne bir% koyun.

ALL, bu kural için bir addır. Sudoers, küresel izinler vermekten çok daha fazlasını yapabilir. Yine de karmaşıklaştığı yer burası.

= açıklama gerektirmez

ALL: ALL olarak okur (who_to_run_it_as: what_group_to_run_it_as). Bu şekilde bir komutun çalıştırılmasına izin verebilirsiniz, ancak yalnızca belirli bir kullanıcı veya grup bağlamında.

NOPASSWD: şifre istemini kapatmasını söyler.

/ path / to / command belirli komutları belirtmenize izin verir path_to_commmand, another_command

Hatırlanması gereken şey, sudo'nun çoğunlukla ev kullanıcıları tarafından kök ayrıcalıklarına tırmanmak için kullanılmasına rağmen, belirli komutlara erişimi çok daha ayrıntılı bir şekilde kontrol etmek için kullanılabileceği ve kullanıldığı.


1
Ek %ve , another_commandnotlar için teşekkürler . Şimdi %wheelFedora merkezli dağıtımdaki çizgiyi anlıyorum .
Redsandro
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.