উবুন্টুতে কীভাবে ফিরে আসবেন সুডো?


12

আমি এটি করেছি:

sudo chown -R myname /usr/

এবং এখন আমি sudoএই ত্রুটির কারণে আদেশটি ব্যবহার করতে পারি না :

sudo: অবশ্যই নির্ধারিত মূল হতে হবে

এবং আমি যেমন পড়ছি এর অর্থ এই ফাইলটির মালিক /usr/bin/sudoমূল নয়। এটি এখন আমার ব্যবহারকারী কারণ /usrফোল্ডারে ছাঁটাই হয়েছে ।

অনেক ফোরাম এবং ব্লগে লোকেরা এটি রুট হিসাবে করার পরামর্শ দেয়:

# chown root:root /usr/bin/sudo
# chmod 4111 /usr/bin/sudo

... তবে এর সাথে সমস্যাটি হ'ল আমাকে মূল হিসাবে লগ ইন করতে হবে তবে আমি তা করতে পারছি না কারণ আমি suটার্মিনালে লিখলে পাসওয়ার্ডটি ভুল (আসলে আমি আমার ব্যবহারকারীর সাথে পাসওয়ার্ডটি ব্যবহার করেছি):

$ su
Password:
su: Authentication failure

তাহলে আমি কি sudoকমান্ড ফিরে পেতে পারি ?

সম্পাদনা: আমার উবুন্টু আমার ম্যাক ওএস এক্সের প্যারালেলেসের অধীনে is


"আমি আমার ব্যবহারকারীর সাথে পাসওয়ার্ডটি ব্যবহার করেছি" তার অর্থ কী? আপনি যখন ব্যবহার করবেন su, আপনাকে রুটের পাসওয়ার্ডের জন্য অনুরোধ করা হবে , আপনার ব্যবহারকারীর পাসওয়ার্ডের মতো নয় sudo। আপনি কি এই যন্ত্রটির মূল পাসওয়ার্ড জানেন?
কালেব

না, আমার কখনই এটি যুক্ত বা সংশোধন করার দরকার হয়নি, এর কোনও ডিফল্ট আছে কি?
আদম

আপনাকে একক ব্যবহারকারী মোডে রিবুট করতে হবে। আপনি কি বিতরণ চলছে?
গিলস 'অশুভ হওয়া বন্ধ করুন'

1
কেবল কৌতূহলী, তবে আপনি sudo chmod -R cirk:cirk /usrকী চালানোর সিদ্ধান্ত নিয়েছেন তা আপনি কী সম্পাদন করার চেষ্টা করছেন?
লুজক্যানন

1
একটি প্রোগ্রাম যা / ইউএস-এ কোথাও ইনস্টল করা হয়েছিল / যেহেতু আমি পুরো ইউএসআর ফোল্ডারে ক্লাউন ব্যবহার করার সিদ্ধান্ত নিয়েছি এবং যেহেতু আমি একটি নুব আমি আবার সব কিছু ছড়িয়ে দিয়েছি: পি
অ্যাডাম

উত্তর:


5

আপনার যদি অনুরূপ সিস্টেম থাকে যা আপনি ফাইলগুলির সমস্তগুলির জন্য সঠিক মালিকানা কী তা দেখার জন্য গাইড হিসাবে ব্যবহার করতে পারেন তবে আপনি উদ্ধার মোডে বুট করতে পারেন, একটি রুট শেলটিতে ফেলে দিতে পারেন এবং ম্যানুয়ালি সঠিকভাবে সমস্তটির মালিকানা পুনরুদ্ধার করতে পারেন ফাইলের মধ্যে /usr

দ্রুততম উপায় হ'ল আপনার ওএস পুনরায় ইনস্টল করা বা ব্যাকআপ থেকে পুনরুদ্ধার করা।

উবুন্টু বা অনুরূপ, তারপরে ডিফল্টরূপে কোনও রুট পাসওয়ার্ড নেই (অ্যাকাউন্টটি অক্ষম), যার কারণে আপনি পারবেন না su


8
ওহ, সেখানে এটি সহজভাবে গ্রহণ করুন, উইন্ডোজগুলি পুনরায় ইনস্টল করা সর্বদা সহজ কাজ বা কিছু দ্রুত করার উপায় নয় এবং সমস্যাগুলি কীভাবে সমাধান করা যায় তা অবশ্যই মানুষকে শেখায় না। এই ক্ষেত্রে তার যা করা দরকার তা হ'ল তিনি যে পদক্ষেপটি নিয়েছিলেন তা বিপরীত করা যা ফাইল সিস্টেমটিকে অন্য পরিবেশে লাইভসিডি বা আপনার প্রস্তাবিত রেসকিউ মোডের মতো (ডিস্ট্রো নির্ভরশীল) মাউন্ট করে খুব সহজেই করা যায়।
কালেব

@ কালেব আপনি যখন ফাইল সিস্টেমের একটি বড় অংশের অনুমতিগুলি সম্পূর্ণরূপে ট্র্যাশ করবেন তখন। তিনি কেবল সুডোকে স্ক্রু করেননি, সম্ভবত তিনি নিজের পোস্টে উল্লেখ করতে ভুলে গেছেন যে তিনি -আর ব্যবহার করেছেন (অন্যথায় এটি কেবল / ইউএসআর ডিরেক্টরিতে নিজেই বদলে যেত সুডো নয়)। আমি প্রক্রিয়াটি কীভাবে বিপরীত করব তাও বর্ণনা করেছি, তবে এটি একটি খুব সময় সাশ্রয়ী এবং শ্রমসাধ্য কাজ।
psusi

1
এটি একটি ক্ষেত্রে chownনা chmod। যেহেতু /usrফোল্ডারের সমস্ত কিছু হওয়া root:rootউচিত, এটি একটি সহজ ফিক্স হওয়া উচিত, কোনও chmodক্লোবারের অর্থ বোঝানো শ্রমশক্তি fix
কালেব

2
@ কালেব / ইউএসআর-তে থাকা সমস্ত কিছুই মূল: মূল নয়।
psusi

6
@ কালেব chownসেটেক্সিড বিট পুনরায় সেট করে। কয়েকটি ফাইল রয়েছে /usrযা মূলের মালিকানাধীন নয়; যা আলাদা গ্রুপে রয়েছে (বিশেষত সেটগিড প্রোগ্রামগুলি /usr/bin)।
গিলস 'অশুভ হওয়া বন্ধ করুন'

11

যেহেতু আপনি কেবলমাত্র একমাত্র যা আপনাকে মূল স্তরের অ্যাক্সেসের অনুমতি দেয় সেগুলির জন্য অনুমতিগুলি আটকে রেখেছেন, এটি ঠিক করার জন্য আপনার বর্তমান সফ্টওয়্যার পরিবেশের বাইরে থেকে কিছু সহায়তা প্রয়োজন।

আমি পরামর্শ দিচ্ছি যে সবচেয়ে সহজ উপায় হ'ল আপনার ডিস্ট্রোর জন্য একটি লাইভসিডি বুট করা, আপনার ড্রাইভ মাউন্ট করা এবং chmodসেখান থেকে তালিকাভুক্ত ফাইল ব্যবহার করে ফাইলের অনুমতিগুলি পরিবর্তন করা ।

রুট শেল পেতে আপনি একক-ব্যবহারকারী মোডে বুট করার চেষ্টা করতে পারেন।

সচেতন হন যে সাধারণত /usr/ডিরেক্টরিতে সমস্ত জিনিস মালিকানাধীন rootহওয়া উচিত যাতে আপনার chownযা কিছু ভেঙে গেছে তা ঠিক করার জন্য কেবল পুনরাবৃত্তি করতে সক্ষম হওয়া উচিত । ( সম্পাদনা: প্রতি @Gilles মন্তব্য দৃশ্যত চলমান chownবিরতি setuid এবং setgid বিট, যাতে আপনি হবে একবার আপনি মালিকানা আবার ঠিক ঐ সব পুনঃস্থাপন নিজে কোনো সিস্টেমের সাথে তুলনা করতে হবে।)

যাইহোক, খুব অল্প হওয়া উচিত 4111। অতিরিক্ত অতিরিক্ত এটি একটি বিশেষ অনুমতি তবে এটি ব্যবহারকারী হিসাবে চালানোর সময়ও এটি রুট হিসাবে কার্যকর করতে সক্ষম করে! কেবলমাত্র sudoএবং কয়েকটি সিলেক্ট এই অনুমতি বিট সেট থাকা উচিত। আপনার chmodসাথে শুরু করার জন্য যদি আপনি চালনা করেন না তবে সম্ভবত এটির কোনও ঠিক করার দরকার নেই , সমস্ত অনুমতি ইতিমধ্যে সঠিক হওয়া উচিত। chmodসমস্ত অনুমতি কী হবে তা না জেনে কোনও বড় অপারেশন চালাবেন না।


ওএস ভার্চুয়াল মেশিনে থাকলে কি এটি সম্ভব?
আদম

হ্যাঁ এতে কোনও পার্থক্য নেই। আপনি রানলেভেল 1 ব্যবহার করতে পারেন (গ্রুব / লিলো থেকে বুট প্রক্রিয়াটির শুরুতে আপনি যা করতে পারেন বা আপনার বুটলোডারটি যেভাবে পারবেন) আপনি বুট ডিভাইস হিসাবে লাইভসিডি-র কোনও আইএসও চিত্র ব্যবহার করতে ভিএম সেটআপ করতে পারেন।
কালেব

আহম, আমি এটি পুনরায় ইনস্টল করার আগে আমি আপনার পরামর্শটি চেষ্টা করব :)
অ্যাডাম

ঠিক আছে আমি মনে করি আমি লাইভসিডি তে আছি, এখন টার্মিনালে এটি লেখার দরকার আছে? sudo chown -R root /usr/?
আদম

ইয়া এটি দিয়ে শুরু করুন, তবে /usrলিভডিসিডি নয়, আপনার এটি অন্য কোথাও মাউন্ট করা এবং সেই পথের বিরুদ্ধে চালানো দরকার, বলুন /mnt/mydrive/usr। তারপরে আপনাকে সেটুইড বিটটি ঠিক করতে হবে /mnt/mydrive/usr/bin/sudo। তারপরে লাইভসিডি-তে / ইউএসের মাধ্যমে দেখুন এবং দেখুন যে রুট ব্যতীত অন্য কোনও মালিকানা রয়েছে কিনা। find /usr -not -uid 0এবং এটি মেলে পরিবর্তন। তারপরে এমন কিছুর সন্ধান করুন যার মধ্যে আলাদা সেটআপড বা সেটগিড বিট সেট রয়েছে এবং সেগুলিও মেলে কিনা তা নিশ্চিত করুন। আপনার সাথে যদি একটি বাস্তব উবুনুতু সিস্টেম থাকে তবে এটির সাথে তুলনা করা ভাল।
কালেব

4

উবুন্টু পুনরুদ্ধার মোডে, নিম্নলিখিত কমান্ডগুলি প্রবেশ করান .. এটি আমার জন্য প্রস্থান স্থির করে ..

mount -o remount,rw /
mount --all
chown root:root /usr/bin/sudo
chmod 4755 /usr/bin/sudo
restart

আশা করি এটি আপনার সমস্যার সমাধান করবে ((বা অন্য কারও)

আমি এটি এই ব্লগ পোস্টে এখানে পেয়েছি ।


2

এটি অন্যান্য উত্তরগুলির দ্বারা প্রস্তাবিত তুলনায় অনেক সহজ। লাইভ সিডি ফর্ম্যাট, রিবুট বা ব্যবহারের দরকার নেই।

su root # then enter your password to switch to root user
chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo
exit # to get back to the original user

এই সমস্যাটি সমাধানের এটি সহজতম উপায়। ব্যাখ্যা, সুডো দুর্নীতিগ্রস্থ হয়েছে (আমি জানি দূষিত হ'ল ভুল শব্দ, তবে এটি কাজ করছে না, সুতরাং আমাদের সুডো ব্যবহার এড়াতে হবে)

  • কমান্ড 1 (su রুট) ব্যবহার করে , আমরা sudo ব্যবহার না করেই ব্যবহারকারীকে রুটে পরিবর্তন করি।
  • কমান্ড 2 (শাঁথুন মূল: রুট / usr / বিন / sudo && chmod 4755 / usr / bin / sudo) ব্যবহার করে , আমরা সুডোর অনুমতি / মালিকানা ঠিক করি।
  • কমান্ড 3 (প্রস্থান) ব্যবহার করে আমরা আসল ব্যবহারকারীর কাছে ফিরে আসি।

আমি লিনাক্স পুদিনায় এই পদ্ধতিটি পরীক্ষা করেছি। যা সিস্টেমের মতো উবুন্টু। আমাকে জানতে দিন এই পদ্ধতিটি অন্য কোনও ওএসে কাজ করে না। সেই অনুযায়ী উত্তর আপডেট করবে।

ধন্যবাদ


যেমনটি আমি বুঝতে পেরেছি, ডিফল্টরূপে রুট অ্যাকাউন্টে পাসওয়ার্ড নেই, তাই প্রথম ধাপে পাসওয়ার্ড সরবরাহ করা অসম্ভব su rootএবং sudoকাজটি কার্যকর না হওয়ায় , রুট পাসওয়ার্ড সেট করা অসম্ভব
টাইটানফাইটার

1
ধন্যবাদ এটি আমাকে সাহায্য করেছে।
অরুণ

1

লোকেরা এটির তুলনায় এটি সহজ। নিম্নলিখিত চেষ্টা করুন:

  1. ভাঙা suকমান্ডটি ব্যবহার করে রুট হিসাবে লগ ইন করার পরিবর্তে আপনার বর্তমান ব্যবহারকারী হিসাবে লগ আউট করুন এবং আপনার সাধারণ প্রদর্শনী পরিচালক (যেমন লগইন স্ক্রিন) এর মাধ্যমে রুট হিসাবে আবার লগ ইন করুন।
  2. টার্মিনালে নিম্নলিখিতটি প্রয়োগ করুন: chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo

এটি sudoকমান্ডটি ঠিক করে এবং আপনাকে আপ করা এবং কোনও সময় ছাড়াই আবার চলতে হবে।


0

সু বা সুডো ছাড়াই মূল হিসাবে লগইন করতে আপনি পেকেক্সেক ব্যবহার করতে পারেন:

pkexec su

এখন ফাইলগুলির অনুমতি পরিবর্তন করুন:

chmod 440 /etc/sudoers
chmod 775 /etc/sudoers.d
chmod 440 /etc/sudoers.d/README
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.