কেন অনেক অ্যাকাউন্ট আছে? আমি একমাত্র ব্যবহারকারী


13

আমি একটি উবুন্টু 12.04 ডেস্কটপ সিস্টেম চালাচ্ছি। এখন পর্যন্ত আমি কেবল কিছু প্রোগ্রাম ইনস্টল করেছি (আমার সুডোর অধিকার রয়েছে)।

  1. আমি যখন সিস্টেমে ব্যবহারকারীর তালিকাটি যাচাই করি, 20 টিরও বেশি ব্যবহারকারীর মতো আমি একটি দীর্ঘ তালিকা দেখতে পাই these এই ব্যবহারকারীরা কখন তৈরি করা হয়েছিল (যেমন ডেমোন, সিজ, সিঙ্ক, গেমস, পালস ইত্যাদি)? এগুলি কীভাবে নতুন প্রোগ্রাম ইনস্টল করা হচ্ছে সম্পর্কিত?

  2. আমি যদি আমার সিস্টেমে কোনও প্রোগ্রাম পরিচালনা করি তবে এটি আমার ইউআইডি দিয়ে চালানো উচিত। তবে একটি পিএস করার সময় আমি দেখতে পাচ্ছি যে আরও অনেকগুলি প্রোগ্রাম বিভিন্ন ইউআইডি দিয়ে চলছে (যেমন রুট, ডেমন, আভি, সিসলগ, কলর্ড ইত্যাদি) - কীভাবে এই প্রোগ্রামগুলি বিভিন্ন ইউআইডি দিয়ে শুরু হয়েছিল?


3
এটিকে অন্যভাবে ভাবুন: কম্পিউটারটি প্রথম বুট করার পরে আপনি এখনও লগইন করেননি এবং প্রোগ্রামগুলি কারও হিসাবে চালাতে হবে । এগুলি সবাই রুট হিসাবে চালাতে পারে তবে এটি অনিরাপদ, কারণ এই প্রোগ্রামগুলির বেশিরভাগই কেবল কম্পিউটারের অপারেশনের একটি ছোট অংশের জন্য দায়ী। আপনি লগ ইন হয়ে গেলে, আপনি সরাসরি চালিত বেশিরভাগ প্রোগ্রামগুলি আপনার মতোই চালানো হবে।
ডিমো 414

শেষ পর্যন্ত, এটি একটি হ্যাক। একটি বহুল ব্যবহৃত একটি, তবুও একটি হ্যাক। ইউএনআইএক্স বিতরণ একটি পুরানো এবং অসম্পূর্ণ সুরক্ষা মডেলকে ঘিরে কাজ করার জন্য "ব্যবহারকারী" ধারণাটিকে অপব্যবহার করে।
ফেডেরিকো পোলোনি

উত্তর:


24

ব্যবহারকারীর অ্যাকাউন্টগুলি কেবল প্রকৃত, মানব ব্যবহারকারীদের জন্যই নয়, সিস্টেম পরিষেবাদি চালাতে এবং কখনও কখনও সিস্টেম ফাইলের মালিক হিসাবে ব্যবহৃত হয়। এটি করা হয়েছে কারণ মানব ব্যবহারকারীদের সংস্থানগুলির (প্রক্রিয়াগুলি, ফাইলগুলি, ইত্যাদি) এবং সিস্টেম পরিষেবাগুলির সংস্থানগুলির মধ্যে পৃথকীকরণের জন্য হুডের নীচে একই প্রক্রিয়া প্রয়োজন।

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

উবুন্টুর অধীনে, 0-09-এর মধ্যে ব্যবহারকারী আইডিগুলি সিস্টেম ইনস্টলেশনতে তৈরি করা হয়। 0 মূল; 1-99 রেঞ্জের অনেকগুলি কেবলমাত্র historicalতিহাসিক কারণে বিদ্যমান এবং কেবলমাত্র তাদের ব্যবহৃত কিছু স্থানীয় ইনস্টলেশনগুলির সাথে পশ্চাদপদ সামঞ্জস্যের জন্য রাখা হয়েছে (কয়েকটি অতিরিক্ত এন্ট্রি ক্ষতি করে না)। 100-999 সীমাতে থাকা ব্যবহারকারী আইডিগুলি যখন ডেডিকেটেড ইউজার আইডির প্রয়োজন পরিষেবাগুলি ইনস্টল করা হয় বা সরানো হয় তখন গতিশীলভাবে তৈরি এবং সরানো হয়। 1000 এর পরের ব্যাপ্তি হ'ল মানব ব্যবহারকারী বা সিস্টেম প্রশাসক দ্বারা তৈরি অন্য কোনও অ্যাকাউন্টের জন্য। একই গ্রুপে যায়।


7

আমি অনুমান করি আপনি কি ব্যবহারকারীদের এই তালিকাটি পরীক্ষা করে খুঁজে পাচ্ছেন /etc/passwd? এটি সম্পূর্ণ স্বাভাবিক - 'ব্যবহারকারীরা' অনুমতিগুলির একটি সেট বহন করে যা কেবল 'প্রকৃত ব্যবহারকারীদের' নয়, আপনার সিস্টেমের নির্দিষ্ট অঞ্চলে প্রোগ্রামগুলি এবং তারা কী পরিবর্তিত হয়েছিল তা ট্র্যাক করার জন্য উপযোগী (গ্রুপগুলির সাথে একই ধারণা) useful

/etc/passwdআপনার রেফারেন্সের জন্য আমি নীচে আমার একটি রাস্পবেরি পাই ফাইল প্রবেশ করিয়েছি ; আপনি ntopপ্রোগ্রামটি ntop(নেটওয়ার্ক মনিটরিং) দ্বারা তৈরি এই ফাইলের নীচে ব্যবহারকারীকে লক্ষ্য করবেন । একইভাবে sshd, gnatsবাগ রিপোর্টিং ইত্যাদি

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
pi:x:1000:1000:,,,:/home/pi:/bin/bash
sshd:x:101:65534::/var/run/sshd:/usr/sbin/nologin
ntp:x:102:104::/home/ntp:/bin/false
statd:x:103:65534::/var/lib/nfs:/bin/false
messagebus:x:104:106::/var/run/dbus:/bin/false
usbmux:x:105:46:usbmux daemon,,,:/home/usbmux:/bin/false
lightdm:x:106:109:Light Display Manager:/var/lib/lightdm:/bin/false
smmta:x:107:110:Mail Transfer Agent,,,:/var/lib/sendmail:/bin/false
smmsp:x:108:111:Mail Submission Program,,,:/var/lib/sendmail:/bin/false
Debian-exim:x:109:113::/var/spool/exim4:/bin/false
ntop:x:110:115::/var/lib/ntop:/bin/false

আমি যখন ওবুন্টুতে একটি নতুন প্রোগ্রাম ইনস্টল করি, এটি কি নতুন ব্যবহারকারী তৈরি করে? যদি তা না হয় তবে কীভাবে আমার থেকে আলাদা ইউআইডি নিয়ে এতগুলি প্রোগ্রাম চলছে? আমি বোঝাতে চাইছি কীভাবে এই প্রোগ্রামগুলি আলাদা ইউআইডি দিয়ে চালানো হয়?
জ্যাক

আপনি যদি চান তবে dpkg --get-selections | grep -v deinstallএটি আপনার / etc / passwd ফাইল তালিকার সাথে চালনা এবং তুলনা করতে পারেন। আপনার প্রশ্নের হিসাবে: "... এই প্রোগ্রামগুলি কীভাবে ডিফ ইউআইডি দিয়ে চালানো হয়", আপনি নিজে এটি চেষ্টা করে দেখতে পারেন। একটি এলোমেলো বাশ স্ক্রিপ্ট লিখুন test_fileযাতে নিরীহ কিছু ( echo "Test") থাকে। তারপরে sudo chmod 755 test_file(সুতরাং এটি যে কারও দ্বারা পঠনযোগ্য এবং নির্বাহযোগ্য এবং পাঠযোগ্য, রচনামূলক এবং মালিকের দ্বারা নির্বাহযোগ্য) তারপরে sudo chown nobodyযা এটি ব্যবহারকারীকে নির্ধারিত করবে nobody। তারপর এটি চালান। 'প্রোগ্রাম' test_fileসবেমাত্র ইউআইডি নিয়ে চলেছিল nobody
টক্সেফা

2
@ পাই 4on বেশ নয় ... এটি nobodyইউআইডি সহ একটি ফাইল থেকে ছড়িয়েছে , তবে এটি আপনার ইউআইডি দিয়ে চলেছে; এটি করার জন্য আপনার এটির একটি SID ফাইল তৈরি করতে হবে, তবে ফাইলটি দোভাষী দিয়ে চালানো হলে SID বিট বাদ দেওয়া হবে।
রিকিং

ঠিক আছে আমি উপরে আমার মন্তব্য সম্পাদনা করতে পারছি না তবে dpkgকিছুটা এখনও কার্যকর (আশাবাদী) দয়া করে এটিকে নিজের হিসাবে চালানোর বিষয়ে অংশটি উপেক্ষা করুন ! হয়
SID- এ

3

এই ব্যবহারকারীদের কখন তৈরি করা হয়েছিল?

আপনি যেগুলির উল্লেখ করেছেন সেগুলির ক্ষেত্রে, সেগুলি সিস্টেম ইনস্টলেশনতে তৈরি করা হয়েছিল। এই ব্যবহারকারীর অ্যাকাউন্টগুলি প্রচলিত, কিছু কিছু দশক আগের। সেগুলি মানসম্মতও হয়। লিনাক্স স্ট্যান্ডার্ড বেস এগুলিকে বিভক্ত করে:

  • প্রয়োজনীয় মান ব্যবহারকারী অ্যাকাউন্ট root, binএবং daemon; এবং
  • ঐচ্ছিক মান ব্যবহারকারীর অ্যাকাউন্ট adm, lp, sync, shutdown, halt, mail, news, uucp, operator, man, এবংnobody

অন্যান্য ব্যবহারকারীর অ্যাকাউন্ট যে এখানে উল্লেখ করা হয় - pulse, avahi, colord, এবং Debian-exim(py4on পাসওয়ার্ড ফাইল থেকে একটি চয়ন করতে) - আপনার পরের প্রশ্নে আমাদের আনা।

এগুলি কীভাবে নতুন প্রোগ্রাম ইনস্টল করা হচ্ছে সম্পর্কিত?

এই প্যাকেজগুলি ইনস্টল ও শুদ্ধ হওয়ার কারণে নন-স্ট্যান্ডার্ড ব্যবহারকারী অ্যাকাউন্টগুলি বিভিন্ন প্যাকেজগুলির জন্য "রক্ষণকারী স্ক্রিপ্টগুলি" তৈরি এবং ধ্বংস করে দেয়। প্যাকেজের তথাকথিত postinstরক্ষণাবেক্ষণকারী স্ক্রিপ্ট দ্বারা একটি ব্যবহারকারী অ্যাকাউন্ট তৈরি করা হবে যা getentব্যবহারকারী অ্যাকাউন্টটি ইতিমধ্যে উপস্থিত রয়েছে কিনা তা দেখার জন্য এটি চালিত হয় এবং useraddতা না থাকলে। তত্ত্ব এটি প্যাকেজের তথাকথিত দ্বারা মুছে ফেলা হবে postrmরক্ষণাবেক্ষণকারী স্ক্রিপ্ট, চলমান userdel

অনুশীলনে, প্যাকেজগুলির জন্য ব্যবহারকারীর অ্যাকাউন্টগুলি মোছা হয় না। ফেডোরা উইকি (কিউভি) ব্যাখ্যা করে যে এটি জটিলতায় ভরাট হবে। কার্যকারণে এই যুক্তির উদাহরণের জন্য ডিবিয়ান বাগ # 646175 দেখুন , যেখানে এই অ্যাকাউন্টের আওতাধীন চলতে থাকা ডেমনের সমস্যাটি সমাধান করার জন্য প্যাকেজটি শুদ্ধ হওয়ার পরে কেবল ব্যবহারকারী অ্যাকাউন্টটি মুছে ফেলা না করার সিদ্ধান্ত নেওয়া হয়েছে rabbitmq

বিভিন্ন ইউআইডি দিয়ে কীভাবে এই প্রোগ্রামগুলি শুরু হয়েছিল?

ইউনিক্স এবং লিনাক্সের অধীনে, সুপারভাইজারের নেতৃত্বে চলমান একটি প্রক্রিয়া তার ব্যবহারকারীর অ্যাকাউন্টটি অন্য কোনও কিছুতে পরিবর্তন করতে পারে এবং একই প্রোগ্রাম চালিয়ে যেতে পারে, তবে বিপরীতটির অনুমতি নেই। (সেট-ইউআইডি প্রক্রিয়াটি অবশ্যই ব্যবহার করা উচিত))

ডমন ম্যানেজমেন্ট সিস্টেমটি সুপারভাইজার হিসাবে চলে। এর কনফিগারেশন ডেটা নির্দিষ্ট ব্যবহারকারীর অ্যাকাউন্টগুলির অধীনস্থ নির্দিষ্ট দমনগুলি নির্দিষ্ট করে:

  • সিস্টেম 5 rcএর সাথে স্ক্রিপ্টটিতে /etc/init.dকোনও সহায়ক সরঞ্জাম যেমন start-stop-daemonএর --chuidবিকল্প ব্যবহার করে।
  • একটি daemontools পরিবার সেবা পরিচালকের মাধ্যমে, runস্ক্রিপ্ট কল setuidgid, s6-setuidgid, chpst, অথবা runuidব্যবহারকারীর অ্যাকাউন্ট নাম দিয়ে। Https://unix.stackexchange.com/a/179798/5132 এ এর উদাহরণ রয়েছে যা nagiosব্যবহারকারীর অ্যাকাউন্টটি সেট করে ।
  • আপস্টার্টের সাথে setuidএকটি কাজের ফাইলে একটি পদ রয়েছে, এটি ব্যবহারকারীর অ্যাকাউন্টটি নির্দিষ্ট করে। এই প্রবণতা বিশেষ করে সূক্ষ্ম গ্রেইনড করা হয় না, এবং কখনও কখনও চায় কি এ বর্ণনা করা হয়েছে /superuser//a/723333/38062
  • সিস্টেমডের সাথে User=পরিষেবা ইউনিট ফাইলে একটি সেটিংস রয়েছে যা ব্যবহারকারীর অ্যাকাউন্টটি নির্দিষ্ট করে।

ডেমন ম্যানেজমেন্ট সিস্টেম যখন ডেমন হিসাবে কোনও প্রক্রিয়া তৈরি করে, এই প্রক্রিয়াগুলি সুপারউজার সুবিধাগুলি বাদ দেয় যাতে ডমন প্রক্রিয়াটি অনিবদ্ধ ব্যবহারকারী অ্যাকাউন্টের আওতায় চলে run

কেন এইভাবে ভাল ডমন পরিচালনা করা হয় তার যথেষ্ট দীর্ঘ ব্যাখ্যা রয়েছে । তবে আপনি কেন জিজ্ঞাসা করলেন না; কেবল কখন, কিভাবে এবং কোথা থেকে। Therefore একটি খুব সংক্ষিপ্ত মূল্য, তাই:

ইউনিক্স এবং লিনাক্স অপারেটিং সিস্টেমগুলি একে অপরের থেকে পৃথক পৃথক ব্যবহারকারীর অ্যাকাউন্টের অধীনে চলমান প্রক্রিয়াগুলি অন্তরক করে। Icallyতিহাসিকভাবে, যদি কেউ সুপারইউসার হিসাবে দমন করা দমনকে নিতে সক্ষম হয় তবে যে কেউ তার পছন্দমতো কিছু করতে পারে। অন্যদিকে, একটি অননুমোদিত অ্যাকাউন্টের তত্ত্বাবধানে পরিচালিত একটি ডেমন কেবলমাত্র ফাইল, ডিরেক্টরি, ডিভাইস এবং সেই প্রক্রিয়াগুলিতে অ্যাক্সেস করতে পারে যা অপ্রতিযুক্ত অ্যাকাউন্টটি করতে পারে। পারস্পরিক অবিশ্বাস্য ডমন প্রোগ্রামগুলির একটি সিস্টেম যা বিভিন্ন ব্যবহারকারীর অ্যাকাউন্টের অধীনে চলছে এবং একে অপরের (অভ্যন্তরীণ, বিশ্বাসযোগ্য) ফাইল / ডিরেক্টরি / প্রক্রিয়া / ডিভাইসগুলিতে অ্যাক্সেস / নিয়ন্ত্রণ করতে অক্ষম, তাই ক্র্যাক করা এতটা কঠিন।

আরও পড়া


1

লিনাক্সে যখন আমরা কোনও পরিষেবা ইনস্টল করি তখন এটি তার পরিষেবার নাম বা এর অনুরূপ একটি ব্যবহারকারী তৈরি করে যাতে এটি অন্যের ফাইলে অ্যাক্সেস করতে না পারে।


1
এটি একটি সম্মেলন, তবে একেবারেই প্রয়োজনীয় নয় এবং অবশ্যই সর্বজনীন নয়। বস্তুত, এটা সত্যিই না যে সাধারণ আর ...
HalosGhost

1
@ হালসগোস্ট উহ? না, এটি একটি খুব সাধারণ সম্মেলন, এখনও শক্তিশালী হচ্ছে। এই উত্তরটি অসম্পূর্ণ তবে পুরোপুরি সঠিক।
গিলস 'দুষ্ট হওয়া বন্ধ করুন'

1
@ গিলিস, আমি বলিনি (বা এমনকি বোঝানোও) যে এটি ভুল ছিল। তবে এটি বেশিরভাগই পুরানো। আজকাল পরিষেবার একটি বিশাল অংশ (সিস্টেমডের আগমনের সাথে সাথে) কেবল পরিষেবা ফাইল। এখন এই কথাটি বলার অপেক্ষা রাখে না যে প্রতি-পরিষেবা ব্যবহারকারী অ্যাকাউন্টগুলির আর অস্তিত্ব নেই; তারা অবশ্যই। তবে, উদাহরণস্বরূপ, আমার পুরো সিস্টেমে কেবল 24 টি অ্যাকাউন্ট রয়েছে যেখানে আমার আরও প্রচুর পরিষেবা রয়েছে।
হালসগোস্ট

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