Sudo এর আগে ব্যবহারকারীর নাম


8

আমি একটি স্ক্রিপ্ট পেয়েছি যা সুডোর প্রয়োজন, তবে স্ক্রিপ্টটি অবশ্যই অবশ্যই মূল ব্যবহারকারী হিসাবে প্যারামিটার নির্ধারণ করবে:

chown "${USER}:${USER}" dir

যদি আমি এটি সুডোর অধীনে সেট করি তবে আমি কেবল শেষ করব chmod root:root, যা কোনও উপকার করে না।

তাহলে আমি কীভাবে ব্যবহারকারীর নাম সুডোর আগে পেতে পারি?

উত্তর:


11

এনভায়রনমেন্ট ভেরিয়েবল SUDO_USER টি USER এর প্রতিস্থাপন হিসাবে কাজ করা উচিত।

যেহেতু আপনি ব্যবহারকারীকে মালিকানা নির্ধারণ করছেন: ইউএসআই আমি ধরে নিই যে সবসময় ব্যবহারকারীর মতো একই নামে একটি দল থাকে? আরও কঠোর সমাধান হতে পারে অন্যথায় SUDO_UID এবং SUDO_GID ব্যবহার করা।

এর পরে দুটি সম্ভাব্য সমাধান হ'ল:

chown "${SUDO_USER}:${SUDO_USER}" dir

অথবা

chown "${SUDO_UID}:${SUDO_GID}" dir

সমাধান এবং কিছু অতিরিক্ত ইনফোস সহ সুন্দর আনবার্সার।
— ই-সন্তুষ্ট

ইউআইডি / জিআইডি ব্যবহার করা সবচেয়ে ভাল সমাধান, কারণ একই ব্যবহারকারীর সাথে একাধিক ইউআইডি থাকা সম্ভব।
— duffbeer703

4

আপনি SUDO_USERচলকটি ব্যবহার করতে পারেন :

sudo bash -c 'echo $SUDO_USER'

থেকে উবুন্টু মানুষ পৃষ্ঠা:

sudo নিম্নলিখিত পরিবেশের ভেরিয়েবল ব্যবহার করে। সুরক্ষা নীতি কমান্ডের পরিবেশের প্রকৃত বিষয়বস্তু নিয়ন্ত্রণ করে। [...]

SUDO_UID সুডো ব্যবহারকারীর ব্যবহারকারীর আইডিতে সেট করুন।

SUDO_USER সুডো ব্যবহারকারীর লগইন নাম সেট করুন।


কিন্তু sudo echo $SUDO_USERআউটপুটস কেন কিছুই নেই?
— রবার্ট

1

SUDO_USER ব্যবহারকারীর দ্বারা ওভাররাইট করা যেতে পারে।

 $ SUDO_USER='lala' sudo SUDO_USER='test' printenv | grep USER
 USER=root
 SUDO_USER=test
 USERNAME=root

আসল ব্যবহারকারীর নাম পেতে আপনার 'কে আমি' বা 'লগ-নেম' ব্যবহার করা উচিত

toto:~$ SUDO_USER='lala' sudo SUDO_USER='test' logname             
toto
toto:~$ SUDO_USER='lala' sudo SUDO_USER='test' who am i
toto   pts/4        Jan 23 15:13 (:0.0)

Https://stackoverflow.com/questions/4598001/how-do-you-find-the-original-user-through-m Multipleple-sudo-and-su-commands থেকে আসছে


'Sudo su -' চালানোর পরে পরিবেশের ভেরিয়েবলগুলি পাওয়া যায় না, lognameএবং who am iকাজ করে।
— রিকমিশাম

আপনি ঠিক বলেছেন, পরিবেশের ভেরিয়েবলের উপর নির্ভর করা সম্ভব নয়।
— ক্লাদমি

কিছু হোস্টে পাওয়া গেছে যে SUDO_USER ওভাররাইট করা যায় না: sudo: sorry, you are not allowed to set the following environment variables: SUDO_USER সুতরাং এটি এখনও নিরাপদ থাকতে পারে, এখনও এটি যাচাই করা উচিত।
— ক্লাদমি

এটি কারণ যে আমার কমান্ডটি "NOPASSWD" হিসাবে সেট করা আছে, তাই এটি "নোসটেনভি" এর মাধ্যমে আপনার sudoers কনফিগারেশনের উপর নির্ভর করে।
— ক্লাদমি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.