"Su" কমান্ডে থাকা ব্যবহারকারীদের শেলটি উপেক্ষা করা সম্ভব?


9

যদি আমি করি

su - -c 'mkdir bin' user1

তাহলে আমি পাই

su: /usr/bin/ksh: No such file or directory

কারণ ব্যবহারকারীদের শেলটি এতে সেট করা kshআছে /etc/passwdএবং kshইনস্টল করা নেই।

প্রশ্ন

এই ক্ষেত্রে আমি কীভাবে ব্যবহারকারীরূপে আদেশগুলি বহন করব?


ব্যবহারকারীর শেল এমন কিছুতে কেন সেট করা আছে যা বিদ্যমান নেই?
MDMarra

1
/etc/passwdএনআইএস থেকে আসে।
সান্দ্রা

1
ওয়েল যে ব্যাখ্যা করে।
MDMarra

উত্তর:


18

যদি আপনি -পরে না রাখেন suতবে এটি ব্যবহারকারীর পরিবেশটি লোড করবে না, তবে কমান্ডগুলি এখনও সেই ব্যবহারকারী হিসাবে চালানো হবে।


দেখা যাচ্ছে যে আমি আপনার আসল সমস্যাটি ভুল বুঝেছি। অন্যরা -sযেমন বলেছে আপনি সম্ভবত এটি করতে চান সেই বিকল্প।


এটি এখনও / ইত্যাদি / পাসডাব্লুডিতে থাকা শেলটি ব্যবহার করার চেষ্টা করবে, যা মনে হয় এটি আরও বড় সমস্যা।
ফ্রেইহাইট

শেলটি তার নিজস্ব পরিচয়টি environment শেল পরিবেশের পরিবর্তনশীলের মধ্যে রাখে, তবে / ইত্যাদি / পাসডাব্লুডি যেখানে স্যু খুঁজছে কোন শেলটি চালানো হবে। `- the" লগইন "শেল হিসাবে কাজ করতে বলার জন্য শেল আবেদনে প্রেরণ করা হয় (বাশ একটি বাশার্ক ফাইলের পরিবর্তে একটি প্রোফাইল ফাইল চালায়, কার্য পরিচালন ডিরেক্টরি পরিবর্তন করে ইত্যাদি)
ফ্রেইহাইট

8

তুমি ব্যবহার করতে পার:

su -s /bin/sh -c 'mkdir bin' user1

-sSu- র বিকল্পটি শেলটি ব্যবহার করার জন্য নির্দিষ্ট করে এবং / etc / পাসডাব্লুডে যা আছে তা ওভাররাইড করে।

আমি -আপনার কমান্ডটি বাদ দিয়েছি কারণ, প্রোফাইলটি লোড করা ছাড়াও, সম্ভবত এটি কমান্ডের জন্য ব্যবহারকারীর ডিরেক্টরি ডিরেক্টরিটির ব্যবহারকারীর হোম ডিরেক্টরিতে বদলে দেবে, সুতরাং আপনি ব্যবহারকারীর হোম ডিরেক্টরিতে 'বিন' তৈরি করবেন, আপনার বর্তমানটি নয় ডিরেক্টরি।


5

আমি বিশ্বাস করি যে -s / - শেল বিকল্পটি আপনাকে ব্যবহারকারীর পরিবেশের অন্যান্য অংশগুলি রাখার সময় শেলটি ব্যবহার করতে দেয়, / বিন / শ পজিক্স দ্বারা নির্দিষ্ট করা হয়েছে তাই এটি সর্বত্র পাওয়া উচিত।

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