"সুডো সিডি" কেন কাজ করবে না?


উত্তর:


56

cdএকটি শেল অন্তর্নির্মিত। sudoশুধুমাত্র এক্সিকিউটেবলের সাথে কাজ করে। আপনি করতে পারেন sudo sh -c 'cd dirname'তবে শেলটি প্রস্থান করার সাথে সাথেই আপনি যে ডিরেক্টরি থেকে শুরু করেছেন সেটিতে ফিরে আসবেন। আপনি যদি এটি বলার চেষ্টা করছেন যা আপনি অর্জন করার চেষ্টা করছেন তবে আমি আপনাকে এটির উপায় খুঁজে পেতে সহায়তা করতে পারি।


2
কিন্তু তাহলে sudo pwdকি কাজ করবে না? (আমি সর্বদা এটি কাজ sudo cd করে ফেলেছি , তবে আপনি কেবল sudoরিটার্নের পরে ফলাফলটি দেখছেন না But তবে এটি ছিল কেবল একটি বুনো অনুমান neither সম্ভবত ম্যাকের উপর বাশে কোনও অন্তর্নির্মিত cdনয় pwdRun রানিং which cd আসলে আমার ফলাফল দেয় না। চলমান Run sudo cd /আমাকে ত্রুটি দেয় না, তবে বাস্তবে পরিবর্তিত ওয়ার্কিং ডিরেক্টরিতে ফলাফল হয় না))
আরজান

2
@ আরজান: pwdএটি একটি বহিরাগত সম্পাদনযোগ্যও তাই এটি কার্যকর হবে। মনে রাখবেন যে কয়েকটি সিস্টেমে cdএক্সিকিউটেবল হয় তবে এটি বেশিরভাগই অকেজো। type -a cdএটি উপায়ের চেয়ে অনেক তথ্যপূর্ণ ব্যবহার করার চেষ্টা করুন which
ডেনিস উইলিয়ামসন

1
নিস! আমার ম্যাক এবং type -a cdউভয়ই দেখায় । এবং একইভাবে এবং জন্য । এবং উভয় এবং আমাকে একটি ফলাফল দিতে। তবে, কেবল ফলন দেয় এবং আমাকে দেখায় । সুতরাং, আমি অনুমান করি প্রশ্নটি: ওপি কি কোনও ত্রুটি বার্তা পায়, বা কোনও ত্রুটি ছাড়াই ওপি কাজটি দেখছে না ? : (অথবা কী OS ব্যবহার ওপি হয়।)cd is a shell builtincd is /usr/bin/cdpwdechosudo pwdsudo echo "Hello world"type -a returnreturn is a shell builtinsudo return 3sudo: return: command not foundcd
Arjan

sudo sh -c 'cd dirname'আমার জন্য কিছু করে না
পিটার নিদারউইজার

1
@ আরজান আমি ব্যাখ্যাটি পেয়েছি: এটি একটি গভীর সামঞ্জস্য হ্যাকের মতো কিছু। এটি এর কাজটি করে না, তবে এটি আসল প্রতিক্রিয়াগুলির মধ্যে cdএসেছে। এবং বর্তমান শেলের কোনও cdকমান্ড না থাকলে এটি ব্যর্থ হওয়ার পরিবর্তে কিছুই করতে পারে না । মানুষের দ্বারা যে কোনও শেল ব্যবহার করা যেতে পারে তার মধ্যে cdরয়েছে /bin/sh। তবে একটি প্রোগ্রাম যা অপারেটিং সিস্টেমের কার্নেল থেকে দেখা যায়, একটি শেল তার থেকে অনেক সহজ হতে পারে, এমনকি কোডের কয়েকটি লাইনও। দেখুন বাহ্যিক আদেশের বিন্দুটি কী cd?
ভলকার সিগেল

72

পরিবর্তে sudo -sএকটি রুট শেল শুরু করার চেষ্টা করুন এবং তারপরে কেবল cdডিরেক্টরিতে।
আপনি যখন রুট হিসাবে সম্পন্ন করবেন, টিপুন CtrlDবা টাইপ করুন exit


আরজান যেমন নীচে তার মন্তব্যে ইঙ্গিত করেছেন, এটি লক্ষ্য করা গুরুত্বপূর্ণ যে মূল হিসাবে, কোনও সহজেই প্রয়োজনীয় সিস্টেমের উপাদানগুলিকে ক্ষতি করতে পারে। যত্ন সহকারে ব্যবহার করুন!


4
তবে: সাবধান! একবার মূল হয়ে গেলে ...
আরজান

7

আপনি কেবল suরুট হয়ে যেতে পারেন এবং তারপরে cdআপনি যা চান তা সব ... আমি জানি একটি উত্তর ইতিমধ্যে গৃহীত হয়েছে, তবে যদি কোনও sudoers তালিকায় না থাকে তবে এটিই একমাত্র বিকল্প।


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