برای کسانی که سودو را دوست ندارند و آن را پف کرده می دانند، چندین جایگزین سودو وجود دارد که می توانید به جای آن امتحان کنید.
sudo احتمالاً یکی از پرکاربردترین دستورات لینوکس است. این به شما اجازه می دهد تا امتیازات مدیریتی یا بالاتری را در یک ماشین لینوکس به دست آورید.
معمولاً برای اجرای اقداماتی مانند نصب نرمافزار، مدیریت سرویسها و حذف فایلهای حیاتی سیستم، به امتیازات بالاتری نیاز دارید. اما آیا میدانستید در لینوکس گزینههایی برای دستور sudo وجود دارد؟
چرا دستورات لینوکس را به عنوان کاربر دیگر اجرا کنیم؟
sudo دستور بسیار مهمی است زیرا به شما اجازه می دهد تا دستورات را با امتیازات superuser اجرا کنید. به طور پیش فرض، کاربران غیر روت معمولاً دسترسی محدودی به منابع و فایل ها در لینوکس دارند.
محدود کردن دسترسی به کاربران در لینوکس به دلایل زیر بسیار حیاتی است:
- کنترل: به مدیران یا صاحبان سیستم اجازه میدهد تا به فایلها و برنامههای خاصی دسترسی داشته باشند. این برای ثبات سیستم، حریم خصوصی و عملکرد کلی خوب است.
- امنیت: محدود کردن دسترسی به بخش های خاصی از سیستم از حذف یا تغییرات تصادفی سیستم جلوگیری می کند. و همچنین سطح حمله سیستم را کاهش می دهد.
sudo به خوبی کار می کند و بسیار بیشتر از آنچه اکثر مردم از آن استفاده می کنند انجام می دهد. متأسفانه، این باعث می شود که آن را بسیار نفخ کنید.
خوشبختانه، مانند بسیاری از موارد در لینوکس، چندین جایگزین عالی برای دستور sudo وجود دارد که در اینجا به برخی از آنها اشاره می کنیم.
1. pkexec
دستور pkexec (PolicyKit Executive) یک پیاده سازی front-end از چارچوب PolicyKit است که مجموعه ای از قوانین را برای اعطای امتیازات به کاربران و فرآیندها ارائه می دهد.
pkexec به شما اجازه می دهد تا بر اساس قوانین تعریف شده در یک خط مشی مشخص، دستوری را با امتیازات یک کاربر یا نقش متفاوت اجرا کنید.
ابزار pkexec قبلاً روی اوبونتو و سایر توزیعهای اصلی لینوکس نصب شده است. در صورتی که نصب نشده باشد، در اینجا نحوه نصب آن آمده است.
در سیستم های مبتنی بر دبیان، اجرا کنید:
sudo apt update && sudo apt install policykit-1
در RHEL و توزیعهای مشابه، اجرا کنید:
sudo dnf install policykit
در توزیعهای لینوکس مبتنی بر Arch، از دستور زیر استفاده کنید:
بسته سیاست sudo sudo pacman -S
نحوه استفاده از pkexec
برای استفاده از pkexec، ابتدا باید کلمه کلیدی pkexec را مشخص کنید و سپس دستوری را که میخواهید اجرا کنید و سپس هر آرگومان یا گزینهای که دستور نیاز دارد را مشخص کنید.
به عنوان مثال، برای نصب برنامه خنده دار لینوکس: cowsay بر روی سیستم خود با استفاده از امتیازات فوق کاربر، از موارد زیر استفاده کنید:
pkexec apt install cowsay
همچنین میتوانید با استفاده از گزینه –user و سپس نام کاربر یا نقش، یک کاربر یا نقشی را برای دریافت امتیازات مشخص کنید. به عنوان مثال، برای اجرای دستور قبلی با امتیازات کاربر admin، از دستور زیر استفاده کنید:
pkexec --user admin apt install cowsay
همچنین، باید رمز عبور کاربر یا نقشی را که در دستور مشخص کردهاید وارد کنید. اگر مجوزهای لازم را نداشته باشید، یک خطا دریافت خواهید کرد.
2. doas
دستور doas در سیستم عامل OpenBSD ریشه دارد. این به شما امکان می دهد یک فرمان را با امتیازات یک کاربر یا نقش مشخص اجرا کنید.
این بسیار شبیه دستور sudo است، اما مدرن، بسیار سبک و آسان برای پیکربندی است زیرا از عبارات مختصر و خواندنی استفاده می کند.
اگر اینطور نیست، در اینجا نحوه نصب doas در لینوکس آمده است.
پیکربندی doas در لینوکس
برخلاف دستورات sudo و pkexec، قبل از شروع استفاده از نمونهای از doas که به تازگی نصب شده است، باید آن را پیکربندی کنید. فایل پیکربندی در /etc/doas.conf قرار دارد. اگر فایل پیکربندی وجود ندارد، با استفاده از دستور لمسی یا هر برنامه دیگری که انتخاب میکنید، یکی ایجاد کنید.
برای اینکه به کاربر “mwizak” امتیازات سوپرکاربر روی سیستم خود بدهید، می توانید خط زیر را به فایل /etc/doas.conf اضافه کنید:
permit persist :mwizak as root
به یاد داشته باشید که کاربر “mwizak” را در دستور فوق با نام کاربری صحیح جایگزین کنید.
پس از ذخیره تغییرات پیکربندی، سعی کنید با استفاده از دستور زیر، cowsay را نصب کنید:
doas apt install cowsay
برای استفاده از یک کاربر دیگر، می توانید از پرچم -u و نام کاربری استفاده کنید. این شبیه به پرچم –user است که با دستور pkexec استفاده می شود.
به عنوان مثال، برای اجرای دستور قبلی به عنوان مدیر سیستم، باید موارد زیر را اجرا کنید:
doas -u admin apt install cowsay
3. سو
دستور su مخفف عبارت Switch user است. این به شما اجازه می دهد تا دستورات را به عنوان کاربرانی غیر از کاربر وارد شده فعلی اجرا کنید. معمولاً برای اجرای دستوراتی استفاده میشود که به حقوق ریشه نیاز دارند، اما میتوانید هر دستور دیگری را با استفاده از su اجرا کنید.
اجرای دستور su بدون هیچ آرگومان، کاربر root را فرض می کند، بنابراین برای ادامه باید رمز عبور کاربر root را بدانید. اگر بخواهید به کاربری به نام john سوئیچ کنید، به سادگی این دستور را اجرا می کنید:
su john
رمز عبور کاربر john را وارد کنید. برای بازگشت به کاربر اصلی، به سادگی دستور خروج را اجرا کنید.
توجه داشته باشید که اجرای دستورات بهعنوان کاربر اصلی معمولاً توصیه نمیشود، زیرا در هر دستوری که اجرا میکنید از شما رمز عبور خواسته نمیشود، که میتواند منجر به عواقب فاجعهباری مانند حذف تصادفی فایلها شود.
4. dzdo
dzdo یک ابزار خط فرمان است که برای اجرای دستورات با امتیازات یک کاربر دیگر مانند superuser یا root user استفاده می شود. این دستور مشابه دستور sudo است که معمولاً برای همین منظور استفاده می شود. دستور dzdo بیشتر در لینوکس اوراکل موجود است.
می توانید از پرچم -u برای مشخص کردن کاربری که می خواهید از امتیازاتش استفاده کنید استفاده کنید. به عنوان مثال، دستور زیر دستور آپدیت apt-get را با امتیازات superuser (root) اجرا می کند:
dzdo -u root apt-get update
سیستم از شما می خواهد که رمز عبور مناسب را وارد کنید تا تأیید شود که امتیازات لازم برای اجرای دستور را دارید.
از کنترلهای صحیح کاربر برای امنیت پیشرفته در لینوکس استفاده کنید
sudo یک دستور رایج در سیستم های لینوکس است که به کاربر اجازه می دهد دستوری را با امتیازات کاربر اصلی اجرا کند. بسته به نیاز خود، می توانید از هر جایگزین sudo در گردش کار خود استفاده کنید.
در لینوکس، اختصاص سطوح دسترسی مناسب به فایلها و پوشهها برای امنیت بهتر نیز مهم است.