Bu, doğrudan soruyu yanıtlamıyor ancak doğru sorunun burada sorulduğunu sanmıyorum. Bana göre, asker belli izinleri varsa veya olmasa da muhtemelen farklı davranacak bir program istiyor, ancak sudo'yu kontrol etmenin böyle bir yol olmadığını iddia ediyorum. Öncelikle birçok sistem bir "sudo" uygulayamayabilir, Linux ya da birçok Unix için gerekli değildir.
Örneğin, bir kullanıcı önceden kök olarak giriş yapmış olabilir, sudo'yu sansürsüz hale getirebilir ya da belki de sistem, programın yapmak isteyebileceği idari görevi yerine getirme yeteneğine sahip olmayan kök kullanıcılara sahiptir. Sonunda, belki de sistemde kök veya sudo yoktur ve bunun yerine, farklı yeteneklere sahip zorunlu bir erişim kontrol sistemi kullanır ve sudo yapmak için tüm süper kullanıcıları yakalamaz. Ya da kullanıcı gizlice ayrılabilir, ancak güvenlik nedeniyle kendi hesabından daha az izni olan bir hesaba girebilir (Sık sık güvenilmeyen bir kodla, geçici olarak ayrıcalıklı olmayan bir kullanıcı ile yalnızca ramdisklere yazmak için yazabilirim, izinlerimi yükseltmeyebilirim. ). Genel olarak sudo ya da kökün varlığı gibi belirli bir izinler modelini varsaymak ya da sudo bir kullanıcının herhangi bir özel ayrıcalıklara sahip olduğunu varsaymak kötü bir fikirdir.
Bir işlemi gerçekleştirmek için izniniz olup olmadığını öğrenmek istiyorsanız, en iyi yol genellikle basitçe denemek ve yapmaktır. Ardından, başarısız olursa veya başarılı veya tamamen başarılı olması gereken çok aşamalı bir işlemse, izin sorunları olup olmadığını kontrol edin. Bir operasyonun POSIX erişim fonksiyonu gibi fonksiyonlarla çalışıp çalışmadığını kontrol edebilirsiniz (izinler aktif olarak değiştiriliyorsa burada olası yarış koşullarına dikkat edin)
Ek olarak, sudo'nun arkasındaki gerçek kullanıcıyı tanımanız gerekiyorsa, altta yatan bir uçbirim ile herhangi bir etkileşimli oturum için çalışması gereken getlogin işlevini kullanabilirsiniz ve örneğin, denetleme için komutu çalıştırmanın veya "kimin buldığını " bulmanızı sağlar. günlükleri kaydetmek için gerçek kullanıcının ana dizini.
Son olarak, gerçekte istediğiniz şey bir kullanıcının root erişimine sahip olup olmadığını bulmaksa (Yine de kötü bir fikir ama daha az uygulamaya özel) getuid'i 0 bir kullanıcı kimliği olup olmadığını kontrol etmek için kullanabilirsiniz .