در این آموزش ، شما می آموزید که چگونه فقط دستورات خاصی را با 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 NetworkManagersudo 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]