রুটের পরিবর্তে rc.local থেকে স্ক্রিপ্ট ব্যবহার করুন


26

আমার সার্ভারটি যতবার শুরু হবে ততবারই আমি একটি স্ক্রিপ্ট কার্যকর করতে চাই। সমস্যাটি হ'ল স্ক্রিপ্টটি সম্পাদন করার জন্য আমার একটি নির্দিষ্ট ব্যবহারকারী হওয়া দরকার, যদি আমি এটি রুট হিসাবে করার চেষ্টা করি তবে এটি নির্দিষ্ট প্যাকেজগুলি খুঁজে পাচ্ছে না (যেমন রুবি)।

আমি এক্সএক্সএক্স ব্যবহারকারী01 এ পরিবর্তনের চেষ্টা করি।

sudo su user01
/etc/init.d/script start

এটি তবে কাজ করে না।


আপনার init স্ক্রিপ্ট পোস্ট করবেন?
কোয়ান্টা

আপনার কিছু লগ আছে?
ডোম

আপনি কেবল suআরসি স্ক্রিপ্টে ব্যবহার করবেন না কেন ?
মাদুর

উত্তর:


30

sudo su user01স্ক্রিপ্টে চলার অর্থ এই নয় যে নিম্নলিখিত কমান্ডগুলি ফলাফল শেলের কাছে প্রেরিত হয়। প্রকৃতপক্ষে, এর অর্থ সম্ভবত একটি নতুন শেল ব্যবহারকারী01 হিসাবে তৈরি হয়েছে, যা কখনই প্রস্থান করে না!

দুটি জিনিস:

  • আপনি অন্য ব্যবহারকারী হিসাবে কমান্ড কার্যকর করতে পারেন হয় -c 'command...'su এর মতো যুক্তিটি পাস করে su user01 -c '/etc/init.d/script start'
  • আরসি.লোকাল থেকে /etc/init.d ব্যবহার করা একটি পরিষেবা শুরু করা সঠিক জিনিস নয়। আপনি যেমন আপনার বন্টন সরঞ্জাম ব্যবহার, স্টার্টআপে পরিষেবাটি সক্ষম ব্যবহার করতে চান chkconfigবা update-rc.d। আপনি /etc/init.d তেও চাকরি চান না যেটি শুরু করা উচিত নয় root। কাজগুলি নিজেরাই অন্য কোনও ব্যবহারকারীর অ্যাকাউন্টে বিনা দ্বিধায় বোধ করতে পারে তবে মূলের দ্বারা তা গ্রহণ করা উচিত।


4

আপনি সুডোর মাধ্যমে এইভাবে কমান্ডটি চালাতে পারেন:

sudo -H -u user01 /etc/init.d/script start

-H ব্যবহারকারীর থেকে হোম পরিবেশের পরিবর্তনশীল সেট করে

-u হিসাবে চালানোর জন্য ব্যবহারকারীর নাম নির্দিষ্ট করে


0

নিশ্চয় আপনি sudoers এ প্রয়োজনীয় স্কিপটি sudo দিয়ে চালাতে পারবেন না (প্রযোজ্য ব্যবহারকারীদের অবশ্যই লগ ইন করতে হবে)। আপনি অক্ষম করতে চান, যা কিছুটা ঝুঁকিপূর্ণ

এছাড়াও রানসুইড নামে একটি পুরাতন সরঞ্জাম রয়েছে: http://freecode.com/projects/runsuid

আছে HTH

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