Ini tidak menjawab pertanyaan secara langsung tetapi saya tidak berpikir pertanyaan yang tepat diajukan di sini. Sepertinya saya penanya menginginkan program yang akan bertindak berbeda mungkin jika memiliki izin tertentu atau tidak, namun saya berpendapat bahwa memeriksa sudo bukanlah cara untuk melakukan itu. Pertama banyak sistem mungkin tidak mengimplementasikan "sudo", itu sama sekali tidak diperlukan di Linux atau banyak Unix.
Misalnya seorang pengguna mungkin sudah login sebagai root, membuat sudo tidak masuk akal atau mungkin sistem memiliki pengguna non root yang masih memiliki kemampuan untuk melakukan tugas administratif yang mungkin ingin dilakukan oleh program. Akhirnya mungkin sistem tidak memiliki root atau sudo sama sekali dan sebagai gantinya menggunakan sistem kontrol akses wajib dengan kemampuan yang berbeda dan tidak menangkap semua pengguna super untuk sudo ke. Atau pengguna bisa saja sudoed, tetapi ke dalam akun yang memiliki -kurang-izin daripada akun mereka sendiri karena alasan keamanan (saya sering menjalankan kode yang tidak terpercaya dengan pengguna sementara yang tidak dapat diandalkan yang hanya dapat menulis ke ramdis untuk turun, tidak menaikkan izin saya ). Secara keseluruhan adalah ide yang buruk untuk mengasumsikan model izin khusus seperti sudo atau keberadaan root atau menganggap pengguna sudo memiliki hak istimewa tertentu.
Jika Anda ingin mengetahui apakah Anda memiliki izin untuk melakukan operasi, cara terbaik biasanya adalah dengan hanya mencoba dan melakukannya kemudian periksa errno untuk masalah izin jika gagal atau jika ini adalah operasi multi-tahap yang harus gagal atau berhasil. Anda dapat memeriksa apakah suatu operasi akan berfungsi dengan fungsi-fungsi seperti akses POSIX fungsi (waspadai kemungkinan kondisi balapan di sini jika izin diubah secara aktif)
Jika selain itu Anda perlu tahu pengguna sebenarnya di balik sudo Anda dapat menggunakan getlogin fungsi yang harus bekerja untuk setiap sesi interaktif dengan terminal yang mendasarinya dan akan memungkinkan Anda misalnya untuk menemukan siapa yang 'benar-benar' menjalankan perintah untuk mengaudit atau menemukan direktori home dari pengguna nyata untuk menyimpan log.
Akhirnya jika yang Anda inginkan adalah untuk mengetahui apakah pengguna memiliki akses root (Masih ide yang buruk tetapi kurang spesifik implementasi) Anda dapat menggunakan getuid untuk memeriksa uid dari 0 dan dengan demikian root.