প্রশ্ন নলগন শেল আছে ব্যবহারকারী হিসাবে স্ক্রিপ্ট রান


আমার যা করতে হবে তা হল একটি নির্দিষ্ট স্ক্রিপ্ট চালানো একটি কণা ব্যবহারকারী হিসাবে, যাকে nologin / false শেল থাকে / etc / passwd এ নির্দেশিত থাকে।

আমি স্ক্রিপ্টটি রুট হিসাবে চালাব এবং এটি অন্য ব্যবহারকারী হিসাবে চালানো উচিত। চলমান:

~# su -c "/bin/touch /tmp/test" testuser

কাজ করবে কিন্তু পরীক্ষকটির জন্য আমার একটি বৈধ শেল দরকার। আমি জানি আমি পাসওয়ার্ড দিয়ে অক্ষম করতে পারি passwd -d testuser এবং শেলটি / bin / bash এ ছেড়ে দিন এই ভাবে একটু সুরক্ষিত হবে তবে আমার nologin / false shell থাকতে হবে।

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

পি। আমি এই থ্রেড খুঁজে পেয়েছি একটি nologin ব্যবহারকারী হিসাবে একটি কমান্ড নির্বাহ কিন্তু আমি কমান্ড "concatenate" কিভাবে কোন ধারণা নেই su -s /bin/sh $user আমি স্ক্রিপ্ট চালানোর প্রয়োজন

ধন্যবাদ


78
2018-01-18 13:56


উত্স




উত্তর:


আপনি একটি বিশেষ শেল চালানোর জন্য su -s সুইচটি ব্যবহার করতে পারেন

su -s /bin/bash -c '/path/to/your/script' testuser

(শুরুতে যোগ sudo উপরে যদি testuser একটি পাসওয়ার্ডহীন ব্যবহারকারী।)


110
2018-01-18 18:49



কি যদি su হয় root:root -rwsr-x--- ? - Patryk
ব্যবহারকারীর পাসওয়ার্ড না থাকলে কি হবে? - CMCDragonkai
@ ওয়েসলি খুঁজে পেয়েছেন যে পাসওয়ার্ডহীন ব্যবহারকারীর জন্য এই কমান্ড চালানোর জন্য আপনাকে রুট হতে হবে। - CMCDragonkai
@ লাইন, ব্যবহারকারীর শেল না থাকলে অনুমিত হয়, কমান্ড সম্পর্কিত প্রক্রিয়াটি ব্যাশ প্রক্রিয়াটির একটি শিশু হওয়া উচিত নয়। সুতরাং, স্ক্রিপ্টের সাথে শেলটিকে প্রতিস্থাপন করতে আপনাকে অবশ্যই exec ব্যবহার করতে হবে। এবং যদি আপনি স্ক্রিপ্টটি init একটি শিশু তৈরি করতে চান, আপনি একটি উদাহরণ হিসাবে, ব্যবহার করুন su -s /bin/bash -c 'exec /path/to/your/script &' test - Facundo Victor
যেহেতু আমি গত ২0 মিনিট ধরে একই ফলাফল অর্জন করতে পেরেছি তা নিয়ে কাজ করেছি runuser, আমি যে বাতলান চাই su -s SHELL পরামিতি রেন্ডারার কমান্ড বেশ অনেক নিরর্থক renders :) ধন্যবাদ জন! - jirka


আপনি এই সঙ্গে করতে পারেন sudo -u যদি আপনি এটি ইনস্টল করেছেন:

# whoami
root
# sudo -u apache whoami
apache
# getent passwd apache
apache:x:48:48:Apache:/var/www:/sbin/nologin

7
2018-01-18 14:03



আপনি কিভাবে পরামিতি পাস করবেন sudo -u apache whoami? - CMCDragonkai
@ সিএমসিড্রাগনকাই কমান্ডের পরে কোনও প্যারামিটার পাশাপাশি পাস করা হবে। আপনি এটা মনে করতে পারেন "সুডো [-উ অপাচে] [হ্যামি <param1> <param2>]"। - Handyman5
আমি ব্যবহার করে মনে করি sudo -u এটি সম্ভবত একটি nologin ব্যবহারকারী হিসাবে কমান্ড চালানোর জন্য একটি ভাল ধারণা নয়, কারণ এটি প্রকাশ করে SUDO_USER পরিবেশে আসল মানুষটি হুকুম আহ্বান করে। হয়তো আমি শুধু এটা overthinking করছি। - Meow


/ Bin / sh এ চালানোর যুক্তি হিসাবে স্ক্রিপ্ট প্রদান করে:

su -s "/bin/sh /your/script/location" username

4
2018-01-18 14:01





কেবল বুজলাম :

su -s "/ bin / bash" -c "/ bin / touch / tmp / testuser" testuser

সম্ভবত একটি ভাল উপায় আছে?


2
2018-02-16 07:18





আসলে, এই কাজ করার সেরা উপায় মাধ্যমে হয় runuser

বিস্তারিত জানার জন্য ম্যান পৃষ্ঠা দেখুন

ডেভেলপার তার বোলিংয়ে বলেন যে এই টুলটি পরিস্থিতির সাথে মোকাবিলা করতে ব্যবহৃত হয়

যখনই একটি পরিষেবা রুট হিসাবে চলছে এবং শেল ব্যবহার করে ইউআইডি পরিবর্তন করতে চায় তখন এটি রানুসার ব্যবহার করতে হবে।

http://danwalsh.livejournal.com/55588.html

আমি এই প্রাসাদটি অনেক প্রাসাদের মধ্যে পোস্ট করেছি, যদি আপনি এই বিরক্তিকর খুঁজে পান তবে আমাকে ক্ষমা করুন


0
2017-12-07 19:19



লিংক রোট প্রতিরোধ লিঙ্ক শুধুমাত্র উত্তর পোস্ট করবেন না দয়া করে। পরিবর্তে, আপনার উত্তরের লিংক থেকে সর্বাধিক প্রাসঙ্গিক তথ্য যুক্ত করুন বা বিকল্পভাবে, একটি উত্তর পরিবর্তে একটি লিঙ্ক হিসাবে পোস্ট পোস্ট করুন। এটা দেখ serverfault.com/help/how-to-answer আরও তথ্যের জন্য সাহায্য কেন্দ্র নিবন্ধ। - Federico Galli
@ ফেডেরিকালগলি সর্বাধিক প্রাসঙ্গিক তথ্য ইতিমধ্যে যোগ করা হয়েছে, ব্যবহারের অনুলিপি এবং পেস্ট করার প্রয়োজন নেই, ম্যান পৃষ্ঠাটি যথেষ্ট তথ্য সরবরাহ করে - Z-Y00


ব্যবহারকারী নির্দিষ্ট করার জন্য sudo -u ব্যবহার করুন। এছাড়াও লক্ষ্য ব্যবহারকারীর পরিবেশ ভেরিয়েবল সেট করতে -আই পতাকা ব্যবহার করুন।

sudo -i -u user command

-1



এই দেয় This account is currently not available. - knocte