কোন প্যাকেজটি ব্যবহারকারী তৈরি করেছে তা কীভাবে পরীক্ষা করবেন?


14

এটি সন্দেহ করা হয় যে কিছু প্যাকেজগুলির স্ক্রিপ্ট ইনস্টল করার সময় চলতে থাকে যা ব্যবহারকারীর অ্যাকাউন্ট তৈরি করে /etc/passwd। কোন প্যাকেজ একটি নির্দিষ্ট ব্যবহারকারী তৈরি করেছে তা আমি কীভাবে পরীক্ষা করতে পারি?

উত্তর:


16

প্যাকেজটি dpkg(সহ apt install) ইনস্টল করা থাকলে এটি যুক্তিসঙ্গতভাবে নির্ভরযোগ্যভাবে কাজ করবে । ডিফল্ট উবুন্টু ইনস্টলেশন এবং তাদের তৈরি করা প্যাকেজটিতে ব্যবহারকারীর তালিকার জন্য মুড়ুর উত্তর দেখুন । এই ব্যবহারকারীদের জন্য, এই পদ্ধতিটি কোনও আউটপুট উত্পাদন করবে না।

আপনি কমান্ডটি ব্যবহার করতে পারেন:

grep -RlE '(adduser|useradd).*systemd' /var/lib/dpkg/info --include='*inst' | sed -r 's:.*/(.*)\.[-a-z]+inst:\1:'

<user>আপনার আগ্রহী ব্যবহারকারীর নামটি প্রতিস্থাপন করুন , উদাহরণস্বরূপ,systemd

এই অনুসন্ধান preinstএবং postinstপরিচিত সব প্যাকেজ স্ক্রিপ্ট dpkgজন্য adduserঅথবা useradd, কমান্ড প্রশ্নে ব্যবহারকারী দেখুক প্যাকেজ ব্যবহারকারী তৈরি করার জন্য দায়ী। ফলাফলটি পাইপ করা হয় যাতে এটি স্ক্রিপ্ট ফাইলের পুরো নামের পরিবর্তে কেবল প্যাকেজের নামই দেয় returns

ব্যাখ্যা

  • grep -RlE পুনরাবৃত্তভাবে অনুসন্ধান করুন এবং কেবল ম্যাচযুক্ত ফাইলগুলির নাম মুদ্রণ করুন, বর্ধিত নিয়মিত এক্সপ্রেশন ব্যবহার করুন
  • '(adduser|useradd).*<user>' /var/lib/dpkg/info --include='*inst'অনুসন্ধান adduserবা useraddকমান্ড ব্যবহারকারী আপনাকে একই লাইনে খুঁজতে চান ( .*তাদের মধ্যে যে কোন অক্ষর মেলে করবে কোনো কমান্ড অপশন সংক্রামক) ডিরেক্টরির মধ্যে যেখানে dpkgদোকানে স্ক্রিপ্ট, ফাইল যার নামের সাথে শেষinst
  • sed -r 's:.*/(.*)\.[-a-z]+inst:\1:'/পুরো পথ এবং শেষ .preinstবা .postinstপ্রসারের সর্বশেষ সহ & আগে সমস্ত কিছু কেটে ফেলুন

findএখানে ব্যবহার করার চেয়ে সুন্দর ও দ্রুততর অনুসন্ধানের পরামর্শ দেওয়ার জন্য @ মুরুকে ধন্যবাদ জানাই :)


preinstসেই স্ক্রিপ্টটিতে কিছু প্যাকেজ ব্যবহারকারী তৈরি করার কারণে আপনারও পরীক্ষা করা উচিত । তবে আমি ধারণাটি পেয়েছি তাই আমি এটি গ্রহণ করব।
সাইকেল

@ কাইকার হ্যাঁ ধন্যবাদ :) আমি সম্পাদনা করব ... আমি এখনই এটি খতিয়ে দেখছি যে আমি তাদের সবাইকে ধরতে পারি কিনা
জান্না

grep -Rl 'adduser.*<user>' /var/lib/dpkg/info --include='*inst'find -exec grepজিনিস সহজ করতে ।
মুরু

ধন্যবাদ @muru সন্ত্রস্ত যে ... (এখন আমি শুধু প্রয়োজন basename -sগ্রহণ করতে ওয়াইল্ডকার্ড / Regex ...) তাই আমি এটা প্রি ও পোস্ট প্রত্যয় Inst কেটে (কিন্তু আমি adduser সঙ্গে কোনো preinst স্ক্রিপ্ট খুঁজে পাইনি করতে পারেন, যাতে অসহায়তা )
জান্না

@ জান্না দেবিয়ান পলিসি সুপারিশ করে postinst, সুতরাং আপনি যেগুলি ব্যবহার করেন তা খুঁজে পাওয়ার সম্ভাবনা নেই preinst(তবে আমি মনে করি বিরল কেসটি উপস্থিত থাকতে পারে)।
মুড়ু

15

এখানে সাধারণ- adduserসংযোজিত ব্যবহারকারী এবং গোষ্ঠীগুলির জন্য একটি গুরুত্বপূর্ণ ব্যতিক্রম রয়েছে : যেগুলি উবুন্টুর সাথে ডিফল্টরূপে আসে। এগুলি base-passwdপ্যাকেজ দ্বারা সরবরাহ করা হয় । এই প্যাকেজটি দ্বারা যুক্ত ব্যবহারকারী এবং গোষ্ঠীর একটি তালিকা দেওয়া হয়েছে (এবং বর্ণিত) /usr/share/doc/base-passwd/users-and-groups.{html,txt.gz}। তালিকাটি হ'ল:

ব্যবহারকারীরা (সাধারণত সম্পর্কিত গ্রুপ সহ)

root    man     majordom    irc         gdm
daemon  lp      postgres    gnats       saned
bin     mail    www-data    nobody      klog
sys     news    backup      messagebus  syslog
sync    uucp    operator    postfix
games   proxy   list        haldaemon

গোষ্ঠী (সম্পর্কিত ব্যবহারকারী ছাড়া)

adm     fax     audio       staff       sshd
tty     voice   src         users       fetchmail
disk    cdrom   shadow      lpadmin     cupsys
kmem    floppy  utmp        sasl        nogroup
dialout tape    video       scanner
dip     sudo    plugdev     ssh

README ( /usr/share/doc/base-passwd/README) প্যাকেজটি ইউআইডি সহ 60000-64999 পরিসরে কিছু ব্যবহারকারীকে তালিকাভুক্ত করে এবং উল্লেখ করে যে এগুলি প্যাকেজগুলি তৈরি করে।

আরও দেখুন:

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