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


145

আমার স্ক্রিপ্ট.শ রয়েছে যা অবশ্যই ইউজার 2 হিসাবে চালানো উচিত। তবে এই স্ক্রিপ্টটি কেবল আমার অ্যাপ্লিকেশনে ব্যবহারকারীর 1 এর অধীনে চালানো যেতে পারে।

আমি নিম্নলিখিত কমান্ডটি চালাতে চাই:

su user2 -C script.sh

তবে পাসওয়ার্ড ছাড়াই চালাতে সক্ষম হোন।

আমি এটিও খুব সীমাবদ্ধ হতে চাই, কারণ ব্যবহারকারী 1-তে কেবল ইউজার 2 এর অধীনে স্ক্রিপ্ট.শ চালানো যায় এবং অন্য কিছুই নয়।

আমি সূডার ফাইল দিয়ে এটি করার চেষ্টা করেছি এবং কয়েক ঘন্টা চেষ্টা করার পরেও অবিরাম বিভ্রান্ত হয়ে পড়েছি।

কেউ যদি এটি কীভাবে সম্পাদন করা যায় তার একটি সুস্পষ্ট উদাহরণ সরবরাহ করতে পারে (ব্যবহারের মতো সুডোরগুলির মতো জেনেরিকের পরিবর্তে), এটি প্রশংসিত হবে।


15
আমি বিশেষ করে ঘনিষ্ঠদের সাথে থাকি না। এটি একটি নির্দিষ্ট পদ্ধতিতে সিস্টেমকে কীভাবে প্রোগ্রাম করবেন সে সম্পর্কে একটি প্রশ্ন; যেমনটি, এটি শেল প্রোগ্রামিং সম্পর্কে এবং এসও এর স্কোপের মধ্যে যা প্রোগ্রামিং সম্পর্কে প্রশ্নগুলির জন্য। এটা স্পষ্ট যে বেশিরভাগ লোক এটিকে এতটা অফ-টপিক হিসাবে দেখেন না যে এটি নিচে ভোট হওয়া উচিত; প্রশ্ন এবং উত্তর সকলেরই যথেষ্ট পরিমাণে ভোট রয়েছে।
জোনাথন লেফলার

উত্তর:


121

কল করুন visudoএবং এটি যুক্ত করুন:

user1 ALL=(user2) NOPASSWD: /home/user2/bin/test.sh

কমান্ড পাথ পরম হওয়া আবশ্যক ! তারপরে sudo -u user2 /home/user2/bin/test.shএকটি user1শেল থেকে কল করুন । সম্পন্ন.


3
উবুন্টু সহায়তায় sudoers বিন্যাসের একটি দুর্দান্ত বর্ণনা রয়েছে
সুডোরদের

তাহলে কীভাবে সমস্ত ব্যবহারকারীদের কেবল ব্যবহারকারী 1 এর পরিবর্তে ব্যবহারকারী 2 হিসাবে চালিত হবে?
jiggunjer

193

চালানোর চেষ্টা করুন:

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

এটি ব্যবহারকারীর নাম হিসাবে কমান্ডটি চালাবে যে আপনাকে সেই ব্যবহারকারী হিসাবে সুডো করার অনুমতি রয়েছে।


17
এটি এর মতো পূর্ণ সুডো অধিকার সহ সাধারণ ব্যবহারকারীর হিসাবে কাজ করেছে:sudo su -c "Your command right here" -s /bin/sh otheruser
রুবোই

5
শুধু একটি নোট কোনো Mac ব্যবহারকারীদের জন্য, দৃশ্যত সিনট্যাক্স একটু আলাদা: su username -c "command"
এনএইচডালি

1
যদি আপনি screenঅন্য ব্যবহারকারী হিসাবে শুরু করার চেষ্টা করছেন তবে এটি হেল্পফুল
পুদিনা

2
যদি username(বা প্রশ্নে user2) এর নিজের একটি পাসওয়ার্ড থাকে তবে এটি এর জন্য প্রম্পটটি এড়িয়ে যেতে দেয় না। অন্য উত্তরটি দেয়: ব্যবহারকারীর নাম্বার এবং ব্যবহারকারী 2 উভয়ই পাসওয়ার্ডের প্রয়োজন নেই।
ফিল্ড 294

1
`su -c "Your command right here" -s /bin/sh username`

উপরের কমান্ডটি সঠিক, তবে রেড হ্যাটতে সেলিনাক্স প্রয়োগ করা থাকলে ক্রোনটি অন্য ব্যবহারকারী হিসাবে স্ক্রিপ্টগুলি কার্যকর করতে দেয় না। উদাহরণস্বরূপ; execl: couldn't exec /bin/sh execl: Permission denied

আমাকে সেটবলবলুট এবং সেটুলগুলি ইনস্টল করতে হয়েছিল এবং এটির অনুমতি দেওয়ার জন্য নিম্নলিখিতগুলি চালাতে হয়েছিল:

yum install setroubleshoot setools
sealert -a /var/log/audit/audit.log
grep crond /var/log/audit/audit.log | audit2allow -M mypol
semodule -i mypol.p
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.