الرئيسيةأنظمة التشغيلlinuxكيفية استخدام shell المقيّد لتقييد ما يمكن لمستخدم Linux القيام به
linux

كيفية استخدام shell المقيّد لتقييد ما يمكن لمستخدم Linux القيام به

تحد الصدفة المقيدة ما يمكن أن يفعله حساب المستخدم على 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”. يؤدي هذا أيضًا إلى بدء تشغيله كصدفة مقيدة. يوفر هذا طريقة ملائمة لتهيئة الصدفة الافتراضية لمستخدم معين ، والتي سنستخدمها قريبًا.

اقرأ أيضاً :  كيفية إزالة برنامج بالكامل داخل Linux؟ - إكمال إلغاء التثبيت

إذا استخدمنا 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”. هذا هو المكان الذي يلعب فيه هذا الدليل.

اقرأ أيضاً :  قم ببناء جهاز الكمبيوتر الخاص بك للألعاب باستخدام Batocera Linux

دعنا نعدل ملف 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 سيستخدم الصدفة المقيدة في المرة التالية التي يقوم فيها بتسجيل الدخول.

اقرأ أيضاً :  كيفية إلغاء تثبيت تطبيق Java من جهاز كمبيوتر Linux وحذف ملفاته - افعل ذلك على هذا النحو

تذكر تطبيق التغييرات الأخرى لتقييد $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

تذكر هوديني

المقذوفات المقيدة مفيدة ، لكنها ليست مضمونة تمامًا. يمكن للمستخدم الماهر بشكل كافٍ الهروب منها. ولكن عند استخدامها بحكمة ، فهي طريقة مفيدة لوضع مجموعة من القيود لحساب معين.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

error: عفوا محتوي هذا الموقع محمي بموجب قانون الألفية للملكية الرقمية !!