আমি কি `sudo` দিয়ে চালিত কোনও স্ক্রিপ্টের মধ্যে থেকেই মূল $ USER ভেরিয়েবলটি অ্যাক্সেস করতে পারি?


19

একটি অদ্ভুত প্রশ্ন, আমি জানি। লিপিটি এখানে:

echo $USER

এটি চালানোর জন্য আমি যে আদেশটি ব্যবহার করি তা এখানে:

sudo ./myscript.sh

এখনই এটি "রুট" মুদ্রণ করে তবে আমি এটি ব্যবহার করতে চাই jon, আমার ব্যবহারকারীর নাম। স্ক্রিপ্ট পরিবর্তন করে এটি করার কোনও উপায় আছে, এবং কমান্ডটি নয়?


হ্যাঁ, এটি করার উপায় আছে। তবে সম্ভবত সবচেয়ে সহজ উপায় হ'ল একটি কাজের জায়গা। অন্য স্ক্রিপ্ট থেকে সেই স্ক্রিপ্টটিকে কল করুন, যেখানে আপনি নিজের ব্যবহারকারীর আইডি 'সংরক্ষণ' করেন যাতে 'সুডো স্ক্রিপ্ট' এটি অ্যাক্সেস করতে পারে।
— সুডোডাস

উত্তর:


28

SUDO_USERপরিবর্তে পরিবেশ পরিবর্তনশীল ব্যবহার করুন USER।

sudoSUDO_USERপরিবেশের পরিবর্তনশীল হিসাবে এটি চালানো ব্যবহারকারীর নাম রাখে :

ek@Io:~$ sudo sh -c 'echo $USER'
[sudo] password for ek:
root
ek@Io:~$ sudo sh -c 'echo $SUDO_USER'
ek

সুতরাং আপনি কেবল আপনার স্ক্রিপ্টের $USERসাথে $SUDO_USERএটি প্রতিস্থাপন করতে পারেন :

echo $SUDO_USER

আরও পড়া

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