একই স্ক্রিপ্টে কমান্ড কার্যকর করতে বাশ স্ক্রিপ্টের সাথে কীভাবে স্যুইচ / ছাগ ব্যবহারকারী আইডি রয়েছে?


14

কোনও স্ক্রিপ্টের মধ্যে ব্যবহারকারীর পরিচয় স্যুইচ করার কোনও উপায় আছে (কোনও ইনস্টলেশন প্রক্রিয়ার অংশ হিসাবে মূল হিসাবে চালিত) কোনও বাহ্যিক স্ক্রিপ্ট না ডেকে কিছু কমান্ড চালানো, তারপরে rootঅন্য কমান্ডগুলি চালাতে ফিরে যেতে ?

প্রকার, রকম:

#!/bin/bash
some commands as root
SWITCH_USER_TO user
some commands as user including environment variables checks, without calling an external script
SWITCH_USER_BACK
some other stuff as root, maybe another user id change...


আপনার এই উত্তরটি দেখতে হবে stackoverflow.com/a/17758312/1243547
ক্লাউস

উত্তর:


28

না। তবে আপনি sudoশেলটি চালাতে ব্যবহার করতে পারেন এবং এটির কমান্ডগুলি ফিড করতে একটি হেরডোক ব্যবহার করতে পারেন ।

#!/bin/bash
whoami
sudo -u someuser bash << EOF
echo "In"
whoami
EOF
echo "Out"
whoami

এটি অবশ্যই একই স্ক্রিপ্টে জিনিসগুলিকে একসাথে রাখার কাজটি করে এবং
ইওএফ-এর

এই উত্তরটি এই প্রশ্নের সদুত্তরকারী প্রশ্নের উত্তরের চেয়ে উত্তম ।
ড্যান ড্যাসকলেসকু

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

কোনও কারণে, দেখে মনে হচ্ছে যে heredoc কমান্ডে vars সেট করা হচ্ছে, vars সেট করা হয়নি। যদি আমি চেষ্টা করি BLA="something"এবং তারপরে উদাহরণস্বরূপ echo "In: $BLA"
:,
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.