ইউনিক্স গ্রুপ ডেটাবেস এক্সেস করতে হলে, আমাদের grp মডিউল ব্যবহার করতে হবে। শ্যাডো পাসওয়ার্ড ডেটাবেস এন্ট্রিগুলো টাপল-লাইক অবজেক্ট।
grp মডিউল ব্যবহার করতে হলে, আমাদের এটি ইম্পোর্ট করতে হবে -
import grp
grp ডেটাবেসের অ্যাট্রিবিউটগুলো -
| Index | Attribute & Description |
|---|---|
| 0 | gr_name গ্রুপের নাম |
| 1 | gr_passwd গ্রুপের এনক্রিপ্টেড পাসওয়ার্ড। (সাধারণত খালি) |
| 2 | gr_gid গ্রুপ আইডি (নিউমেরিক) |
| 3 | gr_mem গ্রুপ ইউজারদের একটি লিস্ট |
গ্রুপ অবজেক্টে, gid একটি ইন্টিজার। গ্রুপ নাম এবং পাসওয়ার্ড স্ট্রিং। মেম্বার লিস্ট স্ট্রিংয়ের একটি লিস্ট।
এই মডিউলের কিছু মেথড -
grp.getgrgid(gid) মেথড
এই মেথড দেওয়া গ্রুপ আইডি থেকে গ্রুপ ডেটাবেস এন্ট্রি ফেরত দেবে। যখন gid-র সাথে কোনো গ্রুপ নেই, তবে এটি KeyError উত্থাপন করবে।
grp.getgrnam(name) মেথড
এই মেথড দেওয়া গ্রুপ নাম থেকে গ্রুপ ডেটাবেস এন্ট্রি ফেরত দেবে। যখন নামের সাথে কোনো গ্রুপ নেই, তবে এটি KeyError উত্থাপন করবে।
grp.getgrall() মেথড
এই মেথড সকল গ্রুপ ডেটাবেস এন্ট্রি ফেরত দেবে।
উদাহরণ কোড
import grp
print("ID: 4: " + str(grp.getgrgid(4)) + '\n') # গ্রুপ আইডি ব্যবহার করে পাসওয়ার্ড ডিটেইল
print("cdrom group: " + str(grp.getgrnam('cdrom')) + '\n') # গ্রুপ নাম ব্যবহার করে পাসওয়ার্ড ডিটেইল
for entry in grp.getgrall():
print("Group Name: " + entry[0] + "\t\tMembers: " + str(entry.gr_mem))
আউটপুট
$ sudo python3 example.py ID: 4: grp.struct_group(gr_name='adm', gr_passwd='x', gr_gid=4, gr_mem=['syslog', 'unix_user']) cdrom group: grp.struct_group(gr_name='cdrom', gr_passwd='x', gr_gid=24, gr_mem=['unix_user']) Group Name: root Members: [] Group Name: daemon Members: [] Group Name: bin Members: [] Group Name: sys Members: [] Group Name: adm Members: ['syslog', 'unix_user'] Group Name: tty Members: [] Group Name: disk Members: [] Group Name: lp Members: [] Group Name: mail Members: [] Group Name: news Members: [] Group Name: uucp Members: [] Group Name: man Members: [] Group Name: proxy Members: [] Group Name: kmem Members: [] Group Name: dialout Members: [] Group Name: fax Members: [] Group Name: voice Members: [] Group Name: cdrom Members: ['unix_user'] Group Name: floppy Members: [] Group Name: tape Members: [] Group Name: sudo Members: ['unix_user'] Group Name: audio Members: ['pulse'] Group Name: dip Members: ['unix_user'] Group Name: www-data Members: [] Group Name: backup Members: [] ………… ………… …………