Yeniden adlandırmanın ardından çağrılan ayrıcalıkların kalmadığından emin olmak için sudo
hizmet dosyası bulunmaktadır. Temel olarak, yeniden başlatma sonrasında kök izinleri için çağrılan normal kullanıcıların normal kullanıcı olarak kalacağını garanti eder.
Sudo hakkında ayrıntılı bir açıklama
Aşağıdaki tüm açıklamalar, bu soruyu okuyan herkes için tüm bilgileri almak ve servis klasöründeki sudo dosyasının orada ne yaptığını açıklamaktır.
Ubuntu'yu veya sudo
'yi kullanan başka bir dağıtımı yüklediğinizde, root olmanın farkı ve "root like" ayrıcalıkları kazanmak için sudo
kullanan bir kullanıcı olmanız (Yönetimsel veya süper kullanıcı Ayrıcalıkları) ) aşağıdaki gibidir:
Kök olarak
- Bir oturumda çalıştırdığınız komutların her biri için bir parola istemezsiniz
- Yürütülecek tüm komutlar varsayılan olarak kaydedilmez
- Sistem, ne yaptığınızı bildiğinizi varsayar (Komutu her çalıştırdığınızda neden şifre sormadığı sorusu)
- Hata yaparsanız ikinci bir şans veya son dakika seçeneği yoktur
Sudo olarak
- Bir oturumda çalıştırdığınız her komut için bir parola istenir. Örneğin, bir terminali açar ve yönetimsel ayrıcalıklara ihtiyaç duyan bir komut yürütürseniz, terminali kapatıp oturumu kapatana kadar bu oturum için şifreyi bir kez sorar. Bu, hangi komutu kullandığınıza ve nerede bulunduğunuza bağlı olarak değişir. Bir veya birkaç kez sorabilir.
- Gerçekleştirdiğiniz tüm komutlar, süper kullanıcı ayrıcalıklı bir komut kullanmanız için izin istediğinden beri günlüğe kaydedilir.
- Sistem, sizden geçici olarak izin istemenizi ve yönetim hakkının geçici olarak verileceğini varsayar (Oturum kapanıncaya kadar, terminali kapatın, vb.).
- Herhangi bir hatayı düzeltmek için son dakika seçeneğiniz var. Bu, şifre sorduğunuz anda yapılır.
SUDO neden oluşturuldu
SUDO 'nun oluşturulması, geçmişte kök kullanılarak çözümlerden daha fazla sorun yarattığı için yapıldı. Kullanıcıların tüm hakları vardı, yani bir bahar temizliği yaptılarsa ve /usr
, /lib
ve /bin
klasörlerini gerçekten sildiyselerdi (çünkü bunlara ihtiyaç duymadıklarını düşündüler). Geçmişte birçok sorun, kullanıcıların root kullanırken sahip oldukları gücü bilmemeleriydi. Temel olarak kökleri vardı ama Linux'u, dosya sistemi hiyerarşisini, hangi dosyaların önemli olduğunu vs. anlamadılar. (Bir ferrari gibi ve bir otoyolda nasıl sürüleceğini bilmemek gibi bir şey!)
SUDO , bir şeyleri yapmak için geçici yönetim ayrıcalıklarına ihtiyaç duyduklarında GUI uygulamaları (Güncelleme Yöneticisi gibi) tarafından da kullanılır. Sadece belirli bir miktarda komut için gerekirler (Tipik olarak 1) ve sonra kullanıcı seviyesi ayrıcalığına geri dönerler. Bu, kullanıcı her zaman kök ayrıcalıklarına sahip olmaktan kaçınmak ve kullanıcı, sistemin önemli bir bölümünü kaldırmaya karar verirse hata yapmaktan kaçınmaktır.
Ayrıca, root kullanıcısı varsayılan olarak devre dışı bırakıldığından daha iyi bir güvenlik sağlar.
Son olarak, eğer bir Masaüstü PC'niz veya Sunucunuz varsa, herkesin root olmasını ve tüm yönetici ayrıcalıklarının olmasını istemiyorsunuz. Eğer küçük kız kardeşiniz ya da küçük kardeşleriniz, /boot
DEL anahtarıyla karşılaşırsa ne olacağını merak etmeye başlarsa çok kötü bir fikir. Bu, sudo
'nin, kötü bir şeylerin meydana gelme olasılığını azaltmak için devreye girdiği yerdir.
Belirli kullanıcılara sınırlı süper kullanıcı ayrıcalıkları sağlamalı ne demektir?
sudo kullanıcısı veya sudoers aslında, belirli bir kullanıcı için sudo komutunun ne kadar sınırlı olduğunu veya açıldığını söyleyen bir yapılandırma dosyasına sahiptir. % Co_de% dosyası, sudo kullanıcısına erişimi sınırlayacak veya erişim sağlayacak tüm bilgilere sahiptir. Varsayılan olarak her şeye erişebilirsiniz, ancak bunu istediğiniz gibi yapılandırabilir veya sınırlandırabilirsiniz.
Sudoers dosya türünün bir terminalde /etc/sudoers
nasıl kullanılacağı hakkında bilgi için. Örneğin normal biçim:
USER HOST = COMMANDS
Örneğin, man sudoers
kullanıcısı, ls komutunu çalıştırmak için ana sunucu1 erişimi kullanıcı cyrex verir.
Örneğin, cyrex server1 = /bin/ls
, kullanıcı komut dosyasını root olarak ls komutunu çalıştırmak için ana sunucu1 erişimi verir.
Örneğin, cyrex server1 (root) = /bin/ls
, tüm ana bilgisayarlarda kullanıcı ls komutunu ls komutunu çalıştırmak için kullanacaktır.
Örneğin, cyrex ALL = /bin/ls
, tüm komutları çalıştırmak için tüm ana bilgisayarlara kullanıcı cyrex'i verecektir.
Örneğin, cyrex ALL = ALL
, parola sormadan luis ALL=(root) NOPASSWD: /bin/kill, /usr/bin/killall
ve kill
komutları için root olarak sudo çalıştırmama izin verecektir.