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

و

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

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

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

[root@CentOS6 ~]# cat /etc/default/useradd 
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE-MAIL-SPOOL=yes

[root@CentOS6 ~]# 

شاید اگر این فایل را تا بحال ندیده باشید باز هم حدس زدن معنی بعضی از عناصر آن کار راحتی باشد. ولی بگذارید تک تک آنها را بررسی کنیم.

GROUP=100 : هنگامی که کاربر ایجاد شد مقدار group id او را برابر 100 قرار بده. ( چرا 100 ؟ )

HOME=home : آدرس home directory کاربر را از home شروع کن.

INACTIVE=-1 : عدد 1- یعنی disable است. این مشخصه یعنی اگر پسورد کاربر منقضی شد، کاربر تا چند روز فرصت دارد پسورد خود را عوض کند. در این مدت همان پسورد قدیمی او قابل استفاده است ولی اگر مدت تعیین شده به پایان رسد، کاربر قادر به ورود به سیستم نخواهد بود. مثلا اگر این مقدار برابر 4 باشد یعنی کاربر 4 روز فرصت دارد و بعد از آن اگر رمز را عوض نکرده باشد دیگر اجازه ورود ندارد.

EXPIRE= : اگر میخواهید اکانت کاربر پس از مدت مشخصی از بین برود، به این مشخصه، مقدار زمان دلخواه خود را بدهید.

SHELL=binbash : آدرس شل پیش فرض کاربر را مشخص میکند.

SKEL=etcskel : مقدار محتویات پیش فرض داخل home directory کاربر را مشخص میکند.

CREATEMAILSPOOL=yes : برای کاربر صندوق میل درست کند یا نه.

حالا محتویات skel را ببینید.

[root@CentOS6 etc]# cd /etc/skel
[root@CentOS6 skel]# ls -a
.  ..  .bash_logout  .bash_profile  .bashrc  .gnome2  .mozilla
[root@CentOS6 skel]# 

به یک روش دیگر هم میتوان مقادیر پیش فرض ایجاد کاربر را دید. استفاده از سویچ D- دستور useradd :

[root@CentOS6 etc]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
[root@CentOS6 etc]# 

حال اطلاعات کاربران کجا ذخیره میشود ؟؟ احتمالا با فایل معروف passwd آشنا هستید. اطلاعات هویتی کاربران در این فایل به مسیر etcpasswd ذخیره میشود. اما در حالت عادی رمز کاربران در این فایل نیست. رمز hash شده کاربران در فایل etcshadow قرار دارد.

برای برگرداندن رمز ها از shadow به passwd از دستور pwunconv و برای دوباره برگرداندن رمز ها از passed به shadow از دستور pwconv استفاه کنید.

با دستور cat فایل passwd را باز کنید.

[root@CentOS6 etc]# 
[root@CentOS6 etc]# cat /etc/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
[root@CentOS6 etc]# 

همانطور که مشخص است، این فایل 7 ستون دارد که با : از هم جدا شدند. حال هر کدام چیست ؟؟

1- نامی که کاربر با آن log in میکند

2- کاراکتر x به جای رمز hash شذه کاربر. اگر از دستور pwunconv استفاده کنیم، رمز ها جای x مینشینند.

3- مقدار user id

4- مقدار group id

5- مقدار کامل نام کاربر یا کامنت

6- آدرس home directory کاربر

7- آدرس شل تعیین شده برای کاربر

حال فایل shadow را با دستور cat باز کنید.

[root@CentOS6 etc]# cat /etc/shadow
root:$6$yUzDwtnycAln2hCt$Ut8TIzgr7PEIB.FYoqHR4PhKz7L3sG4wquDWlYRMZ42a0Gj7TI46xsv065.eCriDTFqqI.CiYOa0v.xpKamI7/:17034:0:99999:7:::
bin:*:17034:0:99999:7:::
daemon:*:17034:0:99999:7:::
adm:*:17034:0:99999:7:::
lp:*:17034:0:99999:7:::
sync:*:17034:0:99999:7:::
shutdown:*:17034:0:99999:7:::
halt:*:17034:0:99999:7:::
mail:*:17034:0:99999:7:::
uucp:*:17034:0:99999:7:::
operator:*:17034:0:99999:7:::
games:*:17034:0:99999:7:::
gopher:*:17034:0:99999:7:::
ftp:*:17034:0:99999:7:::
nobody:*:17034:0:99999:7:::
dbus:!!:17034:0:99999:7:::
avahi-autoipd:!!:17034:0:99999:7:::
vcsa:!!:17034:0:99999:7:::
rtkit:!!:17034:0:99999:7:::
rpc:!!:17034:0:99999:7:::
saslauth:!!:17034:0:99999:7:::
haldaemon:!!:17034:0:99999:7:::
pulse:!!:17034:0:99999:7:::
postfix:!!:17034:0:99999:7:::
avahi:!!:17034:0:99999:7:::
ntp:!!:17034:0:99999:7:::
rpcuser:!!:17034:0:99999:7:::
nfsnobody:!!:17034:0:99999:7:::
gdm:!!:17034:0:99999:7:::
sshd:!!:17034:0:99999:7:::
tcpdump:!!:17034:0:99999:7:::
mohammad:$6$5a9rY41dZwqTKB/0$FwfF54aZqol3QDqu.CAWkIKnW9F/RuNC28sMd.KvT4pUklTI9Q4nVax3rYwI.o7IIRd6bIs1G9.jpUmwzwM0M.:17034:0:99999:7:::
test:$6$AoyRySYi$HML82/iRkybJe1V8p9KGWiGAiU4Ha8SS7e4XeQaWmmh3BQcUY0jO3MZvblYyOXS5LqqwXHg/u2yaRp8PGNZqg0:17034:0:99999:7:::
dhcpd:!!:17034:0:99999:7:::
named:!!:17034:0:99999:7:::
apache:!!:17034:0:99999:7:::
[root@CentOS6 etc]# 

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

1- نامی که کاربر با آن log in میکند

2- رمز hash شده کاربر. اگز !! است یعنی نمیتواند log in کند

3- تاریخ آخرین تغییر رمز ( تعداد روز های گذشته از یکم ژانوبه 1970 )

4- کوتاه ترین زمان عمر رمز

5- بیشترین زمان عمر زمر

6- چند روز قبل منقضی شدن رمز به کاربر هشدار دهد

7- مقدار password inactivity که در بالاتر در فایل default توضیح دادم

8- زمان منقضی شدن اکانت کاربر

برای خواندن جزئیات بیشتر، صفحات manual این دو فایل را بخوانید. با دستور man 5 passwd و man 5 shadow.

برای تنظیم جرئیات بیشتر در مورد زمان بندی رمز ها میتوانید از فایل etclogin.defs استفاده کنید.

با دستور id مقدار uid و gid کاربری که هستید را ببینید.

[root@CentOS6 /]# whoami
root
[root@CentOS6 /]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@CentOS6 /]# su - mohammad
[mohammad@CentOS6 ~]$ id
uid=500(mohammad) gid=500(mohammad) groups=500(mohammad) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[mohammad@CentOS6 ~]$ 
[mohammad@CentOS6 ~]$ 

بسیار خوب، حالا بریم یه چند تا مثال عملیاتی کار کنیم. به کد های زیر دقت کنید.

[root@CentOS6 ~]# useradd ali
[root@CentOS6 ~]# id ali
uid=502(ali) gid=502(ali) groups=502(ali)
[root@CentOS6 ~]# ls -l /home
total 12
drwx------.  4 ali      ali      4096 Aug 21 21:53 ali
drwx------. 28 mohammad mohammad 4096 Aug 21 21:49 mohammad
drwx------.  4 test     test     4096 Aug 29  2015 test
[root@CentOS6 ~]# useradd reza
[root@CentOS6 ~]# id reza
uid=503(reza) gid=503(reza) groups=503(reza)
[root@CentOS6 ~]# ls -l /home
total 16
drwx------.  4 ali      ali      4096 Aug 21 21:53 ali
drwx------. 28 mohammad mohammad 4096 Aug 21 21:49 mohammad
drwx------.  4 reza     reza     4096 Aug 21 21:53 reza
drwx------.  4 test     test     4096 Aug 29  2015 test

[root@CentOS6 ~]# useradd bob -c "sponge bob"
[root@CentOS6 ~]# ls -l /home
total 20
drwx------.  4 ali      ali      4096 Aug 21 21:53 ali
drwx------.  4 bob      bob      4096 Aug 21 22:10 bob
drwx------. 28 mohammad mohammad 4096 Aug 21 21:49 mohammad
drwx------.  4 reza     reza     4096 Aug 21 21:53 reza
drwx------.  4 test     test     4096 Aug 29  2015 test

[root@CentOS6 ~]# id bob
uid=504(bob) gid=504(bob) groups=504(bob)
[root@CentOS6 ~]# tail -3 /etc/passwd
ali:x:502:502::/home/ali:/bin/bash
reza:x:503:503::/home/reza:/bin/bash
bob:x:504:504:sponge bob:/home/bob:/bin/bash
[root@CentOS6 ~]# userdel -r bob
[root@CentOS6 ~]# ls -l /home
total 16
drwx------.  4 ali      ali      4096 Aug 21 21:53 ali
drwx------. 28 mohammad mohammad 4096 Aug 21 21:49 mohammad
drwx------.  4 reza     reza     4096 Aug 21 21:53 reza
drwx------.  4 test     test     4096 Aug 29  2015 test

[root@CentOS6 ~]# tail -3 /etc/shadow
apache:!!:17034:0:99999:7:::
ali:!!:17034:0:99999:7:::
reza:!!:17034:0:99999:7:::
[root@CentOS6 ~]# passwd ali
Changing password for user ali.
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 ~]# tail -3 /etc/shadow
apache:!!:17034:0:99999:7:::
ali:$6$q.RMBAcT$oSMQGn.GJB7s2vdEtEFGMyfxqph3DVxK9yUkVSRkMiYzdyRhoOwPK8JYIVauW8uKip5CFjxl76HWfLrSRq1jW/:17034:0:99999:7:::
reza:!!:17034:0:99999:7:::

[root@CentOS6 ~]# usermod -L ali
[root@CentOS6 ~]# tail -3 /etc/shadow
apache:!!:17034:0:99999:7:::
ali:!$6$q.RMBAcT$oSMQGn.GJB7s2vdEtEFGMyfxqph3DVxK9yUkVSRkMiYzdyRhoOwPK8JYIVauW8uKip5CFjxl76HWfLrSRq1jW/:17034:0:99999:7:::
reza:!!:17034:0:99999:7:::

[root@CentOS6 ~]# usermod -U ali
[root@CentOS6 ~]# tail -3 /etc/shadow
apache:!!:17034:0:99999:7:::
ali:$6$q.RMBAcT$oSMQGn.GJB7s2vdEtEFGMyfxqph3DVxK9yUkVSRkMiYzdyRhoOwPK8JYIVauW8uKip5CFjxl76HWfLrSRq1jW/:17034:0:99999:7:::
reza:!!:17034:0:99999:7:::
[root@CentOS6 ~]# date --date "17034 days ago"
Thu Jan  1 20:49:23 IRST 1970
[root@CentOS6 ~]# 

همشو میگم !!! نگران نباشید !!!

با دستور useradd ali یک کاربر با نام ali درست کردم. اگر دستور id ali را بزنم ، مقدار uid و gid را برای او نشان میدهد. ( پس اون مقدار پیش فرض 100 چی بود ؟؟ برید سرچ کنید، بعدا میگم چرا اینجوریه. یکی کامنت بزاره چرا اینجوریه. ) اگر home/ را باز کنم، میبینم که برای ali پوشه هم درست کرده. ممکنه درست نکنه، نسخه من درست میکنه، اگر برای شما درست نکرد ، دستور useradd رو با m- بزنید. وقتی پوشه درست نمیکنه، تا اون کاربره log in نکنه، پوشه درست نمیشه. دستور useradd سویچ ها مختلف و مهمی داره. مثلا سویچ c- برای مشخص کردن نام کامل کاربر یا کامنت استفاده میشه ( بالاتر تو passwd گفتم ) . با دستور userdel هم کاربر را پاک کنید.

اگر با سویچ r- استفاده کنید home directory و mail box او را هم پاک میکند. حال فایل shadow رو نگاه کنید. اون !! چی میگه ؟؟ چون واسه کاربر پسورد نذاشتیم. کلا اول ستون پسورد ! باشه ینی کاربر قفله ( ینی نمیتونه log in کنه) حالا با دستور passwd برای ali پسورد میذارم. اگه دوباره فایل shadow رو ببینید، دیگه ali قفل نیست. ( اول ستون رمز ! نیست ) . حالا اگه بخوایم یه کاربر را قفل کنیم. ( مثلا تنبیهش کنیم، نتونه وارد بشه ) از دستور usermod با سویچ L- استفاده میکنیم. بعدش برید shadow رو ببینید، یه ! اول رمزش اضافه شده ( ینی رفت تو باقالیا !!! قفل شد !!! ) حالا ali توبه کرده میخوایم از قفلی درش یاریم، از دستور usermod با سویچ U- استفاده میکنیم. علامت ! از اول رمزش برداشته شد.

اون 17034 هم تعداد روز گذشته از آخرین تغییر پسورد رو میگه نسبت به اول ژانویه 1970... اگه باور نمیکنید، خروجی دستور date رو ببینید.

ینی آخرین باری که پسورد عوض شد از اول ژانویه 1970 تعداد 17034 روز گرشته بود.کاربر بدون رمز هم نمیتونه log in کنه، یادتون باشه اینو. واسه این قسمت کافیه. قسمت بعدی درمورد گروه ها میگم. منتظر نظرات سازنده اساتید هستیم !!!!

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

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

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

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

#دوره_آموزشی_linux_فارسی #نوشتن_shell_script_در_لینوکس #آموزش_لینوکس_فارسی #آموزش_linux_مقدماتی #آموزش_shell_scripting #آموزش_دستورات_مقدماتی_لینوکس #آموزش_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
0 نظر

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

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

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