ব্যবহারকারী হিসাবে লগইন এবং রুটের মাধ্যমে su ব্যবহারকারী ব্যবহারকারীদের মধ্যে পার্থক্য কী?


17

আপনার যদি কোনও সাজানোর সার্ভার থাকে আপনি এটির মাধ্যমে অ্যাক্সেস করতে পারেন, উদাহরণস্বরূপ, ssh user1@ipএবং আপনি ssh root@ipsu priveleges সহ আপনার মূল ব্যবহারকারীর কাছে যেতে পারেন এবং তারপরে যেতে পারেন su user1। আমার চিন্তায় এই দুটি উপায়ই আমাকে একই ব্যবহারকারীর পরিবেশে নিয়ে যেতে হবে (এই ক্ষেত্রে "ইউজার 1"), তবে আমার আসল অভিজ্ঞতাতে এটি হয় না, কারণ ssh user1@ipসেখানে এমন কিছু ইনস্টল করা su user1আছে যা সেখানে নেই।

তা কেন?

উত্তর:


15

এসএসএইচ একটি লগইন শেল শুরু করে। 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মূল শেল পাওয়ার কৃপণ উপায়। এই দুটি উপায়ই পরিবেশ দ্বারা দূষিত।


সম্পর্কিত:


2
মনে হচ্ছে প্রশ্নগুলি গ্রহণের আগে আমার জাগ্রত হওয়া উচিত :) আপনার উত্তরটি দুর্দান্ত এবং সঠিক উত্তরটি লক্ষ্য করতে আমার হাতছাড়া হয়েছে। ভাল হয়েছে +1
ভিডিওনাথ

-1

মূলত একটি কৌশলগত পার্থক্য।

আপনি যদি কোনও সুপার ব্যবহারকারী হিসাবে লগ ইন করেন তবে আপনি সর্বদা যে কোনও কিছু পরিবর্তন করতে পারবেন ... যেমন - বিপর্যয়মূলক ভুলের বিরুদ্ধে কোনও সুরক্ষা নেই, আপনাকে নিরাপত্তার জন্য অস্থায়ীভাবে অন্য কোনও ব্যবহারকারীর কাছে পরিবর্তন করতে হবে।

যদিও: আপনি যদি সীমাবদ্ধ সুযোগ-সুবিধাগুলি সহ লগ ইন করেন তবে আপনি বিপর্যয়মূলক কিছু ভুলের ঝুঁকি এড়াতে পারেন, কারণ সেই শক্তিটিতে অস্থায়ী অ্যাক্সেসের জন্য আপনাকে ইচ্ছাকৃতভাবে রুট এ সরিয়ে নিতে হবে, তবে এখন আপনার নিরাপদ ব্যবহারকারীর কাছে ডিফল্ট পতন-অবস্থান রয়েছে have ।

পার্থক্যটি আসলে কৌশলগত, প্রযুক্তিগত নয়।


প্রশ্নটি অন্য ব্যবহারকারীদের থেকে মূল ব্যবহারকারীর পার্থক্য নয়। এটি সার্ভার ব্যবহারকারীকে সরাসরি এসএসএসের মাধ্যমে অ্যাক্সেস করার এবং মূল ব্যবহারকারীর ভিতরে সু এর মাধ্যমে অ্যাক্সেস করার মধ্যে পার্থক্য ছিল। যাইহোক, আপনি যা বলেছেন তা নিয়ে আমি একমত হাহাহ ধন্যবাদ
মিগুয়েল করটি

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