👥 نحوه مجاز کردن فقط دستورات خاص با sudo در Linux |

در این آموزش ، شما می آموزید که چگونه فقط دستورات خاصی را با sudo در Linux اجرا کنید.

آموزش قبلی ما نحوه افزودن کاربر به گروه sudo را نشان می دهد تا بتواند دستورات را با امتیازات بالاتر اجرا کند.

removing ضمیمه حذف و اعطای امتیازات سودو به کاربران Arch Linux

با این روش می توانید به کاربر اجازه دهید فقط دستورات خاصی را با sudo در سیستم شما اجرا کند.

این کار با اصلاح پرونده / etc / sudoers یا افزودن امکان پذیر است. یک پرونده پیکربندی sudoers سفارشی به فهرست /etc/sudoers.d.

به عنوان مثال ، برای اجازه دادن به کاربر به نام john برای راه اندازی مجدد مدیر شبکه به عنوان root در همه میزبان ها ، فایل sudoers را ویرایش کرده و خط نشان داده شده در زیر را اضافه کنید. ] visudo

برای ویرایش پرونده sudoers ، باید روت یا sudo باشید.

 sudo visudo 

سپس خط نشان داده شده در زیر را اضافه کنید:

 john ALL = (root) / bin / systemctl راه اندازی مجدد NetworkManager 

برای اجرای دستورات خاص با sudo به عنوان هر کاربر هدف ، به عنوان مثال اجازه می دهد تا کاربر جان فقط سرویس Apache را با sudo راه اندازی مجدد کند:

 john ALL = (ALL) / bin / systemctl apache2 را مجدداً راه اندازی کنید 

توجه داشته باشید که هنگام افزودن امتیازات سودو برای کاربر ایمن تر است که پیکربندی سودو کاربر را در دایرکتوری /etc/sudoers.d قرار دهد:

 echo "john ALL = (root) / bin / apache2 "> /etc/sudoers.d/john systemctl را مجدداً راه اندازی کنید تا به یک کاربر خاص اجازه دهید چندین دستور خاص را با sudo اجرا کند: 

 john ALL = (ALL)  / path / to / command1، / path / to / command2، / path / to / command3  

جایگزین / path / to / command با مسیر کامل و آرگومان ها (در صورت وجود)

می توانید مسیر کامل دستور را با استفاده از دستور which پیدا کنید .

به عنوان مثال ، برای یافتن مسیر کامل یک دستور ، command1:

 که دستور 1 

سپس می توانید این دستورات را با پیشوند دادن آنها با sudo اجرا کنید:

 sudo systemctl restart NetworkManager 
 sudo systemctl restart command1 

برای همه این دستورات ، از شما رمز عبور کاربری مورد نظر برای شما درخواست می شود این دستورات را اجرا کنید.

آیا می خواهید برخی از دستورات sudo را بدون درخواست رمز عبور اجرا کنید؟

نحوه اجرای دستورات sudo بدون رمز عبور

sudo پارامتری به نام NOPASSWD دارد که می تواند برای تعیین دستورات قابل اجرا استفاده شود به عنوان sudo بدون درخواست گذرواژه.

بعنوان مثال ، برای اجازه دادن به کاربری به نام john ، مدیر شبکه را در اوبونتو مجدداً راه اندازی کند بدون درخواست رمز ورود:

 john ALL = (ALL) NOPASSWD: / bin / systemctl راه اندازی مجدد NetworkManager 

برای راه اندازی مجدد NetworkManager از نام هر کاربر و گروه هدف ، اضافه کنید:

 john ALL = (ALL: ALL) NOPASSWD: / bin / systemctl راه اندازی مجدد NetworkManager 

می توانید به سادگی این خط را در پرونده sudoers کاربر این قرار دهید:

 echo "john ALL = (ALL) NOPASSWD: / bin / systemctl راه اندازی مجدد NetworkManager" >> /etc/sudoers.d/john 

برای راه اندازی مجدد مدیر شبکه با sudo ؛

 sudo systemctl راه اندازی مجدد NetworkManager 

برای اجرای همه دستورات sudo بدون درخواست رمز عبور از طرف هر کاربر ، گروه را در همه میزبان ها وارد کنید:

 نام کاربری ALL = (ALL: ALL) NOPASSWD: ALL [19659008]