"Chmod -R 777 / usr / bin" এর পরে কীভাবে sudo ঠিক করবেন?


15

আমি প্রবেশ করেছি chmod -R 777 /usr/binএবং এখন সুডো কাজ করছে না।

এটা বলে sudo must be setuid root

অনলাইনে কিছু পরামর্শ দৌড়াতে বলেছে chown root:root /usr/bin/sudo chmod 4755 /usr/bin/sudo

প্রবেশ করার সময় chown root:root /usr/bin/sudoএটি একটি opened in readonly modeত্রুটি দেখায় ।


1
এই কমান্ডগুলি চালনার জন্য আপনাকে অবশ্যই রুট হতে হবে

মনোজ কুমার: কি আমার উত্তর পদ্ধতি (যা আপনাকে স্বীকার করেছে হিসাবে চিহ্নিত করে থাকেন) আপনার জন্য এই সমস্যার সমাধান? আমি নিশ্চিত হয়েছি যে, ড্যামিয়েন রোচে এবং অলি যেমন মন্তব্য করেছেন, কমান্ড সফলভাবে শেষ হওয়ার পরে এই পদ্ধতিটি আসলে কাজ করে না মত , কাজ করতে নির্ধারিত মূল হতে হবে। (কেন এটি পলকিট পরিষেবা ব্যবহার করে তবে আমি তা নিশ্চিত নই , তবে এটি করে।) তবে আমি মনে করি আমি অন্যান্য লোকদের বলতে শুনেছি এটি তাদের পক্ষে কাজ করেছে, যা কৌতূহল! Chmod কমান্ড শেষ হওয়ার আগে আপনি কি Ctrl + C টিপছেন? pkexecsudo chmod -R 777 /usr/binsudopkexec777
এলিয়াহ কাগন

হ্যালো. দুর্ঘটনাক্রমে সফলভাবে দৌড়ানোর sudo chmod -R 777 /usr/binপরে, তবে কেবল rootঅ্যাকাউন্টে লগইন করার পরে এই পদ্ধতিটি আসলে আমার পক্ষে কাজ করেছে ।
iHowell

উত্তর:


10

স্বীকৃত স্থিতি সত্ত্বেও, আমি এখন নিশ্চিত হয়েছি যে এই উত্তরটি ভুল । (আমি গ্রহণের বিষয়ে ওপি'র সাথে পরামর্শের পরে শীঘ্রই এটির উন্নতি করার আশাবাদী)) আমি মনে করি অন্যরা এটির কাজটি বলেছিল তা আমি স্মরণ করি, তবে আমি বিশ্বাস করি যে তাদের সমস্যাগুলি কমপক্ষে কিছুটা আলাদা ছিল। এখানে বর্ণিত পদ্ধতিটি এমন কিছু পরিস্থিতিতে মূল্যবান থেকে যায় যেখানে + বা অন্যথায় সম্পূর্ণ হয় না chmod -R 777 /usr/binবাধা দেয়। তবে একবার এটি হয়ে গেলে, এটিও নির্বিঘ্নযুক্ত এবং এটি এর চেয়ে ভাল কোনও কাজ করতে পারে না , কারণ ড্যামিয়েন রোচে এবং অলি যথাযথভাবে মন্তব্য করেছেন।CtrlCpkexecsudo

একটি উবুন্টু ডেস্কটপ সিস্টেমে, পলিসিকিট ইনস্টল করা থাকে, সুতরাং pkexecএকটি ভাঙ্গা sudoএক্সিকিউটেবল বা sudoersফাইল মেরামত করতে ব্যবহৃত হতে পারে । আপনাকে পুনরুদ্ধার মোডে বুট করার দরকার নেই এবং আপনাকে লাইভ সিডি থেকে বুট করার দরকার নেই। আপনাকে পুনরায় বুট করার দরকার নেই।

এই ক্ষেত্রে, নিম্নলিখিত কমান্ডগুলি চালান:

pkexec chown root:root /usr/bin/sudo
pkexec chmod 4755 /usr/bin/sudo

আরও তথ্যের জন্য এই প্রশ্নটি দেখুন ।


9
pkexec must be setuid root! কি একটা দুঃস্বপ্ন!
ড্যামিয়েন রোচে

1
ড্যামিয়েন উল্লেখ করেছেন যে, এই পদ্ধতির সাথে সমস্যাটি pkexecঠিক একই অবস্থা হিসাবে রয়েছে sudo। এটি সাধারণত নির্বিঘ্নে থাকে এবং বাস করে /usr/bin। আমি এটি পরীক্ষা করেছি এবং এটি পরে কাজ করে না chmod -R 777 /usr/bin
অলি

@DamienRoche, অলি: আমি এই ফিক্সিং না জন্য দুঃখিত পথ শুভস্য! তুমি দুজনেই ঠিক আছো আমি নিশ্চিত না যে কেন pkexecকাজ করার জন্য নির্ধারিত রুট করতে হবে (এটি অন্যান্য নন-সেটুইড প্রক্রিয়াগুলির মতো পোলকিট ডিমন দ্বারা কাজ করে না?), তবে এটির প্রয়োজন নেই। আমি এই প্রশ্নের মন্তব্যটি দেখেছি যে ওপি (যিনি এটি গ্রহণ করেছেন) এই উত্তর সম্পর্কে কোনটি, যদি সঠিক বা সহায়ক হয় সে সম্পর্কে আলোকপাত করতে পারে কিনা। এবং আমি এই পোস্টের শীর্ষে একটি অস্থায়ী ব্যানার যুক্ত করেছি যাতে আমি আর বিভ্রান্ত না হই। যদি এই উত্তরটি অব্যাহত থাকে তবে এর উন্নত ফর্মটি সম্ভবত সেই ব্যানারটিতে কিছু তথ্য অন্তর্ভুক্ত করবে।
এলিয়াহ কাগান

আপনি কেবল ব্যবহার করতে পারেন su, যা /
বিনের

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

4

এমনকি লাইভ সিডি / পেনড্রাইভ থেকে চলাকালীন আপনাকে অবশ্যই আপনার chmodকমান্ডটি প্রিফিক্স করতে হবে sudo। সুতরাং আপনার পদক্ষেপগুলি নিম্নলিখিতগুলির মতো হবে:

  1. লাইভ সিডি / পেনড্রাইভ থেকে বুট করুন
  2. আপনার ডিস্কটি ইতিমধ্যে স্বয়ংক্রিয়ভাবে সংযুক্ত ছিল (এবং কোথায়) তা পরীক্ষা করে দেখুন। যদি তা না হয় তবে এটি মাউন্ট করুন (নীচে দেখুন)
  3. sudo chmod 0755 <path>অনুমতিগুলি সামঞ্জস্য করতে ব্যবহার করুন

আপনার ডিস্কটি কোথায় স্থাপন করা হয়েছে তা কীভাবে নির্ধারণ করতে হবে: টার্মিনাল উইন্ডো থেকে চালান mount(যুক্তি ছাড়াই)। এটি সমস্ত মাউন্ট করা ডিভাইস তালিকাভুক্ত করবে। typeতালিকাভুক্তদের জন্য পরীক্ষা করুন - আপনি "রিয়েল ফাইল সিস্টেম" ব্যবহার না করে আপনি সমস্ত কিছু এড়িয়ে যেতে পারেন (আপনার ডিস্কটি সম্ভবত ext3 বা ext4 ব্যবহার করে - আপনি অবশ্যই প্রোক, সিএসএফ এবং এর মতো জিনিসগুলি এড়িয়ে যেতে পারেন)। যদি কোনও প্রতিশ্রুতিবদ্ধ মনে হয় (দেখতে দেখতে /dev/sda1 on /media/sda1 type ext3) তবে এর সামগ্রীগুলি ls /media/sda1এটি কিনা তা ব্যবহার করে তা পরীক্ষা করে দেখুন।

যদি মাউন্ট করা হবে তখন আপনি পরীক্ষা করতে পারবেন /devএন্ট্রি যেখানে ডিস্ক হতে পারে (ব্যবহার ls /dev/ |grep '/dev/sdউপলব্ধ ডিভাইস পরীক্ষা করার জন্য; আপনার ডিস্ক মত হওয়া উচিত /dev/sdaX, /dev/sdbXবা মত - এক্স একটি সংখ্যা হচ্ছে)। মাউন্ট করা ডিভাইসের তালিকার সাথে এটি তুলনা করুন। যদি এটি সেখানে না থাকে তবে এটিকে মাউন্ট করার চেষ্টা করুন এবং এর বিষয়বস্তুগুলি পরীক্ষা করুন (উপরে দেখানো হয়েছে)। এটি মাউন্ট করতে, প্রথমে একটি মাউন্টপয়েন্ট তৈরি করুন, উদাহরণস্বরূপ sudo mkdir /mnt/mydisk, তারপরে ডিভাইসটি মাউন্ট করার চেষ্টা করুন mount /dev/sda1 /mnt/mydiskএবং এর সামগ্রীগুলি ব্যবহার করে এটি পরীক্ষা করুন ls /mnt/mydisk

একবার আপনি সঠিক ডিস্ক সেখানে পেতে, আপনি অনুমতি আপনার usr ডিরেক্টরির Dir ফিরে পরিবর্তন করতে যেতে পারেন: sudo chmod 0755 /mnt/mydisk/usr

প্যারামিটারটি chmodব্যবহার করে আপনি যদি মূলত কমান্ডটিকে পুনরাবৃত্তভাবে চালিত করেন তবে আপনি এখনও সমস্যায় পড়তে পারেন -R। সেক্ষেত্রে আপনি হয় প্রতিটি ম্যানুয়ালি ম্যানুয়ালি ঠিক করার চেষ্টা করতে পারেন - বা আপনি সরাসরি একটি নতুন ইনস্টলের জন্য যেতে পারেন ...


আমি মাউন্ট পয়েন্ট তৈরি করার চেষ্টা করেছেন, কিন্তু আমি একটি ত্রুটি যা পড়া পেয়েছিলাম মাউন্ট পয়েন্ট mnt এবার / mydisk বিদ্যমান নয় mydisk কিছু জিনিস সঙ্গে এবং মাত্র রেকর্ড আমি লিখেছেন প্রতিস্থাপিত হতে হয় mount /dev/sda /mnt/mydiskথেকেroot@Ubuntu:/dev#
VIN

আপনি ক) মাউন্ট কমান্ড জারির আগে (মাউন্ট পয়েন্ট (ডিরেক্টরি) তৈরি করেছেন এবং খ) শীর্ষস্থানীয় স্ল্যাশের জন্যও যত্ন নিয়েছিলেন ? ব্যবহার করে দেখুন mkdir -p /mnt/mydisk && mount /dev/sda1 /mnt/mydisk(আমি মনে করি না তোমাদের কোন পার্টিশন আছে /dev/sda, তাই আপনি পাশাপাশি পার্টিশন সংখ্যা মিস করা আবশ্যক নিশ্চিত করুন যে আপনি সঠিক ডিভাইস উল্লেখ করুন (অথবা ব্যর্থ হবে
Izzy

1

আমি ম্যাটকে সঠিক বলে মনে করি, আপনাকে বিটটি / usr / bin এ যোগ করতে অবশ্যই মূল হতে হবে তবে অবশ্যই সুডো নষ্ট হয়েছে। আপনার যদি একটি রুট পাসওয়ার্ড থাকে তবে আপনি লগইনটিকে রুট হিসাবে ব্যবহার করতে পারেন এবং তারপরে উপরের কমান্ডের সাহায্যে অনুমতিগুলি ঠিক করতে পারেন। আপনি যদি না করেন তবে (এবং আমিও তা না করি) সম্ভবত এটি সবচেয়ে ভাল হবে:

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

রুট সর্বদা 0 নম্বরের ব্যবহারকারী তাই কোনও সিস্টেমের রুট অন্যান্য ফাইল সিস্টেমে রুট করার অনুমতি দিতে পারে।


1

আমার খুব বেশি জ্ঞান নেই। তবে এই পদক্ষেপগুলি আমার মেশিনটি পুনরায় চালু না করেও আমার সমস্যার সমাধান করেছে। এই পদক্ষেপগুলি অনুসরণ করুন:

su root
<enter root password>
cd /usr
chmod -R 755 *

1
আপনি কমপক্ষে একটি "সিডি" কমান্ড মিস করছেন। আপনি যদি এটির মতো করে থাকেন তবে মূলের জন্য হোম চিরতরে "chmod" করছেন। এটি পরিস্থিতি আরও খারাপ করে দেবে।
রিঞ্জউইন্ড

থ্যাक्स ... আমার উত্তর সম্পাদনা করেছে ... আমি /
ইউএসআর

2
এটি কেবল তখনই কাজ করে, যদি কোনও পাসওয়ার্ড সেট করা থাকে rootযা উবুন্টুর ডিফল্ট কনফিগারেশন নয়।
ডেভিড ফোস্টার

1

আমার স্থানীয় স্ক্রিপ্টগুলির জন্য অনুমতি নির্ধারণের প্রয়াসে, আমি ভুল করে সুডোর অনুমতিটি ভেঙে দিয়েছি এবং মালিকানা পরিবর্তন করেছি। আমি নিম্নলিখিতগুলি করে সুডোর মালিকানাটিকে রুটে পরিণত করতে সক্ষম হয়েছি:

পদক্ষেপ 1: উবুন্টু পুনরুদ্ধার মোডে স্যুইচ করুন । আপনি যদি প্রক্রিয়া সম্পর্কে অসচেতন হন তবে আপনি এখানে একটি উত্তর উল্লেখ করতে পারেন: /ubuntu//a/172346/223901

পদক্ষেপ 2: পুনরুদ্ধার মোডে একবার, রুট নির্বাচন করুন - শেল প্রম্পটে রুট করুন

পদক্ষেপ 3: নিম্নলিখিত কমান্ডগুলি করুন

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

আপনার সিস্টেমটি স্বাভাবিকভাবে বুট হওয়ার জন্য অপেক্ষা করুন এবং আপনি sudo এর মালিকানাটি রুটে ফিরে দেখতে পাবেন।

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