এখানে সেলিনাক্স কেস সম্পর্কে একটি টিউটোরিয়াল পদ্ধতি রয়েছে:
SELinux সক্রিয় কিনা তা সন্ধান করুন:
$ sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: enforcing
Mode from config file: enforcing
Policy version: 24
Policy from config file: targeted
যদি তা হয় তবে কিছু তুলনামূলক চেক করতে সহায়তা করতে পারে। উদাহরণস্বরূপ, একটি সার্ভারের ডিফল্ট ডকুমেন্টরুট রয়েছে /var/www/html
তবে আমরা এটি অন্য কোথাও চাই /path/to/document/root
।
যদি SELinux সক্রিয়ভাবে উত্সটির সাথে জগাখিচুড়ি না ls -dZ
করে থাকে তবে ডিরেক্টরিতে এই জাতীয় কিছু দেখাবে:
$ ls -dZ /path/to/document/root
? /path/to/document/root/
অন্যদিকে, যদি সেলইনাক্স প্রসঙ্গে প্রয়োগ করা হয় তবে ls -dZ
আরও দেখতে দেখতে:
$ ls -dZ /path/to/document/root
drwxrws--x+ cfgadm cfgadmin system_u:object_r:file_t:s0 /path/to/document/root
যদি আমরা একটি কার্যকারী ডকুমেন্ট রুটের সাথে তুলনা করি তবে এটি দেখতে এমন কিছু দেখাচ্ছে:
$ ls -dZ /var/www/html
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html
_r
এবং _t
সঙ্গে সম্পর্কযুক্ত -r
( --role
এবং -t
( --type
) আর্গুমেন্ট chcon
এখানে একটি কাটা-ডাউন মানুষ পাতা।:
NAME
chcon - change file security context
SYNOPSIS
chcon [OPTION]... CONTEXT FILE...
chcon [OPTION]... [-u USER] [-r ROLE] [-l RANGE] [-t TYPE] FILE...
chcon [OPTION]... --reference=RFILE FILE...
DESCRIPTION
Change the security context of each FILE to CONTEXT. With --reference,
change the security context of each FILE to that of RFILE.
--reference=RFILE
use RFILE's security context rather than specifying a CONTEXT value
-R, --recursive
operate on files and directories recursively
প্রথম অনুমানের পরে, নিম্নলিখিতগুলি সম্ভবত কাজ করে বলে মনে হচ্ছে, তবে তা না পারে।
$ sudo chcon -R -t httpd_sys_content_t /path/to/document/root
যদি ওয়েব সার্ভারটি এখনও ডকুমেন্টরুটটি দেখতে না পারে, তবে মনে রাখবেন যে প্রসঙ্গটি পুরোপুরি রুটে ফিরে আসা সম্পর্কিত:
$ sudo chcon -R -t httpd_sys_content_t /path/to/document
$ sudo chcon -R -t httpd_sys_content_t /path/to
$ sudo chcon -R -t httpd_sys_content_t /path
এই মুহুর্তে, ওয়েব সার্ভার ডিরেক্টরিটি দেখতে পারে।
হ্যাঁ, আমি আজ রাতে খুব শক্তভাবে শিখেছি।
দ্রষ্টব্য: Chcon ব্যবহারের রেডহ্যাট ডকুমেন্টেশন ( 5.6.1। অস্থায়ী পরিবর্তনসমূহ: chcon ) প্রতি ধারণামূলকভাবে একটি নিম্নগতির রয়েছে:
The chcon command changes the SELinux context for files. However, changes
made with the chcon command do not survive a file system relabel, or the
execution of the restorecon command.
ব্যবহারের semanage 'র জন্য এবং restorecon আরো স্থায়ী পরিবর্তন করতে। সংক্ষিপ্ত উদাহরণ:
$ sudo semanage fcontext --add -t httpd_sys_content_t -s system_u \
"/path/to/document/root(/.*)?"
$ sudo restorecon -FR /path/to/document/root
শুভেচ্ছার সঙ্গে restorecon , নোট যে -F প্রয়োজন বোধ করা হয় পুরো প্রসঙ্গ (অর্থাত ব্যবহারকারী এবং টাইপ) প্রভাবিত করার। এছাড়াও, -আর অর্থ পুনরাবৃত্তভাবে পরিবর্তন করা। আর্গুমেন্টস -v বা -p উভয় পদক্ষেপ বা ক্ষুদ্র ফ্যাশনে অগ্রগতি প্রদর্শন করতে পারে। আসলে কোনও পরিবর্তন না করে কী হবে তা দেখতে -FRnv ব্যবহার করুন ।
একবার সেমেনেজটি এভাবে ব্যবহার করা গেলে , স্থানীয় সুরক্ষা পরিবর্তনগুলি যেমন একটি কমান্ডের সাহায্যে দেখা সম্ভব:
$ sudo semanage export
বিভিন্ন সিস্টেমে পরিবর্তনের সেট প্রয়োগ করা সহজ করার জন্য সেমেনেজ রফতানির আউটপুট সংরক্ষণ এবং আমদানি আমদানি দ্বারা ব্যবহৃত হতে পারে ।
দ্রষ্টব্য: এই উত্তরটি কোনও সাইটের জন্য সর্বাধিক প্রাথমিক ধরণের প্রসঙ্গ সরবরাহ করে। সুরক্ষা অনেক বেশি দানাদার হতে পারে। উদাহরণস্বরূপ, এমন একটি কমান্ড সহ ওয়েব সার্ভার পৃষ্ঠাগুলিতে প্রয়োগ করতে পারে এমন প্রকারের একটি তালিকা দেখুন:
$ seinfo -t | grep http
উল্লেখ্য: মত উপযোগিতা semanage 'র জন্য এবং seinfo ডিফল্টরূপে ইনস্টল করা যাবে না। কমপক্ষে কিছু বিতরণে প্রয়োজনীয় প্যাকেজগুলির নাম দেওয়া যেতে পারে:
policycoreutils-python
setools-console
DocumentRoot
যা ওয়েব সার্ভারটি যা দেখছে তাতে আপনাকে কিছুটা অন্তর্দৃষ্টি দিতে পারে। আপনি পথটি বরাবর অন্যান্য ডিরেক্টরিও পরীক্ষা করতে চাইতে পারেন, যদিও এটি যদি সত্যিই/var/www/
সেগুলির অধীনে থাকে তবে কোনও সমস্যা হওয়া উচিত নয়