ایجاد یوزر با دسترسی محدود در لینوکس
ممکن است گاهی اوقات نیاز باشد کاربری با دسترسی محدود در سرور تعریف شود که فقط دستورات محدودی را اجرا نماید. در این آموزش یک کاربر با نام limiteduser با دسترسی محدود ایجاد خواهیم کرد.
با کاربری root لاگین نمایید و دستورات زیر را اجرا نمایید.
ابتدا یک کپی از فایل bash به نام rbash ایجاد نمایید:
cp /bin/bash /bin/rbash
با دستور زیر کاربر limiteduser را ایجاد نمایید:
useradd -s /bin/rbash limiteduser
برای کاربر جدید پسورد ایجاد نمایید:
passwd limiteduser
پوشه خانه کاربر جدید را ایجاد نمایید:
mkdir /home/limiteduser
پوشه commands را ایجاد نمایید:
mkdir /home/limiteduser/commands
دسترسی به پوشه ها را تنظیم نمایید:
chown limiteduser:limiteduser /home/limiteduser/ -R
فایل bash_profile را باز نموده:
vim /home/limiteduser/.bash_profile
محتویات زیر را وارد نمایید:
# User specific environment and startup programs
PATH=$HOME/commands
export PATH
فایل را ذخیره نمایید. برای امنیت بیشتر و جلوگیری از تغییر فایل bash_profile توسط تمامی کاربران (حتی root) دستور زیر را اجرا نمایید:
chattr +i /home/limiteduser/.bash_profile
توجه: درصورت نیاز به تغییر فایل bash_profile، برای خارج نمودن از حالت read_only دستور زیر را وارد نمایید:
chattr -i /home/limiteduser/.bash_profile
با انجام کارهای بالا کاربر limiteduser فقط قادر به اجرای دستوراتی می باشد که در مسیر /home/limiteduser/commands قرار دارند. اگر هیچ دستوری در مسیر مربوطه قرار نداشته باشد، کاربر پس از ورود به سرور (از طریق ssh و یا console) قادر به اجرای هیچ دستوری نخواهد بود. مثال: فرض کنید میخواهیم دسترسی اجرای دستورات date , poweroff را به کاربر limiteduser فعال نمایید. دستورات زیر را اجرا نمایید:
ln -s /bin/date /home/limiteduser/commands/date
ln -s /sbin/poweroff /home/limiteduser/commands/poweroff
زین پس کاربر limiteduser تنها قادر به اجرای دستورات فوق میباشد. برای غیر فعال کردن دستورات نیز کافیست link ایجاد شده در مرحله قبل را حذف نمایید:
unlink /home/limiteduser/programs/poweroff
توجه:دستور poweroff از جمله دستوراتی میباشد که فقط root قادر به اجرای آن است. برای اجرای این دستور توسط کاربر limiteduser دستور زیر را اجرا نمایید:
visudo
توجه: درصورتیکه دستور visudo در سرور نصب نبود دستور زیر را به منظور نصب visudo اجرا نمایید:
apt-get install sudo
و خط زیر را به آن اضافه نمایید:
limiteduser ALL=NOPASSWD: /sbin/poweroff
همچنین میبایست دسترسی به دستور sudo را نیز برای کاربر ایجاد نمایید:
ln -s /usr/bin/sudo /home/limiteduser/commands/sudo
فایل را ذخیره نمایید. حال کاربر limiteduser میتواند دستور poweroff را با sudo اجرا نماید:
sudo poweroff
توجه: در صورتیکه میخواهید بیش از یک دستور را برای کاربر limiteduser فعال نمایید می بایست ابتدا لینک مورد نظر را ایجاد نموده و سپس دستور را (درصورت اضافه نمودن دستورات privileged) در visudo اضافه نمایید.
مثال:
ln -s /sbin/reboot /home/limiteduser/commands/reboot
visudo
limiteduser ALL=NOPASSWD: /sbin/poweroff,/sbin/reboot