على يونيكس، والعثور على إذا كان المستخدم الذي نفذ هذا البرنامج هو الجذر؟

StackOverflow https://stackoverflow.com/questions/641449

سؤال

وأنا أكتب نصي أشعل النار، وأود أن كشف (باستخدام روبي بدلا من باش إن أمكن) إذا كان المستخدم الذي تنفيذ البرنامج النصي أشعل النار لديه امتيازات الجذر.

وإذا لم يتم استئصال ثم أود أن إنهاء البرنامج النصي.

هل كانت مفيدة؟

المحلول

استخدم uid أو <وأ href = "HTTP: //www.ruby-doc.org/core/classes/Process.html#M003204 "يختلط =" noreferrer "> euid في في Process الطبقة :

raise 'Must run as root' unless Process.uid == 0

نصائح أخرى

وأنا لا أعرف روبي، ولكن ماذا تريد أن تحقق من هو إذا كان معرف المستخدم 0. في C، يمكنك أن تفعل ذلك عن طريق فحص <لأ href = "http://linux.die.net/man / 2 / getuid "يختلط =" نوفولو noreferrer "> getuid() . من سطر الأوامر يونكس، هل يمكن أيضا التحقق من إخراج id -u .

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top