در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

آموزش لینوکس : مدیریت سیستم : قسمت 11 : ارتباط با اکتیودایرکتوری

سلام و وقت بخیر. در این جلسه به مبحث مدیریت کاربران Active Directory از طریق سیستم عامل لینوکسی خود میپردازیم. یکی از package هایی که میتوان برای این کار استفاده کرد pbis است. تا اونجایی که من میدونم در repository های پیش فرض centos وجود ندارد و باید یا repository را بروز رسانی کنیم یا فایل نصبی package را دانلود کرده و دستی نصبش کنیم. برای بروز رسانی repository خود از دستور زیر در centos استفاده کنید.

[root@CentOS6 ~]# wget -O /etc/yum.repos.d/pbiso.repo http://repo.pbis.beyondtrust.com/yum/pbiso.repo

چند ثانیه بیشتر بروز رسانی طول نمی کشد. پس از آن میتوانید pbis را نصب کنید.

[root@CentOS6 ~]# yum clean all
[root@CentOS6 ~]# yum install pbis-open

من یک windows server 2012 R2 دارم که روش Active Directory و DNS نصب شده. 2 نکته مهم این است که هر دو سیستم عامل centos و windows server باید از لحاظ زمانی با هم sync باشند. با vm tools این کار را میتوانید انجام دهید و دوم اینکه DNS سرور برای centos ، همون window server قرار داده شده. آی پی windows server رو دادم بهش به عنوان nameserver.پس از اینکه مطمئن شدید 2 تا سیستمتون به هم ارتباط دارن ( با یه پینگ ساده ) دستورات زیر رو توی ترمینال لینوکس وارد کنید. ( فایر وال ویندوز سرور رو خاموش کنید تا پینگ بده، آموزش ایجاد ارتباط بین لینوکس و ویندوز توی vmware تو نت ریخته )

[root@CentOS6 ~]# domainjoin-cli join winserver2012.ir Administrator
Joining to AD Domain:   winserver2012.ir
With Computer DNS Name: CentOS6.winserver2012.ir

Administrator@WINSERVER2012.IR's password: 
Warning: System restart required
Your system has been configured to authenticate to Active Directory for the first time.  It is recommended that you restart your system to ensure that all applications
recognize the new settings.

SUCCESS
[root@CentOS6 ~]# reboot

خط اول که یک دستور اتصال به دامینه، اسم دامین و اکانت ادمین رو باید وارد کنید. بعدش باید سیستم رو reboot کنید.

حالا اگر دستور زیر را در ترمینال وارد کنید، تمام کاربران سیستم لینوکسی و Domain را میبینید.

[root@centos6 ~]# getent passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
rtkit:x:499:496:RealtimeKit:/proc:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/cache/rpcbind:/sbin/nologin
saslauth:x:498:76:"Saslauthd user":/var/empty/saslauth:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
pulse:x:497:495:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
mohammad:x:500:500:mohammad:/home/mohammad:/bin/bash
test:x:501:501::/home/test:/bin/bash
dhcpd:x:177:177:DHCP server:/:/sbin/nologin
named:x:25:25:Named:/var/named:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
jim:x:502:502::/home/jim:/bin/bash
jack:x:503:100::/home/jack:/bin/bash
sally:x:504:100::/home/sally:/bin/bash
testuser:x:505:100::/home/testuser:/bin/bash
WINSERVER2012\administrator:PBIS:1237844468:1237844481::/home/local/WINSERVER2012/administrator:/bin/sh
WINSERVER2012\guest:PBIS:1237844469:1237844482::/home/local/WINSERVER2012/guest:/bin/sh
WINSERVER2012\krbtgt:PBIS:1237844470:1237844481::/home/local/WINSERVER2012/krbtgt:/bin/sh
WINSERVER2012\user1:PBIS:1237845088:1237844481:user1:/home/local/WINSERVER2012/user1:/bin/sh
WINSERVER2012\user2:PBIS:1237845089:1237844481:user2:/home/local/WINSERVER2012/user2:/bin/sh
[root@centos6 ~]# 

اولاش که همه کاربرای سیستم لینوکسی خودمه، چند خط آخر کاربرانیه که نوی Active Directory درست کردم. فرمتش واضحه ... ولی این اطلاعات از کجا میاد ؟؟ اگر کلمه passwd رو از فایل زیر در مسیر etc جستجو کنیم، خروجی زیر را میبینیم:

[root@centos6 ~]# grep passwd /etc/nsswitch.conf
#passwd:    db files nisplus nis
passwd:     files lsass
[root@centos6 ~]# 

فایل nsswitch مشخص میکند که چه سرویسی و از کجا برای مشخص کردن مواردی مثل host name و password و group استفاده بشه. این فایل خیلی توضیخ داره. میتونید فایل رو باز کنید تا همشو ببینید. پارامتر های زیادی داره. حالا همین یه تیکه ای که ما کشیدیم بیرون. خط اول که کامنته مشخص میکنه که خط پایینیش که دستوره، از چه اجرایی تشکیل شده. مثلا برای مشخص کردن پسورد ها ، ائل نوشته files، یعنی ابتدا فایل های local سیستم رو بگرد ( یعنی برو توی فایل etcpasswd و etcpasswd بگرد دنبال چیزی که گفتم. ) بعدش گفته lsass. اصل کار ما اینه. این میره از توی Active Directory اطلاعات کاربرا رو میکشه بیرون. حروفش از local security authority sub systems میاد. این همون پروسه ایه که باهاش به Active Directory وصل شدیم. اگر شما دارید از centos 7 به بالا استفاده میکنید ( که من استفاده نمیکنم ) بعد از files یه sss هم میبینید به معنی system security services هستش که توی این نسخه های جدید centos استفاده شده و توی پیش فرض های سیستم عامله.

هر خط فایل nsswitch مشخص میکند که برای جمع آوری چه اطلاعاتی ، از چه منابعی استفاده کند. این فایل درمورد موارد زیر میتواند به جستجوی اطلاعات بپردازد:

automount Automount (/etc/auto.master and /etc/auto.misc)
bootparams Diskless and other booting options (See the bootparam man page.)
ethers MAC address
group Groups of users (/etc/group )
hosts System information (/etc/hosts )
netgroup Netgroup information (/etc/netgroup )
networks Network information (/etc/networks )
passwd User information (/etc/passwd )
protocols Protocol information (/etc/protocols )
publickey Used for NFS running in secure mode
rpc RPC names and numbers (/etc/rpc )
services Services information (/etc/services )
shadow Shadow password information (/etc/shadow )

بعد از مشخص کردن نوع اطلاعات، مشخص میکند که از چه طریقی آنها را پیدا کند.

files  = > Searches local files such as /etc/passwd and /etc/hosts
nis  => Searches the NIS database; yp is an alias for nis
dns => Queries the DNS (hosts queries only)
compat ± => syntax in passwd, group, and shadow files

پس به ترتیبی که مشخص کردیم، میرود از منابعی که مشخص کردیم، پرس و جو میکند. دیدیم بالاتر که اول نوشته بود files و سپس lsass. اول برو سراغ files بعدش lsass.

حالا بیاید بریم سر یه مبحث دیگه. مثلا کاربری که در Active Directory تعریف شده بتونه یه home directory توی سیستم لینوکسی ما داشته باشه.

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

[root@centos6 ~]# mkdir /home/user1

[root@centos6 ~]# chown winserver2012\\user1 /home/user1/

[root@centos6 ~]# ls -ld /home/user1/
drwxr-xr-x. 2 WINSERVER2012\user1 root 4096 Aug 23 21:18 /home/user1/

[root@centos6 ~]# su - winserver2012\\user1
-sh-4.1$ 
-sh-4.1$ 
-sh-4.1$ id
uid=1237845088(WINSERVER2012\user1) gid=1237844481(WINSERVER2012\domain^users) groups=1237844481(WINSERVER2012\domain^users) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
-sh-4.1$ 

یه پوشه پیش فرض واسه کاربران درست کرده بود که توی خروجی دستور getent دیدید. اگر اشتباه نکنم اون پوشه تا زمانی که کاربر log in نکنه ایجاد نمیشه. حالا علاوه بر اون یه پوشه اگر بخوایم درست کنید به ترتیب بالا انجامش میدیم. پس از درست کردن پوشه باید ماکیت اونو با دستور chown به معنی change ownership تغییر بدیم. به ساختار دستور دقت کنید چجوری نوشتم. بعدش با دستور su کاریری که هستم رو تغییر دادم. چون روت بودم ازم رمز نخواست. حالا با نام کاریری user1 که در AD تعریف شده، وارد سیستم شدم.

-sh-4.1$ 
-sh-4.1$ 
-sh-4.1$ whoami
WINSERVER2012\user1
-sh-4.1$ 
-sh-4.1$ pwd
/home/local/WINSERVER2012/user1
-sh-4.1$ 
-sh-4.1$ 
-sh-4.1$ echo $PATH
/usr/lib/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin
-sh-4.1$ 
-sh-4.1$ 

بسیار خوب برای این جلسه کافیه. ادامشو قسمت بعد انشاالله.

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

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

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

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

#دوره_آموزشی_linux_فارسی #نوشتن_shell_script_در_لینوکس #آموزش_لینوکس_فارسی #آموزش_linux_مقدماتی #آموزش_دستورات_مقدماتی_لینوکس #استفاده_از_ldap_در_لینوکس #آموزش_shell_scripting_در_لینوکس #دوره_آموزشی_shell_scripting_در_لینوکس #نوشتن_یک_shell_script_ساده
عنوان
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
1 نظر
محمد نصیری

عالی بود عالی ... حتما استفاده میکنم

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

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....