Belge

Linux’ta Sudo ile Yalnızca Belirli Komutları Çalıştırın

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.