শেল স্ক্রিপ্টটি অন্য ব্যবহারকারী হিসাবে চালান যার কোনও পাসওয়ার্ড নেই

আমি কোন পাসওয়ার্ড আছে যে একটি ভিন্ন ব্যবহারকারী হিসাবে প্রধান উবুন্টু শেল থেকে একটি স্ক্রিপ্ট চালাতে চাই.

আমার সম্পূর্ণ সুডো সুবিধা রয়েছে, তাই আমি এটি চেষ্টা করেছি:

sudo su -c "Your command right here" -s /bin/sh otheruser

তারপর আমি আমার পাসওয়ার্ড লিখুন আছে, কিন্তু যে স্ক্রিপ্ট এখন সত্যিই যে ব্যবহারকারী অধীনে চলমান যদি আমি নিশ্চিত নই.

আমি কীভাবে নিশ্চিত করতে পারি যে স্ক্রিপ্টটি এখন সেই ব্যবহারকারীর অধীনে চলছে?

আপনি এটি দিয়ে করতে পারেন 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

আপনি যদি সুডোর পরিবর্তে সু ব্যবহার করতে চান তবে আমি বিশ্বাস করি আপনি এরকম কিছু ব্যবহার করতে পারেন:

su - <username> -c "<commands>"
  • - নির্দিষ্ট ব্যবহারকারীর একটি লগইন অনুকরণ করবে
  • -c এটি বলে যে আপনি একটি কমান্ড চালাতে চান

পুনশ্চ. দুর্ভাগ্যক্রমে আমি এই পদ্ধতির সাথে আরভিএম ব্যবহার করে রুবি ইনস্টল করতে সক্ষম নই, তবে এটি সম্ভবত সম্পর্কিত নয়

উপরের উত্তরগুলি আমার কাছে সত্যিই দরকারী বাটার আসল প্রশ্নের উত্তর দিতে...

আমি কীভাবে নিশ্চিত করতে পারি যে স্ক্রিপ্টটি এখন সেই ব্যবহারকারীর অধীনে চলছে?-

ব্যবহার করুন:

ps -ef | grep <command-name>

আউটপুট আপনার স্ক্রিপ্ট এবং এটি নির্বাহ প্রকৃত ব্যবহারকারী অন্তর্ভুক্ত করা উচিত.বিএসডি-এর মতো সিস্টেমে লোকেরা, যেমন ম্যাক এর সাথে অনুরূপ তথ্য খুঁজে পেতে পারে:

ps aux | grep <command-name>

আপনি কমান্ড সহ রুট ব্যবহারকারীর কাছে স্যুইচ করেছেন তা নিশ্চিত করুন sudo su এবং তারপরে কমান্ডটি ব্যবহার করুন

su user -s <command>

উদাহরণ স্বরূপ: su www-data -s bin/magento cache:clean

আমি একই সমস্যা ছিল.শুধু কমান্ড টাইপ করুন 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

প্রথমত, আমি হোস্ট-ব্যবহারকারী লক্ষ্য ব্যবহারকারী (একই মেশিনে) তার পাবলিক কী সংরক্ষিত নিশ্চিত.তারপরে আমি উপরে যে এসএসএইচ কমান্ডটি দেখিয়েছি তা কার্যকর করি

ফলে, এমনকি একটি পাসওয়ার্ড লিখে ছাড়া, লক্ষ্য ব্যবহারকারী হিসাবে চালানো একটি কমান্ড / স্ক্রিপ্ট হয়.

সুডো-ইউ এবং এলটি; ব্যবহারকারী এবং জিটি;এবং এলটি; কমান্ড এবং জিটি;
< / কোড> < / প্রাক >