CloudLite
8 (495) 784-61-39 techsupport@cloudlite.ru
Техническая поддержка
8 (495) 784-61-37 sales@cloudlite.ru
Тарифы, оплата, счета
Array
(
    [ELEMENT_CODE] => Fajlovyj_server_dlya_Windows_na_Ubuntu
)
Виртуальный сервер Windows/Linux

БАЗА ЗНАНИЙ

Файловый сервер для Windows на Ubuntu

Развернуть файловый сервер для Windows машин на Ubuntu достаточно просто. Обычно такой сервер используется для организации файловых хранилищ в рамках Active Directory домена.

 

В то же время можно без труда создавать файловые сервера и в бездоменной сети, в том числе для домашнего применения.

 

В любом случае воспользуйтесь Samba – установите ее с помощью менеджера пакетов Synaptic или следующей командой:

sudo apt-get install samba

Файловый сервер в составе домена Active Directory

Для создания файлового сервера, интегрированного в домен Active Directory, сначала необходимо ввести Вашу машину с Ubuntu в домен.

 

Чтобы создать файловый сервер, настройка PAM не потребуется, достаточно добавить доменных пользователей и группы через Winbind в систему.

 

Войдя в домен, настройте расшаренные ресурсы на компьютере. Учтите, что Samba будет проецировать права на файлы Windows на права Unix, однако принципиальные различия в механизмах присвоения прав скорее всего не дадут ей это сделать. Права на файлы всегда и в любом случае управляются Вашей файловой системой на компьютере с Ubuntu, а Samba может только адаптироваться под них, а менять их поведение - нет.

 

Так что по умолчанию расшаренные ресурсы будут располагать скромными возможностями контроля доступа, включая назначение разных прав для пользователя, группы и всех остальных. Но Вы можете это без труда исправить, добавив в ФС поддержку POSIX ACL. Тогда можно будет назначать различные права различным пользователям и группам почти как в Windows.

 

Поддержку POSIX ACL можно найти в ext3/4, и для её активации нужно только добавить к опциям монтирования нужного раздела параметр acl.

 

Важно! Каталог, который нужно расшарить через Samba, должен лежать на диске, смонтированном с опцией acl. В противном случае будет невозможно нормально применять механизм разграничения прав доступа к файлам на шарах.

 

Помните еще вот о чем: POSIX ACL не поддерживают наследование прав доступа от родительских каталогов, в то время как в Windows эта возможность есть. Так что в Samba существует дополнительный механизм сохранения информации о наследовании прав доступа, использующий расширенные атрибуты файловой системы. Чтобы Samba корректно обрабатывала наследование прав, кроме acl к опциям монтирования файловой системы добавьте параметр user_xattr, ответственный за включение поддержки расширенных атрибутов.

 

Например, удобно использовать для организации расшаренных ресурсов отдельные LVM диски. В этом случае строчки в fstab для них выглядят так:

/dev/mapper/data-profiles           /var/data/profiles                        ext3    
defaults,noexec,acl,user_xattr        0           2

Опция noexec нужна для перестраховки: что на шарах для Windows 100% не должно быть исполняемых файлов Linux.

Установите пакет необходимх утилит для работы с acl на Ubuntu:

sudo aptitude install acl 


Теперь просмотрите расширенные права (т.е. ACL) на файл или каталог следующей командой:

getfacl file


Установите такой командой:

setfacl [options] file


Не забывайте, что механизм POSIX ACL никак не связан с Samba - это только надстройка над стандартным механизмом разграничения прав в Linux. Так что Samba может его использовать, но не способна как-либо изменить или обойти.

 

Для использования расширенных атрибутов ФС пригодится похожий на acl пакет утилит - attr, поставьте его следующей командой:

sudo aptitude install attr


Чтобы просмотреть расширенные атрибуты, используйте команду:

getfattr file


А для установки выполните:

setfattr [options] file


Следует помнить, что Samba хранит всю информацию о наследовании в бинарном виде в единственном расширенном атрибуте user.SAMBA_PAI. Так что поменять что-то с помощью setfattr не получится, возможно только полное удаление расширенных атрибутов (в некоторых случаях необходимость в этом возникает).

Контролировать наследование прав с Windows машины возможно с помощью штатных инструментов этой системы, или утилитой smbcacls.

 

Расширенные атрибуты файловой системы позволяют включить в Samba полную поддержку файловых атрибутов DOS (например скрытого, архивного и пр.).

 

Если в Вашей системе есть каталог, который нужно расшарить через Samba (и он расположен на диске, подмонтированном с поддержкой acl и user_xattr), настройте его расшаривание – введите нужную информацию в файл /etc/samba/smb.conf.

 

В первую очередь займитесь общими настройками для добавления в секцию [global] этого файла:


# Отключить расшаривание принтеров. Если вы конечно и вправду не хотите их расшаривать.
 # Для полного отключения нужно указывать все 4 строки, приведённых ниже 
  load printers = no
 show add printer wizard = no
 printcap name = /dev/null
 disable spoolss = yes
 # Сделать скрытыми при просмотре с Windows файлы со следующими именами
 hide files = /$RECYCLE.BIN/desktop.ini/lost+found/Thumbs.db/
 # Использовать для шар с публичным доступом следующего UNIX пользователя в качестве Guest
 guest account = nobody
 # Воспринимать как guest незарегистрированных пользователей
 map to guest = Bad User
 
## Настройки, использующие расширенные атрибуты файловой системы 
 
  # Обрабатывать наследования прав с помощью расширенных атрибутов ФС
 map acl inherit         = yes
 # Использовать расширенные атрибуты ФС для хранения атрибутов DOS
 store dos attributes    = yes
 # Отключить маппинг DOS атрибутов на UNIX права, включённый по умолчанию
 # Согласно man smb.conf при использовании расширенных атрибутов эти опции обязаны быть отключены 
  map archive             = no
 map system              = no
 map hidden              = no 
  map readonly            = no


Затем настройте сам расшаренный ресурс. В примере он указан как profiles, а физически на Ubuntu машине расположен по адресу /var/data/profiles:


[profiles]
 # Комментарий
 comment = User Profiles
 # Путь до папки, которую расшариваем 
  path = /var/data/profiles/
 # Пользователи с неограниченными правами доступа к шаре
 # У меня стоит группа администраторов домена.
 # Эти пользователи при работе с файлами воспринимаются как локальный root 
  admin users = "@DOMAIN\Администраторы домена"
 # Скрыть папки, к которым у пользователя нет доступа 
  hide unreadable = yes
 # Доступ не только на чтение 
  read only = no
 # Маски для создаваемых файлов - можно задать по желанию
 #create mask = 0600
 #directory mask = 0700
 # Отключение блокировок - лучше отключить
 locking                 = no


Существует ряд других опций – вся подробная информация есть в документации по Samba.

 

Обязательно поставьте правильного владельца и права доступа на расшариваемую папку, иначе в неё может быть запрещена запись на уровне прав Linux. Можете сделать так:

sudo chmod ug+rwx /var/data/profiles
sudo chown root:"пользователи домена" /var/data/profiles

Внимание! Так как Ваша Ubuntu машина введена в домен, вы можете применять пользователей и группы домена в качестве владельцев файлов прямо в Ubuntu.

 

Проверьте корректность настройки Samba командой:

testparm


Далее перезапустите Samba:

sudo /etc/init.d/samba restart


Теперь получить доступ к расшаренному ресурсу Вы можете с любой машины домена. Но не забывайте про SGID и Sticky биты для каталогов, предназначенные для наследования группы-владельца и запрещения пользователям удаления не своих файлов - это особенно актуально для многопользовательских хранилищ. При этом, в отличие от редактирования прав из Windows, поменять эти биты на папках на расшаренном ресурсе невозможно - только вручную прямо на Ubuntu компьютере.

 

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

 

Автономный файловый сервер

Далеко не все располагают доменом Active Directory. Поэтому часто появляется необходимость организовать на Linux машине независимое файловое хранилище с собственной системой авторизации. Это несложно.

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

Главное – нужно определиться с используемым способом доступа к ресурсу. Следует корректно установить значение параметра security в секции [global] файла /etc/samba/smb.conf.

Стандартно применяется значение share или user.

И не забудьте изменить значение параметра workgroup на соответствующее, причем все остальные настройки напрямую будут зависеть от конкретных целей.

 

Автономный файловый сервер без авторизации

В домашних условиях удобно, когда все видят всех. Для этого просто добавьте 4 строчки в секцию [global] файла /etc/samba/smb.conf (некоторые могут уже быть в наличии):

[global]
workgroup = WORKGROUP
map to guest = Bad User
netbios name = NOTEBOOK
security = user


NOTEBOOK - имя компьютера, которое будет в сети. Также установите дополнительные программы:

sudo apt-get install samba 


Дополнительно для kubuntu необходимо установить smb4k . После редактирования настроек перезапустите службы. В systemd (начиная с 15.04) перезапуск осуществляется так:

sudo systemctl restart smbd.service nmbd.service


Посмотрите «шары» через файловый броузер nautilus, konkueror или следующим образом:

smbclient -L 127.0.0.1


Расшаривание папки на Ubuntu

Нужно создать папку для обмена файлов.

mkdir ~/share


Затем добавить в конец файла /etc/samba/smb.conf такие строки, а «yuraku1504» в них замените на имя пользователя компьютера с Samba:


[MyShareWork]
comment = Anonymous Samba Share
path = /home/yuraku1504/share
guest ok = yes
browsable =yes
writable = yes
read only = no
force user = yuraku1504
force group = yuraku1504


Папка будет открыта для чтения и записи.


Не нашли ответа на Ваш вопрос? Напишите нам!

techsupport@cloudlite.ru - служба техподдержки

sales@cloudlite.ru - вопросы по услугам, оплате, документам и партнерству

partner@cloudlite.ru - партнерская программа