فرمانهای غیر فعال در پوستههای محدود
. اجرای یک اسکریپت یا بخشی از اسکریپت در وضعیت محدود، برخی فرمانها را که در حالتی غیر از این معتبر بودند، غیر فعال میکند. این یک تدبیر امنیتی به قصد محدود نمودن اختیارات اسکریپت کاربر و به حداقل رساندن آسیب احتمالی ناشی از اجرای اسکریپت است.
فرمانها و اعمال زیر غیر فعال میشوند:
کاربرد cd برای تغییر دایرکتوری کاری.
تغییر دادن مقادیر متغیرهای محیطی $PATH، $SHELL، $BASH_ENV، یا $ENV.
خواندن یا تغییر دادن $SHELLOPTS، یا گزینههای محیطی
تغییر مسیر خروجی.
احضار فرمانهای شامل یک یا چند کاراکتر /
فراخوانی exec جهت جایگزین کردن پردازش متفاوتی برای پوسته.
فرمانهای متنوع دیگری که شیطنت با اسکریپت یا اقدام به خرابکاری کردن اسکریپت برای یک منظور ناخواسته را فعال میکنند.
بیرون رفتن از وضعیت محدود شده در داخل اسکریپت.
مثال 22-1. اجرای یک اسکریپت در وضعیت محدود شده
#!/bin/bash #شروع اسکریپت با «#!/bin/bash -r» تمام #+اسکریپت را در وضعیت محدود اجرا میکند. echo echo "Changing directory." cd /usr/local echo "Now in `pwd`" echo "Coming back home." cd echo "Now in `pwd`" echo #تا اینجا همه چیز عادی، یعنی در وضعیت غیر محدود است. set -r #set --restricted نیز دارای همان اثر است. echo "==> Now in restricted mode. <==" echo echo echo "Attempting directory change in restricted mode." cd .. echo "Still in `pwd`" echo echo echo "\$SHELL = $SHELL" echo "Attempting to change shell in restricted mode." SHELL="/bin/ash" echo echo "\$SHELL= $SHELL" echo echo echo "Attempting to redirect output in restricted mode." ls -l /usr/bin > bin.files ls -l bin.files #امتحان جهت لیست کردن فایلی که برای ایجاد آن تلاش شده. echo exit 0