এসএসএইচ একটি লগইন শেল শুরু করে। su
, ডিফল্টভাবে না।
বিশেষত, এর অর্থ এই ~/.profile
যে ব্যবহারকারীর জন্য (বা অনুরূপ ফাইল) উত্সাহিত নয়। সুতরাং এর মধ্যে পরিবর্তনগুলি ~/.profile
কার্যকর হবে না। এটি এমনও হতে পারে যে:
- এমনকি যদি আপনি লগইন শেল শুরু করেন তবে মূলের মধ্যে বিভিন্ন পরিবর্তন করা হয়েছিল
~/.profile
যা ব্যবহারকারীর পরিবেশকে দূষিত করতে পারে।
/etc/profile
এবং /etc/profile.d/*
বিভিন্ন ব্যবহারকারীর জন্য আলাদাভাবে সেটিংস প্রয়োগ করতে পারে (যদিও ডিফল্ট হিসাবে নয়)
- এসএসএইচ কনফিগারেশনে বিভিন্ন ব্যবহারকারীর জন্য বিভিন্ন সেটিংস থাকতে পারে।
পিএএম কনফিগারেশন আলাদা। উদাহরণস্বরূপ, /etc/pam.d/ssh
আছে:
session required pam_env.so user_readenv=1 envfile=/etc/default/locale
যেখানে /etc/pam.d/su
আছে:
session required pam_env.so readenv=1 envfile=/etc/default/locale
এর অর্থ এসএসএইচ বোঝা ~/.pam_environment
, কিন্তু su
হয় না। এটি একটি বড়, যেহেতু ~/.pam_environment
পরিবেশ পরিবর্তনশীলগুলির জন্য শেল-স্বতন্ত্র স্থান এবং আপনি জিইউআই, টিটিওয়াই বা এসএসএইচ থেকে লগইন করলে এটি প্রয়োগ করা হয়।
একটি লগইন শেল শুরু করতে, এর মধ্যে দুটি চালান:
su - <username>
sudo -iu <username>
উদাহরণ:
# su muru -c 'sh -c "echo $HOME $PATH"'
/home/muru /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
# su - muru -c 'sh -c "echo $HOME $PATH"'
/home/muru /home/muru/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
# sudo -iu muru sh -c 'echo $HOME $PATH'
/home/muru /home/muru/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# sudo -u muru sh -c 'echo $HOME $PATH'
/root /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# ssh muru@localhost 'echo $HOME $PATH'
/home/muru /home/muru/devel/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
এমনকি এসএসএইচ সহ, যদি আপনি শেলটি শুরু করার পরিবর্তে একটি কমান্ড চালান, একটি লগইন শেলটি চালিত হবে না ( ~/bin
এসএসএইচ পরীক্ষায় অনুপস্থিতি নোট করুন যা উপস্থিত su -
এবং এতে রয়েছে sudo -i
)। সত্যিকারের ফলাফল পেতে, আমি আমার শেলটি লগইন শেল হিসাবে চালাব:
# ssh muru@localhost '$SHELL -ilc "echo \$HOME \$PATH"'
/home/muru /home/muru/bin:/home/muru/devel/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
এটিই কেন sudo su
এবং sudo -s
মূল শেল পাওয়ার কৃপণ উপায়। এই দুটি উপায়ই পরিবেশ দ্বারা দূষিত।
সম্পর্কিত: