Чтение онлайн

ЖАНРЫ

Linux глазами хакера

Флёнов Михаил Евгеньевич

Шрифт:

 browseable = no

 guest ok = no

 writable = no

 printable = yes

Обратите внимание, что по умолчанию секция открыта, и зарегистрированные пользователи уже имеют доступ к принтерам. Если вы хотите, чтобы "гости" смогли использовать принтер, то добавьте строку

public = yes
. Я не рекомендую этого делать, потому что это предоставит пользователям лишнюю возможность для подшучивания. Например, в моей сети был случай, когда сотрудник рассылал через принтер разные картинки на все компьютеры. Вроде безобидно, а работу тормозит, и идет бесполезный расход картриджа.

6.2.4.

Общий доступ

Чаще всего, на сервере необходима директория, через которую любой пользователь сможет обмениваться файлами с другими участниками сети. Для настройки такой папки используется секция

[tmp]
:

;[tmp]

; comment = Temporary file space

; path = /tmp

; read only = no

; public = yes

По умолчанию секция закрыта, и для разрешения доступа к ней необходимо убрать комментарии. Обратите внимание на путь к открытому каталогу. Это /tmp — каталог для хранения временных файлов пользователей. С помощью директив

read only
(значение
no
) и
public
(значение
yes
) мы указываем серверу Samba, что директория открытая, и в нее могут записывать и читать файлы все пользователи.

Несмотря на удобства, которые предоставляет этот каталог, я рекомендую использовать его только в закрытых сетях. Если у вас есть выход в Интернет, то с помощью сетевого экрана необходимо ограничить доступ к Samba. Так как в директорию могут писать любые пользователи, то злоумышленник может записать в нее свои файлы, которые помогут ему получить на сервере права администратора root.

6.2.5. Личные директории

Все разделы, которые мы рассматривали выше, имеют устоявшиеся имена и предназначены для решения определенных задач. Но в некоторых случаях вы можете изменить имя раздела, и на работе сервера это не скажется. Но я не рекомендую этого делать, потому что в одной версии Samba все будет работать хорошо, а при обновлении программ сервера все может измениться, и потом трудно будет найти ошибку, благодаря которой Samba работает неверно.

Но вы можете создавать собственные разделы, в которых будете описывать права. Например, вы можете захотеть организовать общую директорию, в которой файлы будут доступны всем пользователям, но записывать могут только члены определенной группы. Допустим, что в этом каталоге должны храниться какие-то картинки. Для решения этой задачи можно создать раздел

[shareimages]
следующим образом:

;[shareimages]

; comment = Share Images

; path = /home/samba/images

; public = yes

; writable = yes

; write list = @staff

; printable = no

Для данного раздела задаются следующие директивы:

□ 

path = /home/samba/images
— директория, которую мы хотим открыть;

□ 

public = yes
 — признак доступности;

□ 

writable = yes
— запись в каталог разрешена;

□ 

write list = @staff
— определяет группу
staff
, которая может записывать в файл. Для всех остальных директория открыта только для чтения.

В таких объявлениях директорий можно описывать любые директивы, которые мы рассматривали в данной главе.

6.3. Управление пользователями

Для начала разберемся с именами пользователей. Для доступа к серверу Samba используются сведения из системного файла /etc/passwd.

Но вы можете завести отдельные записи Samba-сервера, которые будут соответствовать реальным именам, но их можно будет использовать только для подключения к Samba, а не к системе.

Имена Samba-пользователей описываются в файле /etc/samba/smbusers, расположение и название которого могут быть изменены через директиву

username map
файла smb.conf. Содержимое файла может быть таким:

# Unix_name = SMB_name1 SMB_name2

root = administrator admin

nobody = guest pcguest smbguest

У списка имен несколько предназначений. Например, с его помощью вы можете спроецировать имена, привычные для пользователей DOS и Windows, на учетные записи Linux. Например, в Windows максимальные права принадлежат пользователю Administrator, а в Linux — это root. Во второй строке приведенного выше примера устанавливается соответствие имени

administrator
пользователю
root
.

Второе назначение файла — аккумулировать несколько имен на одной учетной записи. Например, у вас есть группа пользователей, которым необходимо назначить одинаковые права. Для этого создаем в Linux только одну учетную запись

nobody
(под ней будут работать пользователи), а в smb заводим несколько пользователей
guest
,
pcguest
и
smbguest
(под этими именами они будут входить в систему).

Несмотря на то, что мы отразили имена пользователей administrator и admin, и это разные учетные записи, для них будет использоваться один пароль — назначенный пользователю root.

Информация о пользователях, которым разрешен доступ, хранится в файле /etc/samba/smbpasswd. Его расположение и имя могут быть изменены через директиву

smb passwd
file файла smb.conf. Рассмотрим пример содержимого файла:

flenov:0:813D6593C13F1173ED93178CA975D79[UX ]:LCT-41FA818F

robert:500:813D6593C11F1173ED98178CA975D79:[UX ]:LCT-41FA818F

Сразу видно, что файл чем-то похож на /etc/passwd. Он также разделен на несколько колонок. Наиболее интересные из них первые три — имя пользователя, его UID в Linux-системе и пароль.

Но добавлять пользователей вручную не очень удобно, потому что нужно зашифровать и прописать пароль, что не так уж и просто. Чтобы облегчить задачу, в пакет Samba включена утилита smbpasswd, которая имеет следующие параметры:

□ 

a
— добавить пользователя в Samba-систему. Учетная запись должна уже существовать в /etc/passwd. Например, давайте пропишем Роберта, с которым мы уже не раз работали:

smbpasswd -a robert

В ответ на это программа попросит вас дважды ввести пароль. Указанная вами комбинация никак не влияет на системный пароль и используется только для доступа к Samba. Таким образом, пароли могут отличаться, Я даже рекомендую сделать их различными. ОС Windows умеет запоминать пароли и хранить в своей системе, а версии Windows 9x делают это небезопасно. Если злоумышленник сможет украсть пароль на Samba, то он проникнет и в систему;

□ 

x
— удалить пользователя. Чтобы исключить Роберта из системы, выполните команду:
smbpasswd -х robert
;

□ 

d
— деактивировать пользователя. Если необходимо временно отключить доступ для пользователя, не удаляя его из системы, выполните команду:
smbpasswd -d robert
. Давайте посмотрим на строку, соответствующую Роберту. после выполнения этой команды:

robert:500:813D6593C11F1173ED98178CA975D79:[DUX ]:LCT-41FA818F

Поделиться с друзьями: