تحد الصدفة المقيدة ما يمكن أن يفعله حساب المستخدم على Linux. لا يمكن للمستخدم المقيد تغيير دليله وأنت تتحكم في الأوامر التي يمكنهم الوصول إليها. إليك كيفية إعداد غلاف مقيد على نظام Linux.
قذائف مقيدة
القشرة المقيدة ليست صدفة مختلفة. إنه وضع مختلف عن الغلاف القياسي . و باش ، كورن ، السمك، ومقذوفات أخرى يمكن أن تبدأ في وضع قذيفة المقيد. سنستخدم Bash في هذه المقالة ، لكن نفس المبادئ تنطبق على الأصداف الأخرى.
نظرًا لأن الأصداف المقيدة هي مجرد طريقة أخرى لاستخدام الصدفة القياسية ، فمن السهل تكوينها. لا يوجد شيء لتثبيته وهي متوفرة أينما كان نظام Linux.
يمكن أيضًا تطبيق القذائف المقيدة على البرامج النصية. يضمن ذلك أن أي ضرر يمكن أن يتسببوا به إذا أخطأوا في الإملاء يقتصر على حدود عالمهم المقيد وأنهم لا يستطيعون الوصول إلى جهاز الكمبيوتر الخاص بك بالكامل.
ومع ذلك ، ضع في اعتبارك أن المقذوفات المقيدة ليست مانعة للتسرب تمامًا. يمكن لأي شخص لديه معرفة كافية الهروب من قذيفة مقيدة. إنها رائعة لوضع حدود آمنة لمستخدم عرضي ، لكن لا تعتمد على الأصداف المقيدة للأمن الواقعي على نظام الإنتاج.
ضرب مقيد
عند تشغيل Bash كصدفة مقيدة ، فإن المستخدم قد تمت إزالته من بعض القدرات. على وجه التحديد ، لا يمكن للمستخدم :
- استخدمه
cd
لتغيير دليل العمل. - تغيير قيم
$PATH
،$SHELL
،$BASH_ENV
، أو$ENV
متغير البيئة (ولكن يمكنك قراءة القيم الحالية). - قراءة أو تغيير
$SHELLOPTS
خيارات بيئة قذيفة. - أعد توجيه إخراج الأمر.
- قم باستدعاء الأوامر التي تتطلب مسارًا لتحديد موقعها. أي أنه لا يمكنك إصدار أمر به شرطة أمامية واحدة أو أكثر ”
/
“. - استدعاء
exec
لاستبدال الصدفة بعملية مختلفة. - استخدم أيًا من الوظائف المقيدة في البرنامج النصي.
يمكنك استدعاء bash shell مقيد باستخدام -r
الخيار (المقيّد). محاولة أداء مهمة بسيطة مثل تغيير دليل العمل محظور. رسالة موجزة تخبرك بأنك cd
مقيد.
bash -r
documentos en cd
يمكن لقشرة bash أيضًا اكتشاف وقت استدعائها باستخدام “rbash” بدلاً من “bash”. يؤدي هذا أيضًا إلى بدء تشغيله كصدفة مقيدة. يوفر هذا طريقة ملائمة لتهيئة الصدفة الافتراضية لمستخدم معين ، والتي سنستخدمها قريبًا.
إذا استخدمنا whereis
الأمر في Ubuntu للعثور على rbash
الملفات ، فسنرى أن الملف القابل للتنفيذ موجود في دليل “usr / bin”. صفحة الدليل موجودة في الدليل “/ usr / share / man / man1”.
باستخدام ls
الأوامر مع -l
الخيار (الطويل) يكشف عن أن ذلك rbash
هو الواقع ارتباط رمزي ل bash
.
donde está rbash
ls -l / usr / bin / rbash
على Manjaro وفيدورا، و ارتباط رمزي rbash
كان لا بد من خلق . هذا يعمل على كلا التوزيعين:
donde está rbash
sudo ln -s / bin / bash / bin / rbash
donde está rbash
في المرة الثانية التي نستخدم فيها whereis
الأمر ، يكون rbash
في الدليل “/ usr / bin”.
تقييد المستخدم
لنقم بإنشاء حساب مستخدم جديد يسمى “Minnie”. سنقوم بتهيئة قشرتك لتكون الصدفة المقيدة باستخدام -s
خيار (shell) الأمر useradd
. سنقوم أيضًا بتعيين كلمة مرور الحساب باستخدام passwd
الأمر وإنشاء مجلد رئيسي لهم.
و -p
(الوالدين) العلم في mkdir
القيادة يقول لك لإنشاء الدليل الوجهة وأي الوالدين mkdir
الدلائل التي تحتاج إلى إنشاء أيضا. لذلك عند إنشاء الدليل “/ home / minnie / bin” ، نقوم بإنشاء الدليل “/ home / minnie” في نفس الوقت.
sudo useradd minnie -s / bin / rbash
sudo passwd minnie
sudo mkdir -p / start / minnie / bin
عندما تسجّل ميني الدخول ، ستعمل في صدفة مقيدة.
CD
لا يمكنك استدعاء الأوامر التي يجب أن تتضمن شرطة مائلة للأمام » /
«:
/ usr / bin / ping
ومع ذلك ، لا يزال بإمكانك تشغيل الأوامر الموجودة في المسار.
silbido
هذا ليس السلوك الذي قد تتوقعه ، وهو بالتأكيد ليس ما نريده. لمزيد من تشديد القيود ، نحتاج إلى تغيير المسار الذي ستستخدمه صدفة minnie للبحث عن الأوامر.
تشديد القيود
عندما أنشأنا دليل minnie الرئيسي “/ home / minnie” ، أنشأنا أيضًا دليلًا “/ home / minnie / bin”. هذا هو المكان الذي يلعب فيه هذا الدليل.
دعنا نعدل ملف minnie “.bash_profile” ونضبط مساره للإشارة إلى هذا الدليل فقط. سنقوم أيضًا بتقييد ملف minnie “.bash_profile” بحيث لا يتمكن سوى الجذر فقط من تحريره. هذا يعني أنه لا يمكن لأي مستخدم آخر تحرير هذا الملف وتغيير مساره.
sudo gedit /home/minnie/.bash_profile
قم بتحرير “المسار =” الموجود أو أضف السطر التالي:
RUTA = $ INICIO / contenedor
حفظ الملف. سنقوم بتغيير مالك الملف إلى الجذر باستخدام chown
الأمر وسنقوم بتغيير أذونات الملف باستخدام chmod
الأمر. سيتمكن المستخدم الجذر فقط من تحرير الملف.
sudo chown root: root /home/minnie/.bash_profile
sudo chmod 755 / home/minnie/.bash_profile
ls -l /home/minnie/.bash_profile
في المرة التالية التي يسجل فيها المستخدم ميني الدخول ، يشير مسارها إلى مجلد واحد.
لدينا ميني مقيدة يمكن للمستخدم أوامر باش فقط استخدام متكاملة مثل echo
، alias
و logout
. لا يمكن حتى استخدامها ls
!
ls
سيتعين علينا تخفيف قبضتنا قليلاً إذا أردنا أن يكونوا قادرين على فعل شيء مفيد. سننشئ بعض الروابط الرمزية من دليل “bin” لميني إلى الأوامر التي نريد أن يتمكن ميني من استخدامها.
sudo ln -s / bin / ls / home / minnie / bin
sudo ln -s / bin / top / home / minnie / bin
sudo ln -s / bin / uptime / home / minnie / bin
sudo ln -s / bin / pinky / home / minnie / bin
في المرة التالية التي تسجل فيها ميني الدخول ، ستجد أنها تستطيع استخدام أوامر Bash المضمنة بالإضافة إلى الأوامر التي تم ربطها بها.
ls
meñique dave
tiempo de actividad
تقييد المستخدمين الحاليين
قمنا بإنشاء ميني كمستخدم جديد. ل تغيير قذيفة من القائمة المستخدم ، يمكننا استخدام -s
الخيار (شل) من usermod
الأوامر.
sudo usermod -s / bin / rbash mary
يمكنك استخدام less
الأمر الموجود في الملف “/ etc / passwd” لمعرفة أي قذيفة تم تعيينها كصدفة افتراضية للمستخدم.
menos / etc / passwd
يمكننا أن نرى أن المستخدم mary سيستخدم الصدفة المقيدة في المرة التالية التي يقوم فيها بتسجيل الدخول.
تذكر تطبيق التغييرات الأخرى لتقييد $PATH
متغير البيئة وتعيين الأوامر التي تريد أن يتمكن المستخدم ماري من تنفيذها.
تقييد البرنامج النصي
يمكن للمستخدم العادي غير المقيد بدء البرامج النصية التي تعمل في غلاف مقيد. انسخ الأسطر التالية والصقها في محرر. احفظ الملف باسم “limited.sh” وأغلق المحرر.
#! / bin / bash # el script se inicia en el shell Bash normal echo "## ¡En modo no restringido! ##" eco echo "Directorio actual:` pwd` " echo "Cambio de directorio" cd / usr / compartir echo "Ahora en el directorio:` pwd` " echo "Cambiando al directorio de inicio" cd ~ echo "Ahora en el directorio:` pwd` " # Configuración del modo restringido set -r eco echo "## ¡En modo restringido! ##" eco echo "Directorio actual:` pwd` " echo "Cambiando directorio a / home /" cd / hogar echo "Todavía en el directorio:` pwd` " eco echo "Intentando iniciar otro shell" / bin / bash eco echo "Intentando redirigir la salida del comando" ls -l $ HOME> mis_archivos.txt cat my_files.txt eco salir 0
نحتاج إلى استخدام chmod
الأمر مع علامة +x
(تشغيل) لجعل البرنامج النصي قابلاً للتنفيذ.
chmod + x limitedo.sh
الجزء الأول من البرنامج النصي يعمل في غلاف عادي.
./restricted.sh
الجزء الثاني من البرنامج النصي ، الجزء الذي يلي سطر “set -r” ، يتم تنفيذه في غلاف مقيد.
لم تنجح أي من الإجراءات التي تمت محاولة تنفيذها في الجزء المقيد من البرنامج النصي.
يمكن إنشاء نص كامل ليتم تشغيله في غلاف مقيد عن طريق الإضافة -r
إلى السطر الأول:
! # / bin / bash -r
تذكر هوديني
المقذوفات المقيدة مفيدة ، لكنها ليست مضمونة تمامًا. يمكن للمستخدم الماهر بشكل كافٍ الهروب منها. ولكن عند استخدامها بحكمة ، فهي طريقة مفيدة لوضع مجموعة من القيود لحساب معين.