আপনি এটি দিয়ে করতে পারেন su অথবা sudo, উভয়ের জন্য কোন প্রয়োজন নেই.
sudo -H -u otheruser bash -c 'echo "I am $USER, with uid $UID"'
এর প্রাসঙ্গিক অংশ man sudo:
-H The -H (HOME) option requests that the security policy set the HOME environment variable to the home directory of the target user (root by default) as specified by the password database. Depending on the policy, this may be the default behavior.
-u user The -u (user) option causes sudo to run the specified command as a user other than root. To specify a uid instead of a user name, use #uid. When running commands as a uid, many shells require that the '#' be escaped with a backslash ('\'). Security policies may restrict uids to those listed in the password database. The sudoers policy allows uids that are not in the password database as long as the targetpw option is not set. Other security policies may not support this.
su আপনি রুট যদি শুধুমাত্র একটি পাসওয়ার্ড প্রদান ছাড়া ব্যবহারকারী সুইচ করতে পারেন. কালেবের উত্তর দেখুন
আপনি পরিবর্তন করতে পারেন /etc/pam.d/su অনুমতি দেওয়ার জন্য ফাইল su পাসওয়ার্ড ছাড়া. এই দেখুন উত্তর.
আপনি যদি নিজের প্রমাণীকরণ ফাইলটি নিম্নলিখিতটিতে পরিবর্তন করেন তবে গ্রুপের অংশ ছিল এমন কোনও ব্যবহারকারী somegroup পারে su প্রতি otheruser একটি পাসওয়ার্ড ছাড়া.
auth sufficient pam_rootok.soauth [success=ignore default=1] pam_succeed_if.so user = otheruserauth sufficient pam_succeed_if.so use_uid user ingroup somegroup
তারপর টার্মিনাল থেকে পরীক্ষা
rubo77@local$ su otheruser -c 'echo "hello from $USER"'hello from otheruser
উপরের উত্তরগুলি আমার কাছে সত্যিই দরকারী বাটার আসল প্রশ্নের উত্তর দিতে...
আমি কীভাবে নিশ্চিত করতে পারি যে স্ক্রিপ্টটি এখন সেই ব্যবহারকারীর অধীনে চলছে?-
ব্যবহার করুন:
ps -ef | grep <command-name>
আউটপুট আপনার স্ক্রিপ্ট এবং এটি নির্বাহ প্রকৃত ব্যবহারকারী অন্তর্ভুক্ত করা উচিত.বিএসডি-এর মতো সিস্টেমে লোকেরা, যেমন ম্যাক এর সাথে অনুরূপ তথ্য খুঁজে পেতে পারে:
আমি একই সমস্যা ছিল.শুধু কমান্ড টাইপ করুন screen -dmS testscreen এটি আপনার অ-সুডো ব্যবহারকারী অ্যাকাউন্টে একটি বিচ্ছিন্ন স্ক্রিন তৈরি করবে এবং তারপরে আপনি এটি লগ করতে পারেন এবং এই স্ক্রিনটি সেখানে আছে কিনা তা পরীক্ষা করতে পারেন screen -ls.
আপনি ব্যবহার করতে পারেন sudo এটা করতে. প্রথমত, আপনি পরিবর্তন করতে হবে /etc/sudoers একটি নিয়ম যোগ করার জন্য ফাইল hudson ব্যবহারকারী প্রশ্ন স্ক্রিপ্টের জন্য অন্যান্য ব্যবহারকারী হয়ে. এর আপনি একটি আছে অনুমান করা যাক user1 অ্যাকাউন্ট যা চালানো দরকার /usr/local/bin/my_script.sh.
চালান visudo পরিবর্তন করতে sudoers ফাইল.তারপর, নিম্নলিখিত ব্যবহার করুন sudo হাডসন থেকে স্ক্রিপ্ট চালানোর কমান্ড.
আপনি ব্যবহার করা খুব গুরুত্বপূর্ণ visudo পরিবর্তন করতে sudoers জায়গায় এটি নির্বাণ আগে ত্রুটি জন্য ফাইল চেক করার জন্য ফাইল. এছাড়াও, আমি একটি দ্রুত পড়ার পরামর্শ দেব man sudoers পরিষ্কারভাবে উপরে আপনার কনফিগারেশন এটি যোগ করার আগে কি বুঝতে.
আমি একই স্থানীয় মেশিনে নির্দেশ করে এসএসএইচ এবং উদ্ধৃতি ব্যবহার করিএই শেল স্ক্রিপ্ট বা কমান্ড পাসওয়ার্ডহীন চালানোর জন্য আমাকে সক্ষম.
ssh target-user@localhost script-to-execute
প্রথমত, আমি হোস্ট-ব্যবহারকারী লক্ষ্য ব্যবহারকারী (একই মেশিনে) তার পাবলিক কী সংরক্ষিত নিশ্চিত.তারপরে আমি উপরে যে এসএসএইচ কমান্ডটি দেখিয়েছি তা কার্যকর করি
ফলে, এমনকি একটি পাসওয়ার্ড লিখে ছাড়া, লক্ষ্য ব্যবহারকারী হিসাবে চালানো একটি কমান্ড / স্ক্রিপ্ট হয়.