লিনাক্স - "su -" ব্যবহার করুন তবে বর্তমান ডিরেক্টরিটি রাখুন


14

আমি যখন su -রুটে যেতে চাই, আমার বর্তমান ডিরেক্টরিটি রুটের বাড়িতে সেট করা আছে। আমি যে বর্তমান ডিরেক্টরিটি ছিলাম তা রাখার মতো কি আছে sudo -s? নাকি সুডো ব্যবহারের উত্তর?


5
দয়া করে মনে রাখবেন যে আমি অভদ্র শব্দটি শুনতে চাই না, তবে কেন এই সমস্যাটি "ম্যান সু" এর মাধ্যমে সমাধান করা হচ্ছে না?
Myrrdyn

1
@ ররি দয়া করে মেরিডিন মন্তব্য পড়ুন
c4f4t0r

আমি sudo su -c "zsh"আমার ক্ষেত্রে ব্যবহার করতে পছন্দ করি , আমাকে বর্তমান ডিয়ারে রাখে এবং রুট ব্যবহারকারীর সাথে শেল হিসাবে zsh লোড করি । ctrl+dপরে এবং আপনি বর্তমান ব্যবহারকারীর কাছে ফিরে পাবেন। ডিরেক্টরি জিনিসটির জন্য, সরাসরি আমার জন্য সেন্টোতে কাজ করে, তবে সম্ভবত পাস হওয়া কমান্ডের মধ্যে `&&d d (pwd) যুক্ত করা কৌশলটি করতে পারে।
গ্যাবলেউক্স

আপনি যা খুঁজছেন তা আপনি যখন জানেন তখন মিরর্ডিন ডকুমেন্টেশনগুলি দুর্দান্ত। আপনি যখন করবেন না, বিশেষজ্ঞদের কিছু পরামর্শ জিজ্ঞাসা করা দ্রুত এবং আরও প্রাসঙ্গিক।
রোমেন ভিনসেন্ট

উত্তর:


18

সম্ভব হলে sudo ব্যবহার করা আরও ভাল, কারণ তখন আপনাকে রুটের পাসওয়ার্ড জানতে (বা কাউকে দেওয়ার দরকার নেই)। রুট পাসওয়ার্ডটি দীর্ঘ এবং ভয়ঙ্কর কিছুতে সেট করুন এবং তারপরে এটিকে নিরাপদে লক করুন।

আপনি যদি পরে কারও অ্যাক্সেস অস্বীকার করতে চান তবে প্রত্যেককে একটি নতুন রুট পাসওয়ার্ড শেখানোর পরিবর্তে আপনি কেবল সুডোতে তাদের অ্যাক্সেস সরিয়ে ফেলুন।

তবে - আপনি না চাইলে আপনার '-' প্যারামিটার ব্যবহার করার দরকার নেই। আপনি রুট হিসাবে একটি শেল পাবেন, এটি কেবল লগইন শেল হবে না (সুতরাং এটি রুটের প্রোফাইলে চলবে না))


1
আমার ক্ষেত্রে আমার মতো কিছু করার জন্য ওরফে দরকার ছিল asuser git reset --hard। তবে su - <user> -m -c "git reset --hard"এবং sudo -u <user> git reset --hardআমার পরিবেশ সংরক্ষণ করবে এবং গিটটি বর্তমান ব্যবহারকারীর গিট কনফিগারেশনটি পড়ার চেষ্টা করবে । সুতরাং আমি কেবল এটিই বলতে চেয়েছিলাম যে কখনও কখনও ব্যবহারকারীর 205705 এর সমাধান su - <ব্যবহারকারীর -c "সিডি pwd; ব্যাশ" ব্যবহার করে আরও ভাল better
সাফল্য

16

আমি সম্মত হই যে সুডো প্রায় সবসময়ই উত্তম উত্তর তবে প্রশ্নের অন্য অংশটির উত্তর দেওয়া ...

'সু -' এ '-' ইঙ্গিত দেয় যে আপনি কেবল সুপারইউজার প্রাইভেলিজ দিয়ে চালানোর পরিবর্তে একটি সুপারজার লগইন অনুকরণ করতে চান।

আপনি যদি 'সু -' এর পরিবর্তে প্লেইন 'সু' ব্যবহার করেন তবে আপনি একই ডিরেক্টরিতে থাকবেন; তবে আপনি একই পরিবেশে দৌড়াদৌড়ি করছেন তাই কিছু অ্যাডমিন কমান্ড অ্যাক্সেস করার জন্য আপনার পথটি সংশোধন করতে হতে পারে।


9

আপনি যদি suএটি ব্যবহার না করে থাকেন তবে -এটি আপনাকে আপনার বর্তমান ডিরেক্টরিতে রাখা উচিত। -, -lবা --login su কে বলুন:

ব্যবহারকারীরা সরাসরি লগ ইন করলে ব্যবহারকারী কীভাবে প্রত্যাশা করে তার মতো পরিবেশ সরবরাহ করুন।

অথবা কেবল সুডো ব্যবহার করুন, এটি অন্যান্য অনেক সুবিধা পেয়েছে। বা ssh কী।


6

আপনার অবশ্যই সুডো ব্যবহার করা উচিত।

su -m
-m (-p): পরিবেশের ভেরিয়েবলগুলি পুনরায় সেট করবেন না (সাধারণত প্রস্তাবিত নয়)

আপনি যখন রুটে পরিবর্তন করবেন তখন সেটি আপনাকে ফোল্ডারে রাখবে।

সুডো ব্যবহারের সুবিধা


1
প্যাটিএইচ পরিবেশটি পুনরায় সেট না করা ছাড়া এটি সম্ভবত নিজের "স" এর থেকে কীভাবে আলাদা তা আমি দেখতে পাচ্ছি না, এটি একটি সম্ভাব্য সুরক্ষা সমস্যা।
ডেভিড প্যাশলে

উদাহরণস্বরূপ, ডেভিডপ্যাশলে .bashrcএটি বহিরাগত ব্যবহারকারীর কাছ থেকে বাস্তবায়ন করে , মূলটি নয়।
ফিল 294

4

আপনি যদি সত্যিই ব্যবহার করতে চান suতবে একই ডিরেক্টরিতে থাকার উপায় আছে।

su - <user> -c "cd `pwd`; bash"

এখানে কি হচ্ছে:

  • su - <user> = হিসাবে লগইন করুন
  • -c যার অর্থ "নতুন শেলতে একটি কমান্ড চালান"
  • -c "cd `pwd`" আমরা যে কমান্ডটি দিচ্ছি তা হ'ল বর্তমান ডিরেক্টরি ( pwd) -এ স্যুইচ করা - তবে আমরা ব্যাকটিক্স ব্যবহার করি বলে, pwdকমান্ডটি চালানোর আগে কমান্ডটি মূল্যায়ন করা হয় suযাতে আমরা প্রকৃতপক্ষে এখন যে ডিরেক্টরিটি পেয়েছি আমরা পুরানো ব্যবহারকারী হিসাবে স্যুইচ করি। এখানে কেবল সমস্যাটি হ'ল নতুন শেলটি কমান্ডটি চালানোর পরে ঠিক বাইরে চলে যায়, সুতরাং আমরা যুক্ত করব:
  • -c "cd `pwd`; bash" যার অর্থ হ'ল কমান্ড bashচালানোর পরে রান (নতুন শেল) cdএবং ব্যাশ শেলটি এটি থেকে লগ আউট না হওয়া পর্যন্ত প্রস্থান করে না।

1
এটি আসলে প্রশ্নের একমাত্র উত্তর। সাবাশ!
ক্যাকাহুয়েত ফ্রিটো

আসলে, su - [user] -c "cd $(pwd); bash"কিছুটা ভাল হতে পারে (এতে ব্যাকটিক্স পরিবর্তন করুন $())।
ক্যাকাহুয়েত ফ্রিটো

3

সুডো ব্যবহার করুন :)। সিরিয়াসলি, আপনার দরকার নেই। 'sudo' আরও ভাল কারণ আপনি এটি কেবল অধিকারযুক্ত আদেশের জন্য ব্যবহার করেন এবং ভুলগুলি এড়াতে সহায়তা করতে পারেন। আপনি জবাবদিহি পেতে।


2

আপনি যদি "su" ব্যবহার করেন এটি একটি ইন্টারেক্টিভ শেল করে। এটি "সুডো-এস" এর মতোই। "su -" একটি লগইন শেল তৈরি করে যা পরিবেশকে ওভাররাইড করে। "sudo -i" sudo এর সাথে সমতুল্য। আপনি যদি ইন্টারেক্টিভ শেলটি পেতে চেষ্টা করছেন, আপনার সর্বদা sudo -i (বা su -) ফর্মটি ব্যবহার করা উচিত, বা ব্যবহারকারীর হোম ডিরেক্টরিতে অদ্ভুত ফাইল অনুমতি দিয়ে শেষ হওয়া সম্ভব।


0

এই কাজটি করতে আপনার অবশ্যই su এর উত্স পরিবর্তন করতে হবে। এনভায়রনমেন্ট ভেরিয়েবলগুলি সূচনা করার পদ্ধতিতে একটি চিডির কল রয়েছে। এই বিবরণীতে সেই কলটি অন্তর্ভুক্ত ছিল comment এবং এখন, আপনি "su -" করতে পারেন তবে বর্তমান ডিরেক্টরিটি রেখে দিন।

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