یک مدیر حرفه‌ای لینوکس باید همواره بداند چه تعداد کاربر sudo و چه تعداد کاربر عادی در سیستم او وجود دارد. گاهی اوقات، به منظور نصب یک نرم افزار یا انجام برخی کارهای مدیریتی خاص باید به یک کاربر عادی بصورت موقت دسترسی sudo بدهید. اما، پس از آن ممکن است، فراموش کنید که امتیازات sudo را برای آن کاربران لغو نمایید. بنابراین، باید هر چند وقت یکبار، تعداد کاربران sudo را در سیستم لینوکس خود بدست آورده و دسترسی‌های فراموش شده یا ناخواسته را لغو کنید.

 

در این مقاله، نحوه نمایش تمام کاربران sudo در لینوکس شرح داده شده است.

 

این مطلب نیز ممکن است برای شما مفید باشد: افزودن، حذف و اعطای امتیازات sudo برای کاربران

 

بیایید ابتدا همه کاربران سیستم را لیست نماییم. برای انجام این کار، دستور زیر را اجرا کنید:

$ awk -F':' '{ print $1}' /etc/passwd

در این صورت خروجی دستور، بسته به کاربران سیستم شما، مشابه زیر خواهد بود:

root
daemon
bin
sys
sync
games
man
lp
mail
news
uucp
proxy
www-data
backup
list
irc
gnats
nobody
systemd-timesync
systemd-network
systemd-resolve
systemd-bus-proxy
syslog
_apt
lxd
messagebus
uuidd
dnsmasq
sshd
sk
senthil
kumar
ostechnix

روش دیگر برای لیست تمام کاربران سیستم، استفاده از دستور زیر است:

$ compgen -u

 

پس از آن می‌توانید، با استفاده از دستور زیر از بین تمام کاربران، تنها کاربران sudo موجود در سیستم خود را پیدا کنید.

$ grep '^sudo:.*$' /etc/group | cut -d: -f4
sk,ostechnix

همچنین، می‌توانید به جای دستور “grep”، از دستور “getent” نیز استفاده نمایید.

$ getent group sudo | cut -d: -f4
sk,ostechnix

همانطور که در خروجی بالا مشاهده می‌کنید، “sk” و “ostechnix” کاربران sudo موجود در سیستم هستند.

 

در مثال‌های بالا، تمام کاربران sudo نمایش داده شده‌اند. ممکن است به جای دانستن تمام کاربران sudo، بخواهید بدانید که آیا یک کاربر خاص دارای امتیازات sudo است یا خیر.

برای انجام این کار کافیست دستور زیر را اجرا کنید:

$ sudo -l -U sk

در این صورت خروجی مشابه زیر خواهد بود:

Matching Defaults entries for sk on ubuntuserver:
 env_reset, mail_badpass,
 secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User sk may run the following commands on ubuntuserver:
 (ALL : ALL) ALL

همانطور که در خروجی مشاهده می‌نمایید، کاربر “sk”، مجوز اجرای تمام دستورات را دارد. بنابراین، این کاربر در گروه sudo است.

 

بیایید کاربر دیگری را بررسی کنیم.

$ sudo -l -U senthil

خروجی اجرای دستور بالا، برای این کاربر به صورت زیر می‌باشد:

User senthil is not allowed to run sudo on ubuntuserver.

همانطور که مشاهده می‌نمایید، کاربر “senthil” مجاز به اجرای دستور sudo نیست؛ بنابراین، او تنها یک کاربر عادی است.

 

علاوه‌براین، با اجرای دستور زیر نیز می‌توانید، بفهمید که آیا کاربر مورد نظرتان به sudo دسترسی دارد، یا خیر:

$ sudo -nv

چنانچه پس از اجرای دستور، چیزی به عنوان خروجی دریافت نکنید، کاربر به sudo دسترسی دارد. و اگر خروجی مشابه زیر را مشاهده نمایید، کاربر به sudo دسترسی ندارد.

$ sudo -nv
Sorry, user senthil may not run sudo on ubuntuserver.

 

 

منبع:

ostechnix