Bu kılavuzda, Linux’ta sudo ile yalnızca belirli komutları nasıl çalıştıracağınızı öğreneceksiniz.
Bu nedenle, bir kullanıcının Linux’ta sudo ile yalnızca belirli komutları çalıştırmasını sağlamak mümkündür. Bu, /etc/sudoers dosyasını değiştirerek veya /etc/sudoers.d dizini altına kullanıcıya özel sudoers yapılandırma dosyası ekleyerek yapılabilir.
Örneğin, john adlı bir kullanıcının Network Manager’ı tüm ana bilgisayarlarda root kullanıcı olarak yeniden başlatmasına izin vermek için sudoers dosyasını düzenleyin ve aşağıdaki satırı ekleyin.
visudo
Sudoers dosyasını düzenlemek için root kullanıcısı olmanız veya sudo ayrıcalıklarına sahip olmanız gerekir.
sudo visudo
Ardından aşağıdaki satırı ekleyin;
john ALL=(root) /bin/systemctl restart NetworkManager
Herhangi bir hedef kullanıcı olarak sudo ile belirli komutları çalıştırmak için, örneğin john kullanıcısının sudo kullanarak yalnızca Apache hizmetini yeniden başlatmasına izin vermek için;
john ALL=(ALL) /bin/systemctl restart apache2
Kullanıcı için sudo ayrıcalıkları eklerken, kullanıcıya özel sudo yapılandırmasını örneğin /etc/sudoers.d dizini altına koymak daha güvenlidir;
NOT: Komutları tekrarlarken ekstra dikkatli olun. Sisteminize sudo erişimini kolayca bozabilir ve kaybedebilirsiniz. Root kullanıcının oturum açmasına izin verilmedikçe, echo komutu kullanmayı deneyebilirsiniz.
echo "john ALL=(root) /bin/systemctl restart apache2" > /etc/sudoers.d/john
Komutları yankıladığınızda sudo yapılandırmalarının sözdiziminin uygun olup olmadığını her zaman onayladığınızdan emin olun;
visudo -c /etc/sudoers.d/john
Çıktının Tamam olduğundan emin olun. Aksi takdirde, olabilecek hataları düzeltin.
/etc/sudoers.d/john: parsed OK
Tüm sudoers yapılandırma dosyalarının geçerliliğini kontrol etmek için;
visudo -c
/etc/sudoers: parsed OK
/etc/sudoers.d/README: parsed OK
/etc/sudoers.d/eliza: bad permissions, should be mode 0440
/etc/sudoers.d/john: parsed OK
Belirli bir kullanıcının sudo ile birden çok belirli komutu çalıştırmasına izin vermek için;
john ALL=(ALL) /path/to/command1, /path/to/command2, /path/to/command3
/path/to/command komutunu, çalıştırılacak komutların tam yolu ve (varsa) bağımsız değişkenlerle değiştirin.
Which komutu kullanarak komutun tam yolunu bulabilirsiniz. Örneğin, komutun tam yolunu bulmak için, komut1;
which command1
Daha sonra bu komutları, aşağıdaki gibi sudo ile ön ekleyerek çalıştırabilirsiniz;
sudo systemctl restart NetworkManager
sudo systemctl restart command1
Tüm bu komutlar için sizden bu komutları çalıştırdığınız kullanıcının parolası istenecektir.
Bazı sudo komutlarını parola sorulmadan çalıştırmak ister misiniz?
Sudo Komutlarını Parola Olmadan Çalıştırın
sudo, şifre sorulmadan sudo olarak çalıştırılabilen komutları belirtmek için kullanılabilen NOPASSWD adlı bir seçeneğe sahiptir.
Örneğin, john adlı kullanıcının bir Ubuntu sistemi üzerinde Ağ Yöneticisini parola sorulmadan herhangi bir kullanıcı olarak yeniden başlatmasını sağlamak için aşağıdaki satırda sudoers dosyasını açın.
john ALL=(ALL) NOPASSWD: /bin/systemctl restart NetworkManager
NetworkManager’ı herhangi bir hedef kullanıcı ve grup olarak yeniden başlatmak için aşağıdaki satırı sudoers dosyasına ekleyin.
john ALL=(ALL:ALL) NOPASSWD: /bin/systemctl restart NetworkManager
Bu satırı kullanıcıya özel sudoers dosyasına şu şekilde koyabilirsiniz;
visudo -f /etc/sudoers.d/john
john ALL=(ALL) NOPASSWD: /bin/systemctl restart NetworkManager
Ağ Yöneticisini sudo ile yeniden başlatmak için;
systemctl restart NetworkManager
Tüm sudo komutlarını tüm ana bilgisayarlarda herhangi bir kullanıcı, grup olarak parola sormadan çalıştırmak için sudoers dosyasına aşağıdaki satırı girin.
username ALL=(ALL:ALL) NOPASSWD:ALL
In this guide, you have learnt how to;
Yazının orijinalinin buradan okuyabilirsiniz.
Kariyerime 26 yıl önce başladım. Windows ve Linux sistemlerinin kurulumu, yapılandırılması, yönetimi ve bakımı dahil olmak üzere birden fazla sistem üzerinde uzmanlaştım.
Açık kaynak dünyasındaki en son gelişmelerden haberdar olmaktan ve Linux hakkındaki en son araçları, özellikleri ve hizmetleri denemekten hoşlanıyorum.
Son 6 yıldır sistem ve ağ yöneticisi olarak görev yapıyorum ayrıca Pardus Dönüşüm Projesini yönetiyorum ve Pardus İşletim Sisteminin yaygınlaşması adına uğraş gösteriyorum.
Boş zamanlarımda açık kaynaklı uygulamaların Türkçe çevirisine katılıyorum ve The Document Foundation üyesiyim.