উত্তর:
man(কমান্ড, ব্যবহারকারী নয়) একটি সহায়তা অ্যাপ্লিকেশন। অ্যাপ্লিকেশনগুলি তাদের প্যাকেজগুলিতে ম্যান পৃষ্ঠাগুলি সরবরাহ করে তবে manসেগুলি কোথায় এবং তারা কী সহায়তা সরবরাহ করে তাও জানতে হবে। জিনিসগুলিকে গতি বাড়ানোর জন্য - সুতরাং manআপনি টাইপ করার সময় পুরো ফাইল সিস্টেমটি অনুসন্ধান করবেন না man <command>- এই ম্যান পেজগুলি ডাকা একটি আদেশ দ্বারা একটি ডাটাবেসে সূচীভূত হয় mandb।
উবুন্টুতে mandbজিএনইউ জিডিবিএম ডাটাবেসে সূচকগুলি সঞ্চয় করে /var/cache/man/index.db(এবং একই ডিরেক্টরিতে কয়েকটি ভাষা নির্দিষ্ট সংস্করণ)। এটি একটি মূল-মানের হ্যাশিং ডাটাবেস যা মেমক্যাসের সাথে আলাদা নয়, বা অনুরূপ ধারণাগুলিতে আরও একশত বাস্তবায়ন। এটি বাইনারি, হালকা এবং দ্রুত। আমি এটির সাথে কীভাবে খেলব তার উদাহরণটি ফেলে দেব।
এই সূচকটি উবুন্টুতে প্রতিদিন চালানো হবে /etc/cron.daily/man-db। পুরো স্ক্রিপ্টটি রুট হিসাবে চালিত হয় এবং প্রথমে কিছু পরিষ্কার করে তবে ডানদিকে আমরা দেখতে পাই ব্যবহারকারী mandbহিসাবে চালানো man:
# --pidfile /dev/null so it always starts; mandb isn't really a daemon,
# but we want to start it like one.
start-stop-daemon --start --pidfile /dev/null \
--startas /usr/bin/mandb --oknodo --chuid man \
$iosched_idle \
-- --no-purge --quiet
এটি গোষ্ঠী পরিবর্তন করছে না, এ কারণেই সমস্ত গ্রুপের মালিকানা /var/cache/manএখনও মূল are
তবে কেন একেবারেই mandbআলাদা ব্যবহারকারী হিসাবে চালায়? এটি (সম্ভবত) পাশাপাশি চালাতে পারে rootতবে এটি বিভিন্ন উত্স থেকে ইনপুট প্রক্রিয়া করছে (দেখুন manpath)। তার নিজস্ব ব্যবহারকারী হিসাবে চালানো প্রক্রিয়াটি আরও খারাপভাবে প্রবাহিত হওয়া থেকে সিস্টেমকে অন্তরক করে - এটি ত্রুটিযুক্ত, দূষিত বা দূষিত ম্যান পৃষ্ঠা দ্বারা শোষণ করা হচ্ছে।
সবচেয়ে খারাপ যেটি ঘটতে পারে তা কেবল manপৃষ্ঠাগুলির সূচকেই প্রভাবিত করে । বু হু আপনি নিশ্চিত করতে পারেন যে এরকম কিছু দিয়ে:
sudo -u man find / -writable 2>/dev/null
এবং কোনও ব্যবহারকারীর সিস্টেমে কতটা ক্ষতি করতে পারে তা দেখার জন্য আপনি এই পদ্ধতির ব্যবহার করতে পারেন। আপনার ফাইল অনুমতিগুলির নিরীক্ষণ করা ভাল ধারণা (আমি কেবলমাত্র খুঁজে পেয়েছি যে কোনও ব্যবহারকারী আমার পুরো সংগীত সংগ্রহ মুছতে পারে, উদাহরণস্বরূপ)।
আপনি দিয়ে ডাটাবেসে উঁকি দিতে পারেন accessdb। এখানে কয়েকটি এলোমেলো রেকর্ড রয়েছে:
$ accessdb | shuf -n3
fpurge -> "- 3 3 1380819168 A - - gz purge a stream"
fcgetlangs -> "FcGetLangs 3 3 1402007131 A - - gz Get list of languages"
ipython -> "- 1 1 1393443907 A - - gz Tools for Interactive Computing in Python."
উপরের দিক থেকে সম্পূর্ণ পরিষ্কার না হলেও, সেখানে প্রকৃতপক্ষে ট্যাব-বিভক্ত ক্ষেত্রগুলি রয়েছে:
<name> -> <ext> <sec> <mtime> <ID> <ref> <comp> <whatis>
প্রযুক্তিগত ম্যানুয়ালটিতে আপনি ক্ষেত্রের প্রকৃত বিষয়বস্তু সম্পর্কে আরও পড়তে পারেন ।