Помогни ни да направим Uroci.net по - богат! Добави урок

Типове потребители и файлове с пароли в Linux

Stalik   трудност:    видян: 13707

 

Достъпът до всяка Линукс система става чрез потребителски акаунт, установен от системния администратор. Това означава, че на всеки потребител се задава потребителско име за идентификация, парола, собствена директория и му се задават права за достъп до системата. Всичко това се прави чрез администраторския акаунт, наречен root.

 

Потребителя root се създава автоматично при инсталацията на дистрибуцията. Този потребител се нарича още свръхпотребител (суперпотребител), защото няма нещо, което този потребител да не може да направи. Пред този потребител няма никакви забрани или ограничения и затова работата с него е много удобна, но също толкова опасна. Поради значимостта на този потребител, командния интерпретатор променя обичайния prompt на командния ред.

 

Важно е да се отбележи, че името на този потребител не е задължително да бъде root, но това е името по подразбиране.

 

Освен суперпотребителя всяка Линукс система може да има и потребителски акаунти. Всеки акаунт има собствена директория в дървото на операционната система (изключение правят някои системни акаунти). Тя се нарича home (домашна) директория и потребителя попада винаги в нея след своя вход. Директорията се задава при създаването на потребителя и по подразбиране е : /home/ime_na_potrebitelia .

 

Обикновено потребителя има пълни права в тази директория, но това не е задължително. Например може да се ограничат правата на потребителя върху определени файлове в тази директория. Класически пример за това е ограничаването на правата върху файла profile, който се изпълнява след включване на потребителя в системата.

 

Цялата информация за потребителите се съхранява във файла /etc/passwd. Това е най-обикновен текстов файл, чийто собственик е суперпотребителя. Само той може да редактира съдържанието му, а останалите потребители имат права само за четене. Редовете в този файл имат строго определен формат:

 

username:password:userID:groupID:comment:home_directory:login_comm

 


Нека разгледаме един примерен файл:


 

root:x:0:0::/root:/bin/bash

 

bin:x:1:1:bin:/bin:

 

daemon:x:2:2:daemon:/sbin:

 

adm:x:3:4:adm:/var/log:

 

lp:x:4:7:lp:/var/spool/lpd:

 

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:/:

 

news:x:9:13:news:/usr/lib/news:

 

uucp:x:10:14:uucp:/var/spool/uucppublic:

 

operator:x:11:0:operator:/root:/bin/bash

 

games:x:12:100:games:/usr/games:

 

ftp:x:14:50::/home/ftp:

 

smmsp:x:25:25:smmsp:/var/spool/clientmqueue:

 

mysql:x:27:27:MySQL:/var/lib/mysql:/bin/bash

 

rpc:x:32:32:RPC portmap user:/:/bin/false

 

gdm:x:42:42:GDM:/var/state/gdm:/bin/bash

 

pop:x:90:90:POP:/:

 

nobody:x:99:99:nobody:/:

 

sshd:x:33:33:sshd:/:

 

dino:x:1000:100:Dinko,,,:/home/dino:/bin/bash

 

www:x:1001:102:,,,:/home/www:/bin/bash

 

ffsearch:x:1002:103::/home/ffsearch:

 

stinger:x:1003:100:,,,:/home/stinger:/bin/rzsh

 

postfix:x:1004:100::/home/postfix:

 

  Всеки ред от този файл е съставен от седем полета, разделени с двоеточия. Ако нищо не се въведе между две двоеточия полето остава празно, но двоеточията задължително трябва да съществуват. Ето и обяснение на седемте полета:

 

  • username – уникалното потребителско име

     

  • password – паролата на потребителя в кодиран вариант

     

  • userID(UID) – уникалното число, което идентифицира потребителя пред системата

     

  • groupID(GID) – уникално число, което определя групата на потребителя

     

  • comment – коментар (може да истинското име на потребителя и т.н.)

     

  • home_directory – това е директорията в която попада потребителя след своето включване

     

  • login_comm – това е команда, която се изпълнява след вход на потребителя. Най-често това е някаква шел команда.

     

  Трябва да се отбележи, че тази структура на файла е еднаква не само за Линукс, но и UNIX базираните операционни системи.

 

Както бе казано по-горе, операционната система записва паролата във второто поле. Повечето съвременни версии, не използват този подход поради проблеми със сигурността. Те пазят паролите в друг файла, наричан shadow password fail, който се намира в /etc/shadow. Когато паролите са записани в този файл, полето за парола съдържа x. Ето как изглежда един shadow файл:

 

root:$1$EnI1gPEs$LwH91OIgMRGwPcdqlleU21:12209:0:::::

 

bin:*:9797:0:::::

 

daemon:*:9797:0:::::

 

adm:*:9797:0:::::

 

lp:*:9797:0:::::

 

sync:*:9797:0:::::

 

shutdown:*:9797:0:::::

 

halt:*:9797:0:::::

 

mail:*:9797:0:::::

 

news:*:9797:0:::::

 

uucp:*:9797:0:::::

 

operator:*:9797:0:::::

 

games:*:9797:0:::::

 

ftp:*:9797:0:::::

 

smmsp:*:9797:0:::::

 

mysql:*:9797:0:::::

 

rpc:*:9797:0:::::

 

gdm:*:9797:0:::::

 

pop:*:9797:0:::::

 

nobody:*:9797:0:::::

 

sshd:*:9797:0:::::

 

dino:$1$Vd11bYBs$3NV2tT0FK48OR/CYGM/rD0:12209:0:99999:7:::

 

www:$1$m4as.9uy$sOJvGN/fJKeSItUDNxl3e0:12215:0:99999:7:::

 

ffsearch:!:12313:0:99999:7:::

 

stinger:$1$u8M/xs7r$YgtlAmXbGsppdUNk6/onw/:12400:0:99999:7:::

 

postfix:!:12411:0:99999:7:::

 


 Когато потребителя въведе паролата си, програмата login прави проста проверка и сравнява двете пароли. Ако те съвпаднат потребителя се допуска до системата, в противен случай достъпа му се отказва.

 

Въпреки, че преобразуването на паролата до нейния кодиран вариант е кратковременна операция, то обратната операция отнема много време. Полето за парола може да се използва и за ограничаване на достъпа. Това става, като се въведе * на мястото на кодираната парола. Това се използва за потребителски имена като nobody или lp. Обратно, ако това поле се остави празно, то дадения потребител ще може да се включва в системата без парола.

 

Всеки потребител има асоцииран уникален номер (UID), като чрез него операционната система идентификацира потребителя. Повечето UNIX системи използват идентификаторите от 0 до 99 за специални UID, а числата от 100 нагоре за потребителите. Slackware използва различна схема, а именно – от числата от 1000 нагоре се използват за потребителите.

 

И в двата примерни файла има около дузина потребителски имена създадени автоматично от операционната система. Предназначението на по-важните от тях е:

 

  • Потребителя root е суперпотребителя (UID 0)

     

  • demon се използва за системни процеси. Използва се само, за да притежава някои процеси и за да се установяват правилно техните права.

     

  • bin е собственика на изпълнимите файлове

     

  • adm притежава журналните и лог файловете

     

  • uucp се използва за UUCP комуникация

     

Повечето от тях имат звездичка в полето за парола, което забранява използването им при логин.

 

Всички потребители са организирани в групи. Всяка група подобно на потребителските имена притежава уникален идентификационен номер (GID). Тя представлява обединение на няколко потребителя по някакви причини. Например в една група могат да бъдат хората от един отдел, а от друга – вашите приятели или клиенти. Така е по-лесно организирането на правата върху определени файлове или други устройства. Всеки потребител може да принадлежи на няколко групи, но в определен момент той е член само на една от тях. Това е свързано с правата на достъп, тъй като Линукс може да присъедини на потребителя само един идентификатор на група.

 

Информацията за групите се съдържа във файла /etc/group, който има следния вид:

 

root::0:root

 

bin::1:root,bin,daemon

 

daemon::2:root,bin,daemon

 

sys::3:root,bin,adm

 

adm::4:root,adm,daemon

 

tty::5:

 

disk::6:root,adm

 

lp::7:lp

 

mem::8:

 

kmem::9:

 

wheel::10:root

 

floppy::11:root

 

mail::12:mail

 

news::13:news

 

uucp::14:uucp

 

man::15:

 

games::20:

 

slocate:x:21:

 

smmsp::25:smmsp

 

mysql::27:

 

rpc:x:32:

 

gdm::42:

 

ftp::50:

 

pop::90:pop

 

nobody::98:nobody

 

nogroup::99:

 

users::100:nobody

 

console:x:101:

 

sshd::33:sshd

 

www:x:102:dino,www

 

ffsearch:x:103:www

 

utmp::22:

 

shadow::43:

 

postdrop:x:104:

 

 

Формата на файла е следния:


име_на_групата:парола:GID:списък_с_потребители

 


  • Името на групата е уникално символно име

  • Паролата на групата трябва да бъде въведена от потребителя, ако той пожелае да се присъедини към нея. Не всички дистрибуции използват това поле.

  • GID е уникалния групов идентификатор

  • Списъкът на потребителите съдържа всички потребители, които принадлежат на тази група

     

  Всяка Линукс система има няколко системни групи – такива са bin, mail, uucp, sys и др. Присвояването на потребители към тези групи е лоша идея, тъй като това ще предизвика даването на прекалено големи права на тези потребители.

 

Всяка Линукс дистрибуция притежава вградени програми за добавяне, премахване и промяна на потребителите. Най-простия начин е ръчното редактиране на passwd файла. Това обаче може да предизвика непредвидими ситуации, ако се допусне грешка. В този случай полето за парола се оставя винаги празно, а паролата се добавя след това. При ръчна промяна на passwd и group може да се използват съответно командите vipw и vigr. Те извикват специална версия на редактора vi, която следи промените във файловете да бъдат направени така, че да не се достига до повреда на файловете. Освен това може да се използват командите adduser или useradd (за добавяне на потребители), userdel (за премахване на потребители) и usermod (за промяна на детайлите на потребителя).

 

Повечето дистрибуции притежават и програми за манипулация с групи. Това са groupadd, groupdel и groupmod. Командата groups показва към кои групи принадлежи дадения потребител.

 

В една добре конфигурирана Линукс система не би трябвало да се работи с root потребителя. В някои случаи обаче се налага от неговото използване. Логичния начин е потребителя да се излезе от системата и след това да влезе като root (ако притежава неговата парола, разбира се). Този подход не е много удобен и затова има алтернатива на него. Това е използването на командата su. При извикването й без допълнителни параметри, то тя се опитва да превключи към root потребителя (разбира се ще се наложи да въведете неговата парола). Освен този неявен начин на употреба, командата позволява превключването към който и да е съществуващ потребител:

 

 

#su dino

 

$

 

 

От този момент нататък суперпотребителя работи с привилегиите на потребителя dino. В този случай парола не се изисква, но когато обикновен потребител иска да превключи да друг, система винаги изисква парола. Излизането от този режим става чрез натискането на Ctrl+D или чрез командата exit.

 

 

 Източник: radiations.hit.bg

 



Регистрирайте се, за да добавите коментар


Калдейта ЕООД - © 2003-2010. Всички права запазени.
Препоръчваме: Национален Бизнес | Bomba.bg | IT Новини | Диплома.бг | TRAVEL туризъм | Реферати | AmAm.bg | Иде.ли | Курсови работи | Фото Форум | Spodeli.net | Фото-Култ | Atol.bg | Elmaz.com | MobileBulgaria.com | Казанлък.Com