تا %60 تخفیف خرید برای 6 نفر با صدور مدرک فقط تا
00 00 00

آموزش لینوکس : مدیریت سیستم : قسمت 10 : Managing Groups

سلام و وقت بخیر. هماطور که گفتم، این جلسه در مورد گروه ها صحبت میکنیم. اصلی ترین فایل اطلاعات گروه ها، فایل group در زیر شاخه etc است. آن را باز کنید.

[root@CentOS6 ~]# cat /etc/group
root:x:0:
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
sys:x:3:bin,adm
adm:x:4:adm,daemon
tty:x:5:
disk:x:6:
lp:x:7:daemon
mem:x:8:
kmem:x:9:
wheel:x:10:
mail:x:12:mail,postfix
uucp:x:14:
man:x:15:
games:x:20:
gopher:x:30:
video:x:39:
dip:x:40:
ftp:x:50:
lock:x:54:
audio:x:63:
nobody:x:99:
users:x:100:
dbus:x:81:
utmp:x:22:
utempter:x:35:
ctapiusers:x:499:
desktop_admin_r:x:498:
desktop_user_r:x:497:
avahi-autoipd:x:170:
floppy:x:19:
vcsa:x:69:
rtkit:x:496:
rpc:x:32:
cdrom:x:11:
tape:x:33:
dialout:x:18:
saslauth:x:76:
haldaemon:x:68:haldaemon
pulse:x:495:
pulse-access:x:494:
fuse:x:493:
postdrop:x:90:
postfix:x:89:
avahi:x:70:
ntp:x:38:
rpcuser:x:29:
nfsnobody:x:65534:
gdm:x:42:
stapusr:x:156:
stapsys:x:157:
stapdev:x:158:
sshd:x:74:
tcpdump:x:72:
slocate:x:21:
mohammad:x:500:
test:x:501:
dhcpd:x:177:
named:x:25:
apache:x:48:
ali:x:502:
reza:x:503:
[root@CentOS6 ~]# 

این فایل 4 ستون دارد که مانند فایل passwd با : جدا شده اند.

1- نام گروه

2- رمز گروه که یه جای آن x آمده

3- مقدار group id

4- لیست اعضا که با ، از هم جدا شده اند.

مثل فایل passwd که یک فایل shadow هم دارد، فایل group هم یک shadow دارد ولی اسم آن gshadow است. آن را در etc پیدا میکنید

[root@CentOS6 ~]# cat /etc/gshadow
root:::
bin:::bin,daemon
daemon:::bin,daemon
sys:::bin,adm
adm:::adm,daemon
tty:::
disk:::
lp:::daemon
mem:::
kmem:::
wheel:::
mail:::mail,postfix
uucp:::
man:::
games:::
gopher:::
video:::
dip:::
ftp:::
lock:::
audio:::
nobody:::
users:::
dbus:!::
utmp:!::
utempter:!::
ctapiusers:!::
desktop_admin_r:!::
desktop_user_r:!::
avahi-autoipd:!::
floppy:!::
vcsa:!::
rtkit:!::
rpc:!::
cdrom:!::
tape:!::
dialout:!::
saslauth:!::
haldaemon:!::haldaemon
pulse:!::
pulse-access:!::
fuse:!::
postdrop:!::
postfix:!::
avahi:!::
ntp:!::
rpcuser:!::
nfsnobody:!::
gdm:!::
stapusr:!::
stapsys:!::
stapdev:!::
sshd:!::
tcpdump:!::
slocate:!::
mohammad:!!::
test:!::
dhcpd:!::
named:!::
apache:!::
ali:!::
reza:!::
[root@CentOS6 ~]# 

این فابل هم 4 ستون دارد که با : از هم جدا شدند.

1- نام گروه

2- رمز hash شده گروه

3- اسامی ادمین های گروه که با ، حدا میشوند

4- اسامی اعضای گروه

فایل manula این دو تا فبلی که ذکر شد رو هم با دستور man 5 group و man 5 gshadow ببینید.

یادتونه جلسه قبل برای کاربران group id پیش فرض مشخص کردیم ولی وقتی کاربر ساختیم از اون پیش فرض تبعیت نکرد ؟؟ رفتید سرچ کنید ؟؟ نرفتید دیگه !!! هیچ کی نگفت چرا اینجوری شد... خودم میگم حالا... گوش کنید پس.

دیدید وقتی یه کاربر اضافه کردیم، عضو گروهی به اسم خودش شد. به این گروه هایی که اینجوری درست میشن میگن private groups. پس private group در حالت عادی فعال است و باعث میشود هر کاربر جدیدی عضو گروه خودش شود و از مقدار پیش فرض تبعیت نکند. اگر غیر فعالش کنیم از مقدار پیش فرض تبعیت میکند.

یه کد های زیر دقت کنید.

[root@CentOS6 ~]# useradd -m jim
[root@CentOS6 ~]# id jim
uid=502(jim) gid=502(jim) groups=502(jim)
[root@CentOS6 ~]# grep USERGROUP /etc/login.defs
USERGROUPS_ENAB yes
[root@CentOS6 ~]# useradd -g users -m jack
[root@CentOS6 ~]# id jack
uid=503(jack) gid=100(users) groups=100(users)
[root@CentOS6 ~]# 

با دستور useradd و سویچ m- یک کاربر درست کردم. اگر مقادیر id را برای اون چک کنم، میبینم که مقدار پیش فرض را نگرفته. حالت private groups در فایل login.defs تعریف میشود. در حالت عادی هم فعال است که مشاهده میکنید. حال اگر این بار یک کاربر دیگر اضافه کنم ولی با سویچ g- و کلمه user بعدش id را چک کنم میبینم که از مقدار پیش فرض تبعیت کرده. در این حالت با سویچ g- به معنی primary group این حالت فعال بودن private groups را موقتا نادیده گرفتیم.

دو مفهوم جدید اینجا بوجود می آید. g- برای primary groups و G- برای secondary groups. هر کدام به چه معناست ؟؟

یکم توضیحش ظریفه اینجا. دقت کنید. امیدوارم راحت متوجه بشید. وقتی یک کاربر یک فایل را باز میکنه یا برنامه ای را اجرا میکنه یا هر چی دیگه، به دسترسی های primary group اون بستگی داره. وقتی یک کاربر فایل درست میکنه، اونو با دسترسی و مالکیت primary group درست میکنه. هر کس دیگه ای هم که توی اون primary group باشه اگه دسترسی تعریف شده باشه، میتونه اون فایل رو ببینه یا بخونه یا اجرا کنه. مثلا یک primary group دارم به اسم admins... هر کی ادمین بخش های مختلف هستش رو عضو این گروه کردم. هر کس در چارچوب این گروه اجازه دسترسی به منابع مختلف رو توی این گروه داره و هر کسی تو این گروه فایلی درست کنه یا مسیری بسازه مالکیت اون مسیر یا فایل به primary group برمیگرده، یعنی مثلا این فابل متعلق به گروه ادمین هاست، چون یکی که عضو این گروه بوده اینو درست کرده. ولی حالا secondary group چیه؟ حالا برای هر کاربر یک یا چند secondary group هم میشه تعریف کرد.

[root@CentOS6 ~]# usermod -G mali,hr  jack
[root@CentOS6 ~]# id jack
uid=503(jack) gid=100(users) groups=100(users),12(mali),504(hr)
[root@CentOS6 ~]# 

برای کاربر دو گروه مالی و منابع انسانی رو به عنوان secondary groups مشخص کردم. در خروجی دستور id میبینیم که گروه user با شماره 100 به عنوان primary group برای jack تعریف شده، 2 گروه mali و hr هم به عنوان secondary group، علاوه بر خود گروه users. حالا jack دسترسی ها و امکانات گروه hr و mali را هم دارد و میتواند با سطح دسترسی آنها کاری انجام دهد، میتواند به فایل های در مالکیت این گروه ها دسترسی داشته باشد، ولی اگر فایلی درست کند با دسترسی primary group درست میشود. پس هر کاربر میتواند در یک لحظه فقط و فقط یک primary group ولی چندین secondary group داشته باشد. اصطلاحا secondary group ها باعث ایجاد addition access برای کاربر میشوند.

به دستورات زیر دقت کنید.

[root@CentOS6 ~]# useradd -N -m sally
[root@CentOS6 ~]# id sally
uid=504(sally) gid=100(users) groups=100(users)
[root@CentOS6 ~]# 

هنگام ایجاد کاربر با سویچ N- به معنی no user group میتوان از تنظیمات پیش فرض استفاده کرد.

به دستورات زیر دقت کنید.

[root@CentOS6 ~]# grep hr /etc/group
hr:x:504:jack
[root@CentOS6 ~]# grep mali /etc/group
mali:x:503:jack
[root@CentOS6 ~]# grep mali /etc/gshadow
mali:!::jack
[root@CentOS6 ~]# id sally
uid=504(sally) gid=100(users) groups=100(users)
[root@CentOS6 ~]# gpasswd -M sally mali
[root@CentOS6 ~]# id sally
uid=504(sally) gid=100(users) groups=100(users),503(mali)
[root@CentOS6 ~]# grep mali /etc/group
mali:x:503:sally
[root@CentOS6 ~]# usermod -G  mali jack
[root@CentOS6 ~]# grep mali /etc/group
mali:x:503:sally,jack
[root@CentOS6 ~]# gpasswd -M sally mali
[root@CentOS6 ~]# grep mali /etc/group
mali:x:503:sally
[root@CentOS6 ~]# usermod -G  mali jack
[root@CentOS6 ~]# grep mali /etc/group
mali:x:503:sally,jack
[root@CentOS6 ~]# 

حالا فایل های group و gshadow را نگاه کنید. برای گروه mali عضو جدیدی تعریف شده است ولی رمزی برای گروه تعذیف نشده. با دستور gpasswd هم میتوان برای کاربر secondary group تعریف کرد ولی با دستور usermod فرق دارد. تفاوت در کد بالا واضح است. انگار دستور gpasswd با سویچ M- به معنای member list لیست اعضای گروه ها overwrite میکند. با دقت استفاده کنید.

به کد های زیر دقت کنید. اگر میخواهیم که خود کاربر بتواند وارد گروهی شود، میتوانیم برای گروه رمز بگذاریم. البته این عضویت در گروه موقتی است و با خروج کاربر، به گروه قبلی خود بازمیگردد. برای عضویت دائمی میدانید چه باید بکنبم. یه مثال ساده پایین زدم.

[root@CentOS6 ~]# groupadd security
[root@CentOS6 ~]# gpasswd security
Changing the password for group security
New Password: 
Re-enter new password: 
[root@CentOS6 ~]# grep security /etc/gshadow
security:$6$ydWgczUOpFI0t/iB$Xzvy/j4vVYerZ53JBSH.UP3aOocMrQHdO7cCzhLfZarWVt80/MlA08z7..q17dbRptQMrOCepDxo4/saLn2Nr1::
[root@CentOS6 ~]# useradd -N testuser
[root@CentOS6 ~]# id testuser
uid=505(testuser) gid=100(users) groups=100(users)
[root@CentOS6 ~]# passwd testuser
Changing password for user testuser.
New password: 
BAD PASSWORD: it is WAY too short
BAD PASSWORD: is too simple
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@CentOS6 ~]# su - testuser
[testuser@CentOS6 ~]$ 
[testuser@CentOS6 ~]$ whoami
testuser
[testuser@CentOS6 ~]$ pwd
/home/testuser
[testuser@CentOS6 ~]$ 
[testuser@CentOS6 ~]$ 
[testuser@CentOS6 ~]$ id
uid=505(testuser) gid=100(users) groups=100(users) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[testuser@CentOS6 ~]$ 
[testuser@CentOS6 ~]$ newgrp security
Password: 
[testuser@CentOS6 ~]$ id
uid=505(testuser) gid=505(security) groups=100(users),505(security) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[testuser@CentOS6 ~]$ 
[testuser@CentOS6 ~]$ exit
exit
[testuser@CentOS6 ~]$ id
uid=505(testuser) gid=100(users) groups=100(users) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[testuser@CentOS6 ~]$ 
[testuser@CentOS6 ~]$ 

اساتید اگه احساس میکنن لازمه، توضیح تکمیلی بدن، خوشحال میشیم.

پایان قسمت دوم از بخش سوم

نویسنده : سید محمد باقر موسوی

منبع : جزیره لینوکس و سیستم های متن باز وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است

عنوان
1 آموزش لینوکس : مدیریت سیستم : قسمت 1 : Shell سفارشی : متغیرها رایگان
2 آموزش لینوکس : مدیریت سیستم قسمت 2 : Shell سفارشی : تنظیمات Shell رایگان
3 آموزش لینوکس : مدیریت سیستم : قسمت 3 : Shell سفارشی : Aliases رایگان
4 آموزش لینوکس : مدیریت سیستم : قسمت 4: Shell سفارشی: Login Scripts رایگان
5 آموزش لینوکس : مدیریت سیستم : قسمت 5 : ایجاد اسکریپت رایگان
6 آموزش لینوکس : مدیریت سیستم : قسمت 5 : Read User Input رایگان
7 آموزش لینوکس : مدیریت سیستم : قسمت 6 : IF Statement رایگان
8 آموزش لینوکس : مدیریت سیستم : قسمت 7 : Case Statement رایگان
9 آموزش لینوکس : مدیریت سیستم : قسمت 8 : Loops رایگان
10 آموزش لینوکس : مدیریت سیستم : قسمت 9 : Managing Users رایگان
11 آموزش لینوکس : مدیریت سیستم : قسمت 10 : Managing Groups رایگان
12 آموزش لینوکس : مدیریت سیستم : قسمت 11 : ارتباط با اکتیودایرکتوری رایگان
13 آموزش لینوکس : مدیریت سیستم : قسمت 12 : OpenLDAP رایگان
14 آموزش لینوکس : مدیریت سیستم : قسمت 13 : Cron AnaCron و Batch رایگان
15 آموزش لینوکس : مدیریت سیستم : قسمت 14 : آشنایی با IPTables رایگان
زمان و قیمت کل 0″ 0
0 نظر

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر