সেলিনাক্স রুট পাসওয়ার্ড পুনরায় সেট করুন


12

দাবি অস্বীকার: SELinux সক্রিয় থাকাকালীন এই প্রশ্নটি রুট পাসওয়ার্ড পরিবর্তন করার সমস্যাটি সমাধান করার নয় কারণ ইতিমধ্যে এটি সমাধান করার জন্য অনেক গাইড রয়েছে। এটি সেলইনাক্স অভ্যন্তরীণভাবে কী করে তা আরও।

আমি সেলইনাক্সের সাম্প্রতিক ব্যবহারকারী কিন্তু ইদানীং আমি এর সাথে আরও যোগাযোগ করেছি। এমন একটি মুহুর্ত ছিল যখন কেউ আমাকে জিজ্ঞাসা করেছিল যে আমি কীভাবে এটির পাসওয়ার্ড ভুলে যাওয়ার ক্ষেত্রে পুনরায় সেট করতে পারি।

সুতরাং আমি আমার সেন্টোস বুট করেছিলাম, গ্রাব এন্ট্রি সম্পাদিত এরকম কিছুতে

linux16 <kernel_location> root=/dev/mapper/centos-root rw init=/bin/bash

আমি দৌড়ে এসেছি passwdএবং তারপরে দৌড়ে এসে syncরিবুট করতে বাধ্য হয়েছি । পুনরায় বুট করার পরে, নতুন পাসওয়ার্ড দিয়ে লগ ইন করার পাশাপাশি পুরানো অবশ্যই পাঠানো হয়নি।

পুনরায় বুট করা হয়েছে এবং SELinux ( selinux=0) অক্ষম করার জন্য কার্নেলটি প্যারামিটারটি দিয়ে গেছে । নতুন পাসওয়ার্ড দিয়ে লগ ইন করার চেষ্টা করেছে এবং এটি কার্যকর হয়েছে। এরপরে আমি একটি fs অটো রিলেবল (ফাইলের মাধ্যমে .autorelabel) এবং SELinux সক্রিয় সাথে জোর করে লগ ইন করা সম্ভব হয়েছিল in

আমার প্রশ্ন: কেন ঘটে? যখন কেবল ব্যবহারকারীর বা বস্তুর নয় কেবল পাসওয়ার্ডের পরিবর্তন ছিল তখন কেন রিবেলিং লগ ইনকে প্রভাবিত করে?

আপনার মনোযোগের জন্য আপনাকে ধন্যবাদ।

টিএল; ডিআর: সাধারণ রুট পাসওয়ার্ড পুনরায় সেট করা SELinux এ কাজ করে না। কেন?

সম্পাদনা: হাইভিভাইজার হিসাবে কেভিএম দিয়ে সেন্টোস 7 চালিত ভার্চুয়াল মেশিনে এটি পরীক্ষা করা হয়েছিল।


1
আপনি কি নিশ্চিত যে এটি কাজ করে না? আপনি কি আমার সাথে কি করতে চান. এটি সম্ভবত ভাল কাজ করবে। আমার সন্দেহ হয় যে কিছু ফাইলগুলিতে আপনার কেবল ভুল ফাইলের প্রসঙ্গ ছিল, যার ফলে সমস্ত লগইন ব্যর্থ হয়েছিল। সুতরাং অটোরেলবেলই সমস্যাটি সত্যই স্থির করেছিল।
মাইকেল হ্যাম্পটন

@ মিশেলহ্যাম্পটন আমি কেবল আমার সমস্ত পদক্ষেপ এটি পুনরায় করে ফেলেছিলাম এবং সেলইনাক্স সক্রিয় হয়ে আবার লগ ইন করতে পারি নি। এটি নিষ্ক্রিয় করার পরে আমি কোনও সমস্যা ছাড়াই লগ ইন করতে পারি। আমি ভুল হলে আমাকে সংশোধন করছি তবে একটি পাসওয়ার্ড পরিবর্তন করা ঠিক কি ফাইলের প্রসঙ্গে পরিবর্তন করা উচিত নয়?
জোর্হে হেলেনো

1
না এটা করা উচিত নয়। দেখে মনে হচ্ছে আপনি অদ্ভুত এবং অপ্রত্যাশিত কিছু আবিষ্কার করেছেন।
মাইকেল হ্যাম্পটন 14

উত্তর:


17

আমি একটি নতুন ইনস্টল করা CentOS 7.5 সিস্টেমে এই সমস্যাটির সদৃশ করতে সক্ষম হয়েছি।

এখানে কি ঘটছে তা হয়:

আপনি যখন বুট করবেন init=/bin/bashতখন দুটি সমস্যা দেখা দিতে পারে:

  • মূল ফাইল সিস্টেমটি কেবল পঠনযোগ্যভাবে মাউন্ট করা যেতে পারে। এই ক্ষেত্রে passwdএকটি অভিযোগ করবে Authentication token manipulation error

    এটি বেশ সুস্পষ্ট: ফাইল-সিস্টেম যদি পঠন-লিখনকে মাউন্ট না করে তবে এটিতে লেখা সম্ভব নয় not

  • SELinux নীতিটি লোড করা যাবে না। এই ক্ষেত্রে passwdপাসওয়ার্ডটি সফলভাবে পরিবর্তন করবে, তবে উপরের মূল প্রশ্নে আপনার বর্ণিত সমস্যা হবে: কেউ লগ ইন করতে সক্ষম হবে না।

    পাসওয়ার্ড হ্যাশ সংরক্ষিত হয় /etc/shadowফাইল। এই ফাইলটিতে সাধারণত সেলইনক্স প্রকার থাকে shadow_t। যাইহোক, কোনও সেলইনক্স নীতি লোড না হওয়া অবস্থায় ফাইলটি পরিবর্তন করা হ'ল SELinux প্রকারটি ফাইল থেকে সরিয়ে ফেলা হয় এবং এটিকে রেখে দেয় unlabeled_t। সুতরাং, যে পরিষেবাগুলি লগইনগুলি প্রমাণীকরণের জন্য ফাইলটি পড়ার চেষ্টা করে সেগুলি আর এটি পড়তে সক্ষম হয় না।

RHEL / CentOS 7 এ মূল পাসওয়ার্ড পরিবর্তন করতে আপনাকে এই প্রক্রিয়াটি অনুসরণ করতে হবে:

  1. init=/bin/bashগ্রাবের মধ্যে কার্নেল কমান্ড লাইনের শেষে যুক্ত করুন , যেমনটি আপনি আগে করেছিলেন।
  2. বাশ প্রম্পটে, এর সাথে সেলইনক্স নীতিটি লোড করুন /usr/sbin/load_policy -i
  3. এর সাথে মূল ফাইল সিস্টেম রিড-রাইটিং মাউন্ট করুন mount -o remount,rw /
  4. এখন পাসওয়ার্ড পরিবর্তন করুন, এবং এটি সফল হবে। passwd root
  5. পরিবর্তনগুলি সম্পাদন করতে ফাইল সিস্টেমটি কেবল পঠনযোগ্য পুনরায় গণনা করুন এবং এর সাথে পরবর্তী বুটে একটি ক্লিন ফাইল সিস্টেম রাখুন mount -o remount,ro /
  6. শেল থেকে প্রস্থান করুন বা দিয়ে সিস্টেমটি পুনরায় আরম্ভ করুন exec /sbin/init 6

এখন আপনি পরিবর্তিত রুট পাসওয়ার্ড দিয়ে লগ ইন করতে পারেন।

একজন এই পদ্ধতি আর ব্যাখ্যা রেড হ্যাট (সাবস্ক্রিপশন আবশ্যক) থেকে পাওয়া যায়।


সমস্যাটি সেই নীতিগুলিতে ছিল যা লোড হয়নি। কেন তারা বোঝা পাবে না? SELinux কার্নেল স্তরে কাজ করা উচিত যাতে init সিস্টেমের প্রয়োজন হয় না।
জর্হে হেলেনো

4
@ জর্জেহেলেনো সেলিনাক্স যখন কার্নেলটি শুরু হয় তখন ডিফল্টরূপে প্রকৃতই চালু বা বন্ধ থাকে, তবে কোন নীতিমালা বোঝানো হয় তা সিদ্ধান্ত নেওয়ার জন্য ইউজারল্যান্ড দায়বদ্ধ। কার্নেল এটি সিদ্ধান্ত নিতে পারে নি, কারণ কিছু ইনস্টলেশন পৃথক নীতিগুলি (যেমন লক্ষ্যযুক্ত, কঠোর, এমএলএস) চাইবে। এটি বুট প্রক্রিয়ার প্রথম দিকে ঘটে তবে আপনি যখন চালাবেন তখন আপনি বাইপাস করুন init=/bin/bash
মাইকেল হ্যাম্পটন 15

1
যদি কোনও নীতি লোড না করা হয় তবে passwd"সফল হতে দেখা যায় " কেন ?
অ্যান্ড্রু সাভিনিখ

এবং যদি এটি সফল না হয় তবে কেন পুরানো পাসওয়ার্ড দিয়ে লগ ইন করা ব্যর্থ হয়েছিল?
অরবিটে লাইটনেস রেস s

2
@ জর্জে হেলেন: আপনার ব্যাখ্যাটি প্রায় সম্পূর্ণ। বিন্দু পরিবর্তন ফাইল হয় passwdযথা /etc/passwdএবং /etc/shadow। যদি passwdলোড হওয়া নীতি ব্যতীত চলতে থাকে তবে এটি যথাযথ সেলিনাক্স প্রসঙ্গে চলে না এবং পরিবর্তিত ফাইলগুলি অন্য সেলিনাক্স প্রসঙ্গে শেষ হয়। সেলিনাক্স সক্ষম করার সাথে বুট করার সময় এবং নীতিগুলি সক্রিয় পাসওয়ার্ড চেক অনুপযুক্ত ফাইলের প্রসঙ্গের কারণে ব্যর্থ হয়, wrong passwordত্রুটির কারণে নয় । /.autorelabelলোড নীতি ছাড়াই পাসওয়ার্ড পরিবর্তন করার সময় সেলিনাক্সকে স্পর্শ করে ফাইলকন্টেক্সটগুলিকে রিলেলেবল করতে বাধ্য করা সেই সমস্যাটিও ঠিক করতে পারে।
হারগুট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.