Quantcast
Channel: Блогосфера
Viewing all articles
Browse latest Browse all 33007

Григор Гачев: Samba под Debian GNU/Linux

$
0
0

Това, което повечето хора са свикнали да наричат „уиндоуската мрежа“, е всъщност промишленият стандарт SMB/CIFS за компютърна мрежа – един от многото стандарти за мрежи. Начини за общуване чрез него има разработени както за Windows, така и за повечето видове Unix – включително Apple MacOS, BSD Unix и, разбира се, GNU/Linux.

Софтуерът, който реализира тази мрежа под Unix, се нарича Samba – стегнато, стабилно и надеждно парче свободен софтуер. Чудесно е използваемо и на работна машинка. Истинската му мощ обаче блести на сървърите – и по-точно на фирмените (или домашни) файлови сървъри.

В този запис ще покажа простичък начин да си настроите удобно Samba сървър под Debian GNU/Linux. Не търсете сложнотии и тънкости, той е елементарно начало, което начинаещият сисадмин може да копи/пейстне и пригоди за целите си. Ако ви бива достатъчно, за да инсталирате Debian, ще се справите и с това. (Необходимите за инсталиране на Debian умения включват основно писане по клавиатура и четене от екран. Владеете ли тези двете, останалото са подробности.)

И така, имате инсталиран Debian GNU/Linux. (Вероятно на стария компютър, който сте се готвели да изхвърлите – ще е достатъчно добър за целта.) Искате да го пригодите за файлов сървър в… хайде да е малката ви фирма, че да дам все пак и малко цвят. :-) Закачили сте му два големи диска, форматирали сте ги, погрижили сте се да са в RAID или пък съдържанието им да се синхронизира периодично по софтуерен път. Закачили сте ги на директорията /var, да кажем, и сте направили в нея поддиректория /var/samba, за файловете. Имате на компютъра връзка към Нета, да можете да инсталирате софтуер от дебианските хранилища. Сега какво правим?

Ако не сте се сетили още при инсталирането да маркирате опцията “File Server”, инсталирате Samba. Влизате на командния ред (внимавайте някой бит или байт да не ви изяде!), ставате root и набирате следната команда:

aptitude install samba

Програмката работи мъничко, пита как ще се казва работната група (примерно WORKGROUP) и имате софтуера. Сега обаче трябва да го настроите.

Да предположим, че във фирмата си имате счетоводен, търговски и транспортен отдели, чиито данни искате да съхранявате на сървъра. Условията са следните:

- До вашите данни трябва да имате достъп само вие
- До данните на счетоводния отдел трябва да имат достъп работещите в счетоводния отдел.
- До данните на търговския отдел трябва да имат достъп всички, но извън търговския отдел този достъп да е само за четене.
- Трябва да има публичен дял, където не само всички служители, но и гостите на фирмата (с преносими компютри или смартфони, свързани към фирмената безжичка) да могат да четат и пишат свободно (за обмяна на данни с тях).

Въпросните разпределения на данни (на жаргона на Samba биват наричани дялове, или shares) се описват в нейния конфигурационен файл – /etc/samba/smb.conf. Стандартният съдържа нелоши и доста подробни примерни начални описания – запазете си го, например като го преименувате на /etc/samba/smb.conf.original. След това направете нов, в който ще опишете своите настройки.

Файлът smb.conf е разделен на секции. Някои от настройките му важат за всички дялове – те се описват в секцията [global]. Всеки дял има своя отделна секция, където се описват неговите настройки.

По-долу давам едно простичко начало. Копи-пейстнете го и променяйте където е необходимо. Ако не знаете за какво служи нещо, а правите реална работна машина, не е добра идея да го променяте.

[global]
workgroup = MY_COMPANY
server string = The company fileserver
security = share
encrypt passwords = yes
max log size = 50
logon script = %U.bat
domain logons = Yes
preferred master = Yes
domain master = Yes
local master = Yes
os level = 35
dns proxy = No
wins support = Yes
netbios name = FILESERVER
guest account = nobody
unix password sync = no
log level = 2

Глобалната секция. Подробно описание на всяка от ключовите думи можете да намерите в документацията на файла smb.conf. (Пробвайте от командния ред man smb.conf. И внимавайте – напада още по-стръвно от битовете и байтовете!)

А сега е ред на дяловете. Първо, естествено, шефският. Тоест, вашите данни:

[Boss]
comment = Top Management
path = /var/samba/Boss
writeable = Yes
browseable = Yes
valid users = boss
directory mask = 0700
force directory mode = 0700
directory mode = 0700
create mode = 0700

Данните ви ще се съхраняват във /var/samba/Boss (не забравяйте да направите поддиректория Boss във /var/samba и да й зададете подходящи условия на достъп). Дялът ще е видим за всички (можете да промените това, като смените browseable = Yes с browseable = No), но само вие ще можете да влезете в него.

Следва дялът за счетоводството:

[Accounting]
comment = Accounting Docs
path = /var/samba/Accounting
writeable = Yes
browseable = Yes
valid users = +SS_Accounting
directory mask = 0770
force directory mode = 0770
directory mode = 0770
create mode = 0770
force group = SS_Accounting

Както виждате, валидни потребители на този дял са всички членове на групата SS_Accounting (съкратено от Samba Share Accounting, за удобство). Пермишъните на файловете в нея позволяват пълно разпореждане за членовете на групата (за разлика от шефския дял, където позволяват само на потребителя). Най-сетне, файловете в тази група задължително се създават с група SS_Accounting, за да е сигурно, че всички членове на групата ще могат да се разпореждат с тях.

Следва дялът за транспортния отдел:

[Logistics]
comment = Logistics Docs
path = /var/samba/Logistics
writeable = Yes
browseable = Yes
valid users = +SS_Logistics
directory mask = 0775
force directory mode = 0775
directory mode = 0775
create mode = 0775
force group = SS_Logistics
guest ok = Yes

Този дял се различана по само две неща от предишния. Едното е, че пермишъните на файловете в него позволяват четене (но не и писане!) и от не-спадащи към групата потребители. А второто е, че е позволен guest потребителят (последният ред).

Guest потребителят е специален потребител на Samba – този, който не се е логнал с име и парола. По-горе в глобалната секция е описано облика на кой потребител на системата ще приеме той – този на nobody, максимално ограниченият потребител със специалната група nogroup. Иначе казано, всеки може да влезе в този дял (като потребителя guest / nobody), но пермишъните на файловете ще му позволят само да чете, не и да пише.

Най-сетне, време е и за публичния дял:

[Public]
comment = Public space
path = /var/samba/Public
writeable = Yes
browseable = Yes
directory mask = 0777
force directory mode = 0777
directory mode = 0777
create mode = 0777
guest ok = Yes

Простичко и директно – всеки може да влиза, пише, брише и каквото друго му скимне.

… Добре. Имаме вече подходящ smb.conf. Записваме го, правим нужните поддиректории във /var/samba, рестартираме Samba и… още не сме в бизнеса. Трябва да създадем групите, в които ще участват потребителите на Samba:

addgroup --force-badname SS_Accounting
addgroup --force-badname SS_Logistics

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

След това трябва да се погрижим да създадем акаунтите на потребителите.

adduser --ingroup users --disabled-login boss
smbpasswd -a boss

Първата команда ще ви добави като системен юзер, шефе. Не се бойте, че не можете да се логнете пряко в Линукса, няма да ви се налага, за това са сисадмините. :-) Въвеждате каквото сметнете за нужно за себе си, и потребителят е създаден. (Без него Samba ще откаже да създаде съответен свой потребител.)

Втората команда ще ви добави като потребител на Samba и ще ви попита за паролата ви (двукратно, защото при набиране нищо не излиза, дори звездички). След нея вече спокойно можете да се логнете с този юзернейм и парола в дяла си.

След това трябва да добавим един по един служителите на фирмата. Например:

adduser --ingroup users --disabled-login ivan
adduser ivan SS_Accounting
smbpasswd -a ivan

Разликата е, че потребителят изрично се добавя в съответната за отдела му група – SS_Accounting. (Би било много лесно направо да бъде създаден в нея, като на първия ред вместо users се напише SS_Accounting. При по-големи сървъри с много дялове и фино разпределение на правата обаче е по-удобно съответните групи да се сложат допълнително, а основната да е обща и да се пази за неща като системен домашен дял.)

Е, сега вече сте в бизнеса. Раздавате на потребителите съответните им имена и пароли и ги пращате да работят. :-)

(Дребен трик под Windows. Ако не искате персоналът да си забравя постоянно юзерите и паролите, или дори да ги знае, му ги сложете в Network Credentials. Пускате Control Panel, оттам User Accounts, избирате съответния юзер и поглеждате най-горе вляво – ще видите управлението на мрежовите идентификации. Цъквате на него, отваря се прозорче. Добавяте нова мрежова идентификация, въвеждате за сървър Fileserver, вписвате юзера и паролата на човека и имате логин.)

Оттук нататък, системата може да се усложнява още много. Могат да се правят по много и най-различни дялове, с фино управление на правата на всеки потребител къде да може да се логва и какво да може там. Може да се настрои Samba-та да работи и като принтсървър. Можете да сложите „домашен“ дял, който се казва еднакво за всички потребители, но съдържа различен път за всеки от тях. Можете… Абе, много неща можете. Ако не знаете какво и как, питайте Гугъл, на мен надали ще ми стигнат силите и животът да опиша всичко възможно.

Важното е да тръгнете от нещо. :-)


Viewing all articles
Browse latest Browse all 33007

Trending Articles