Разное

Добавить samba пользователя: , , , , Red Hat Enterprise Linux, RHCSA, RHCE, RHCE RHCSA, Red Hat Certified System Administrator, Red Hat Certified Engineer, , ,

Содержание

Как сделать доступ к папкам samba по паролю? — Хабр Q&A

Не могу понять почему не получается зайти в папку, расшаренную с помощью Samba (на ubuntu 12.04).

Пользователя в Samba добавил с помощью smbpasswd
Также добавил пользователя в группу sambashare

Есть папка с гостевым доступом, туда могу зайти, могу записывать файлы.
А если создаю и расшариваю папку, для доступа под паролем, пишет «Нет доступа к … Возможно у вас нет прав на подключение к данному ресурсу» (подключаюсь с windows машины)

Перерыл все логи, записей про неудачную авторизацию или что либо подобное не нашел. Помоги пожалуйста

smb.conf

[global]
   workgroup = WORKGROUP

   server string = %h server (Samba, Ubuntu)
   dns proxy = no
   log file = /var/log/samba/log.%m

   max log size = 1000
   syslog = 0
   panic action = /usr/share/samba/panic-action %d
   security = user
   encrypt passwords = true
   passdb backend = tdbsam
   obey pam restrictions = yes
   unix password sync = yes
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\                                                                                                                                                            n *password\supdated\ssuccessfully* . 

   pam password change = yes
   map to guest = bad user
;   domain logons = yes
;   logon path = \\%N\profiles\%U

;   logon drive = H:

;   logon script = logon.cmd

; add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u

; add machine script  = /usr/sbin/useradd -g machines -c "%u machine account" -d                                                                                                                                                              /var/lib/samba -s /bin/false %u

; add group script = /usr/sbin/addgroup --force-badname %g

;   printing = bsd
;   printcap name = /etc/printcap

;   printing = cups
;   printcap name = cups


;   include = /home/samba/etc/smb.conf.%m


;   message command = /bin/sh -c '/usr/bin/linpopup "%f" "%m" %s; rm %s' &


;   idmap uid = 10000-20000
;   idmap gid = 10000-20000
;   template shell = /bin/bash

;   winbind enum groups = yes
;   winbind enum users = yes


;   usershare max shares = 100

   usershare allow guests = yes


;[homes]
;   comment = Home Directories
;   browseable = no

;   read only = yes

;   create mask = 0700
;   directory mask = 0700
;   valid users = %S
;[netlogon]
;   comment = Network Logon Service
;   path = /home/samba/netlogon
;   guest ok = yes
;   read only = yes
;[profiles]
;   comment = Users profiles
;   path = /home/samba/profiles
;   guest ok = no
;   browseable = no
;   create mask = 0600
;   directory mask = 0700
[printers]
   comment = All Printers
   browseable = no
   path = /var/spool/samba
   printable = yes
   guest ok = no
   read only = yes
   create mask = 0700

[print$]
   comment = Printer Drivers
   path = /var/lib/samba/printers
   browseable = yes
   read only = yes
   guest ok = no
;   write list = root, @lpadmin

;[cdrom]
;   comment = Samba server's CD-ROM
;   read only = yes
;   locking = no
;   path = /cdrom
;   guest ok = yes
;   preexec = /bin/mount /cdrom
;   postexec = /bin/umount /cdrom

[public]
comment = 320gb
browseable = yes
read only = no
public = yes
path = /media/sdc/public
guest ok = yes

[disk80]
comment = 80gb
browseable = yes
read only = no
path = /media/sdb/disk80
valid users = "user"
write list = "user"

Файловый сервер для 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) на файл или каталог следующей командой:


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


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


 


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

sudo aptitude install attr


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


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


Следует помнить, что 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 командой:


Далее перезапустите 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 или следующим образом:


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


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


Затем добавить в конец файла /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


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

Как установить и настроить Samba в CentOS 7

Samba – это бесплатная и открытая реализация протокола сетевого обмена файлами SMB/CIFS, который позволяет конечным пользователям получать доступ к файлам, принтерам и другим общим ресурсам.

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

Мы создадим следующие общие ресурсы и пользователей Samba.

Пользователи:

  • sadmin – Администратор с правами чтения и записи для всех общих ресурсов.
  • andreyex – обычный пользователь со своей личной папкой.

Совместное использование:

  • users – этот ресурс будет доступен всем пользователям с правами на чтение/запись.
  • andreyex – этот ресурс будет доступен с правами на чтение/запись только пользователям andreyex и sadmin.

 

Общий доступ к файлам будет доступен со всех устройств в вашей сети. Далее в этой статье мы также предоставим подробные инструкции о том, как подключиться к серверу Samba из клиентов Linux, Windows и macOS.

 

Предпосылки

Прежде чем начать, убедитесь, что вы вошли в систему CentOS 7 как пользователь с привилегиями sudo.

 

Установка Samba на CentOS

Samba доступна из стандартных репозиториев CentOS. Чтобы установить его в вашей системе CentOS, выполните следующую команду:

sudo yum install samba samba-client

 

После завершения установки запустите службы Samba и включите их автоматический запуск при загрузке системы:

sudo systemctl start smb.service
sudo systemctl start nmb.service
sudo systemctl enable smb.service
sudo systemctl enable nmb.service

 

Служба smbd обеспечивает совместный доступ к файлам, услуги печати и прослушивает TCP порты 139 и 445. Служба nmbd предоставляет NetBIOS через IP – служб имен для клиентов и прослушивает UDP порт 137.

 

Настройка брандмауэра

Теперь, когда Samba установлена и запущена на вашем компьютере CentOS, вам нужно настроить брандмауэр и открыть необходимый порты. Для этого выполните следующие команды:

firewall-cmd --permanent --zone=public --add-service=samba
firewall-cmd --zone=public --add-service=samba

 

Создание пользователей Samba и структуры каталогов

Для удобства обслуживания и гибкости вместо использования стандартных домашних каталогов ( /home/user) все каталоги и данные Samba будут расположены в каталоге /samba.

Начните с создания каталога /samba:

sudo mkdir /samba

 

Создайте новую группу с именем sambashare. Позже мы добавим всех пользователей Samba в эту группу.

sudo groupadd sambashare

 

Установите владельца группы каталогов /samba на sambashare:

sudo chgrp sambashare /samba

 

Samba использует пользователей Linux и систему разрешений групп, но имеет собственный механизм аутентификации, отличный от стандартной аутентификации Linux. Мы создадим пользователей, используя стандартный инструмент useradd в Linux, а затем установим пароль пользователя с помощью утилиты smbpasswd.

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

 

Создание пользователей Samba

Чтобы создать нового пользователя с именем andreyex, используйте следующую команду:

sudo useradd -M -d /samba/andreyex -s /usr/sbin/nologin -G sambashare andreyex

 

В опции useradd имеют следующие значения:

  • -M – не создавать домашний каталог пользователя. Мы вручную создадим этот каталог.
  • -d /samba/andreyex – установить домашний каталог пользователя в /samba/andreyex.
  • -s /usr/sbin/nologin – отключить доступ к оболочке для этого пользователя.
  • -G sambashare- добавить пользователя в группу sambashare.

Создайте домашний каталог пользователя и установите владельца каталога для пользователя andreyex и группы sambashare:

sudo mkdir /samba/andreyexsudo chown andreyex:sambashare /samba/andreyex

 

Следующая команда добавит бит setgid в каталог /samba/andreyex, чтобы вновь созданные файлы в этом каталоге наследовали группу родительского каталога. Таким образом, независимо от того, какой пользователь создаст новый файл, он будет иметь владельца группы sambashare. Например, если вы не установите права доступа к каталогу на 2770 а пользователь sadmin создаст новый файл, пользователь andreyex не сможет читать и записывать в этот файл.

sudo chmod 2770 /samba/andreyex

 

Добавьте учетную запись andreyex пользователя в базу данных Samba, установив пароль пользователя:

sudo smbpasswd -a andreyex

 

Вам будет предложено ввести и подтвердить пароль пользователя.

New SMB password:
Retype new SMB password:
Added user andreyex.

 

После того, как пароль установлен, включите учетную запись Samba, введя:

sudo smbpasswd -e andreyex
Enabled user andreyex.

 

Для создания другого пользователя повторите тот же процесс, что и при создании пользователя andreyex.

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

Создайте пользователя с правами администратора, набрав:

sudo useradd -M -d /samba/users -s /usr/sbin/nologin -G sambashare sadmin

 

Команда выше также создаст группу sadmin и добавит пользователя sadmin и группу sambashare.

Установите пароль и включите пользователя:

sudo smbpasswd -a sadmin
sudo smbpasswd -e sadmin

 

Далее создайте каталог общего доступа Users:

sudo mkdir /samba/users

 

Установите владельца каталога для пользователя sadmin и группы sambashare:

sudo chown sadmin:sambashare /samba/users

 

Этот каталог будет доступен всем аутентифицированным пользователям. Следующая команда настраивает доступ на запись/чтение для членов группы sambashare в каталоге /samba/users:

sudo chmod 2770 /samba/users

 

Конфигурирование Samba

Откройте файл конфигурации Samba и добавьте разделы:

sudo nano /etc/samba/smb.conf

/etc/samba/smb.conf

[users]
    path = /samba/users
    browseable = yes
    read only = no
    force create mode = 0660
    force directory mode = 2770
    valid users = @sambashare @sadmin

[andreyex]
    path = /samba/andreyex
    browseable = no
    read only = no
    force create mode = 0660
    force directory mode = 2770
    valid users = andreyex @sadmin

 

Опции имеют следующие значения:

  • [users] и [andreyex] – имена общих ресурсов, которые вы будете использовать при входе в систему.
  • path – путь к общему ресурсу.
  • browseable – должна ли акция быть указана в списке доступных акций. Установив no для других пользователей, не сможет увидеть общий ресурс.
  • read only – могут ли пользователи, указанные в списке valid users, писать в этот общий ресурс.
  • force create mode – устанавливает разрешения для вновь созданных файлов в этой общей папке.
  • force directory mode – устанавливает разрешения для вновь созданных каталогов в этой общей папке.
  • valid users – список пользователей и групп, которым разрешен доступ к общему ресурсу. Группы имеют префикс с символом @.

 

После этого перезапустите сервисы Samba:

sudo systemctl restart smb.service
sudo systemctl restart nmb.service

 

В следующих разделах мы покажем вам, как подключиться к общему ресурсу Samba из клиентов Linux, macOS и Windows.

 

Подключение к Samba Share из Linux

Пользователи Linux могут получить доступ к общему ресурсу samba из командной строки с помощью файлового менеджера или смонтировать общий ресурс Samba.

 

Использование клиента smbclient

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

Для установки smbclient на Ubuntu и Debian, запустите:

sudo apt install smbclient

 

Для установки smbclient на CentOS и Fedora, выполните:

sudo yum install samba-client

 

Синтаксис для доступа к общему ресурсу Samba выглядит следующим образом:

mbclient //samba_hostname_or_server_ip/share_name -U username

 

Например, чтобы подключиться к общему ресурсу с именем andreyex на сервере Samba с IP-адресом 213.159.209.228 от имени пользователя andreyex, запустите

smbclient //213.159.209.228/andreyex -U andreyex

 

Вам будет предложено ввести пароль пользователя.

Enter WORKGROUP\andreyex's password:

 

После того, как вы введете пароль, вы войдете в интерфейс командной строки Samba.

Try "help" to get a list of possible commands.
smb: \>

 

Монтирование общего ресурса Samba

Чтобы смонтировать общий ресурс Samba в Linux, сначала необходимо установить пакет cifs-utils.

На Ubuntu и Debian запустите:

sudo apt install cifs-utils

 

На CentOS и Fedora работают:

sudo yum install cifs-utils

 

Далее создайте точку монтирования:

sudo mkdir /mnt/smbmount

 

Смонтируйте общий ресурс с помощью следующей команды:

sudo mount -t cifs -o username=username //samba_hostname_or_server_ip/sharename /mnt/smbmount

 

Например, чтобы смонтировать общий ресурс с именем andreyex на сервере Samba с IP-адресом 213.159.209.228 от имени пользователя andreyex до точки монтирования /mnt/smbmount, запустите:

sudo mount -t cifs -o username=andreyex //213.159.209.228/andreyex /mnt/smbmount

 

Вам будет предложено ввести пароль пользователя.

Password for andreyex@//213.159.209.228/andreyex:  ********

 

Использование GUI

Файлы, файловый менеджер по умолчанию в Gnome имеет встроенную опцию для доступа к общим ресурсам Samba.

  1. Откройте «Файлы» и нажмите «Другие места» на боковой панели.
  2. В поле «Подключение к серверу» введите адрес общей папки Samba в следующем формате smb://samba_hostname_or_server_ip/sharename.
  3. Нажмите «Подключиться» и появится следующий экран:
  4. Выберите «Зарегистрированный пользователь», введите имя пользователя и пароль Samba и нажмите «Подключиться».
  5. Файлы будут показаны на сервере Samba.

 

Подключение к Samba Share из macOS

В macOS вы можете получить доступ к общим ресурсам Samba либо из командной строки, либо с помощью стандартного менеджера файлов MacOS Finder. Следующие шаги показывают, как получить доступ к общему ресурсу с помощью Finder.

  1. Откройте «Finder», выберите «Go» и нажмите «Connect To».
  2. В поле «Подключиться к» введите адрес общего ресурса Samba в следующем формате smb://samba_hostname_or_server_ip/sharename.
  3. Нажмите «Подключиться»
  4. Выберите «Зарегистрированный пользователь», введите имя пользователя и пароль Samba и нажмите «Подключиться».
  5. Файлы будут показаны на сервере Samba.

 

Подключение к общему ресурсу Samba из Windows

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

  1. Откройте проводник и в левой панели щелкните правой кнопкой мыши на «Мой компьютер».
  2. Выберите «Выбрать пользовательское сетевое расположение» и нажмите «Далее».
  3. В поле «Интернет или сетевой адрес» введите адрес общего ресурса Samba в следующем формате \\samba_hostname_or_server_ip\sharename.
  4. Нажмите «Далее», и вам будет предложено ввести учетные данные.
  5. В следующем окне вы можете ввести собственное имя для сетевого расположения. По умолчанию будет выбран сервер Samba.
  6. Нажмите «Далее», чтобы перейти к последнему экрану мастера настройки соединения.
  7. Нажмите «Готово», и файлы на сервере Samba будут показаны.

Заключение

Из этого руководства вы узнали, как установить сервер Samba в CentOS 7 и создать различные типы общих ресурсов и пользователей. Мы также показали, как подключиться к серверу Samba с устройств Linux, macOS и Windows.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

SAMBA 3 в Linux и Windows клиенты.

В этой статье я расскажу как настроить Samba 3.x без LDAP, AD и т.д. Для небольших компаний это идеальный вариант. Суть данного способа заключается в том что, User включив компьютер и при входе в систему Windows введя Login: ХХХХ и Password: XXXX может зайти на SMB сервер в ту папку, которую вы ему разрешите. Важно чтобы пользователь в виндозе был зареган с логином на латинском и паролем не менее 6 а лучше 12 символов.
1. Установка Лезем на офф сайт SAMBA и скачиваем последнюю версию дистрибутива. Копируем в папку где у нас на сервере лежат дистрибы, это как правило /usr/src Распаковываем
tar zxvf samba-3.x.tar.gz
Дальше как обыно:
./configure ./make ./make install
но для начала рекомендую: ./configure —help Для тех кто не любит заморачиваться с исходниками просто ставим rpm пакет либо используем самбу которая входит в дистриб. В CentOS, Mandriva и им подобные можно легко организовать это через приятный графический интерфейс, думаю сами разберётесь. 2. Настройка После установки нужно добавить необходимых пользователей в систему и в самбу, лучше всё это делать через консоль. Как добалять пользователей очень хорошо описано на ibm. com. # useradd user, где user это login пользователя Windows Задаём пароль этому пользователю. Важно чтобы пароль был такой же как при входе в Windows. # passwd user Далее добавляем этого же пользователя в Samba: # smbpasswd -a user (вас попросят ввести пароль два раза, вводим тот же что и в Windows). И включаем доступ пользователю user. smbpasswd -e user отредактируем /etc/samba/smb.conf я не буду описывать что значит каждый параметр, это вы можете найти на офф сайте, приведу свой конфиг.
#===== Global Settings ========= [global]
workgroup = MYGROUP # рабочая группа
server
string = Samba Server # имя сервера

security = share # аутентификация пользователей так как мы хотели
;
hosts allow = 192.168.1. 192.168.2. 127. # эту строчку можно откоментровать и установить свои параметры если хотите разрешать доступ отдельным подсетям (стоит включить при использовании VPN).
; load printers = no # принтеры лучше выключить, т.к. у нас всё рано не будет пинтсервера, для этого есть апаратные решения.
; printcap name = /etc/printcap
; printcap name = lpstat
; printing = cups guest account = nobody # разрешаем гостям заходить на чай и кофе со своим печеньем ;)
log file = /var/log/samba.%m # говорим куда писать логи (кто, куда, зачем и что делал)
max log size = 500 # максимальный размер файла логов в kb.
socket options = TCP_NODELAY # в стандартном конфиге по моему нет, но лучше прописать. Параметр для оптимиации работы Самбы, проверено опытным путём.
; interfaces = 192.168.12.2/24 192.168.13.2/24 # те интерфейсы которые будем слущать, по умолчанию слушаются все, если хотите пропишите конкретные.
encrypt passwords = yes # поддержка шифрованых паролей
#========= Share Definitions =========== # Закоментированные параметры оставил в качестве примера как можно делать.
; [netlogon]
; comment = Network Logon Service
; path = /usr/local/samba/lib/netlogon
; guest ok = yes
; writable = no
; share modes = no
;[Profiles]
; path = /usr/local/samba/profiles
; browseable = no
; guest ok = yes ;[printers]
; comment = All Printers
; path = /var/spool/samba
; browseable = no
; guest ok = no
; writable = no
; printable = yes
;[tmp]
; comment = Temporary file space
; path = /tmp
; read only = no
; public = yes # Для группы пользователей staff group
;[public]
; comment = Public Stuff
; path = /home/samba
; public = yes
; writable = yes
; printable = no
; write list = @staff
;[fredsprn]
; comment = Fred's Printer
; valid users = fred
; path = /homes/fred
; printer = freds_printer
; public = no
; writable = no
; printable = yes
;[fredsdir]
; comment = Fred's Service
; path = /usr/somewhere/private
; valid users = fred
; public = no
; writable = yes
; printable = no
;[pchome]
; comment = PC Directories
; path = /usr/pc/%m
; public = no
; writable = yes
[public] path = /home/ftp public = yes
guest ok = no
writable = yes
printable = no
valid users = User @Groupp # доступна для пользователя User и группы Groupp
;
; path = /2/FISH/ok
; public = yes
; guest ok = yes
; writable = no
; printable = no
;[videofiles]
; path = /home/ftp/video
; public = no
; guest ok = yes
; writable = yes
; printable = no
;[sound]
; path = /home/ftp/unsorted/mp3
; public = no
; guest ok = yes
; writable = yes
; printable = no
;[myshare]
; comment = Mary's and Fred's stuff
; path = /usr/somewhere/shared
; valid users = mary fred
; public = no
; writable = yes
; printable = no
; create mask = 0765

Настройка закончена, сохраняемся и выходим. Делаем рестарт серверу самбы:
# /etc/rc.d/init.d/smb restart
В принципе всё. Те кто не хочет заморачиваться и исправлять в конфиге у себя каждый параметр, сохраните мой кофиг, скопируйте его в /etc/samba, добавьте необходимых пользователей и группы. перезапустите сервер. Поздравляю у Вас работает! P.S. Данный конфиг подходит и для версии 2.x.x

Samba

Samba

Настройка Samba

Используемая литература

1. Карла Шрёдер Рецепты Линукс

2. Статья в интернете SUSE + SAMBA = PDC

3. Руководство (manual) man smb.conf, man smbpasswd

 

Опробована на Mandriva 2006

Samba 3.0.20

Windows XP PRO SP2

Windows 2000 PRO SP2

 

Конфигурация smb.conf

[global]

      dos charset = CP866

      unix charset = KOI8-R

      workgroup = SAMBA

      netbios name = SAMBASERVER

      server string = Samba Server %v

      log level = 2

      log file = /var/log/samba/log

      max log size = 50

      add machine script = /usr/sbin/adduser -n -g mach -c «Machine» -d /dev/null -s /bin/false %u

      logon script = netlogon. bat

      logon path =

      logon home = «»

      domain logons = Yes

      os level = 64

      preferred master = Yes

      domain master = Yes

      ldap ssl = no

      idmap uid = 10000-20000

      idmap gid = 10000-20000

      hosts allow = 127., 192.168.7.

 

[netlogon]

      path = /var/samba/netlogon

      guest ok = Yes

      browseable = No

 

Перегрузить samba

#service smb restart

Необходимо добавить root в smbpasswd

#smbpasswd -a root

пароль root можно сделать другим чем при входе в LINUX

 

подключение рабочей станции к домену производится от пользователя root (если заданы псевдонимы в smbusers то от них, в конфигурации нужно произвести изменения см. man smb.conf)

создать директорию netlogon

#mkdir -m 0775 /var/samba/netlogon

создать группу sadmins и присвоить ей GID=1000 (или другой запланированный)

groupadd -g 1000 sadmins

Задать владельца и группу-владельца директории netlogon

#chown root. sadmins /var/samba/netlogon

Создать пользователя user и присвоить ему GID=1000 (принадлежность группе sadmins), если нужно без домашней директории и без shell

#useradd -d /dev/null -s /bin/false -g 1000 user

если нужно заблокировать пароль

#passwd -l user

 

добавить в smbpasswd

#smbpasswd -a user

добавить в группу администраторы домена пользователя user

#net group modify ntgroup=»Domain Admins» unixgroup=sadmins

просмотреть

#net group modify list

удалить повторяющиеся

#net group cleanup

в результате в Windows в группе администраторы после подключения к домену появится группа SAMBA\Domain Admins, т.к. пользователь user входит в данную группу, он при входе в систему Windows будет иметь права администратора.

 

Строки

      logon path =

      logon home = «»

необходимы для того чтобы отключить перемещаемые профили, если windows все равно их запрашивает то в windows xp необходимо в меню пуск-выполнить набрать gpedit. msc, там перейти последовательно:

— политика локальный компьютер

— конфигурация компьютера

— административные шаблоны

— система

— профили пользователей

затем

— разрешать использование только локальных профилей — включить

 

Строка

      add machine script = /usr/sbin/adduser -n -g mach -c «Machine» -d /dev/null -s /bin/false %u

необходима чтобы не заводить вручную бюджеты машин, они будут автоматически добавляться, взята из man smb.conf

 

      idmap uid = 10000-20000

      idmap gid = 10000-20000

            из перевода smb.conf, который  был вначале до его редактирования.

            Опции для использования winbind. Winbind разрешает вам делать все аккаунты и аутентификацию с windows или windows контроллеров домена, создавая аккаунты на лету, и поддерживать windows RIDs в unix uid’s и gid’s. winbind uid и winbind gid единственные обязательные параметры. winbind gid существует в диапозоне uid’s winbind, которые могут использовать отображение RIDs в gid’s.

           

            Узнать версию Samba

#smbclient -V

           

            Можно еще усовершенствовать конфигурацию, для корпоративного использования этого не достаточно.

     

      dos charset = CP866

      unix charset = KOI8-R

Для того возможно, что если создаются перемещаемые профили, имеющие названия на русском, чтобы они в Mandriva(е) отображались не иероглифами, а в читаемом виде (возможно в других дистрибутивах изменять unix charset не нужно, по умолчанию UTF-8, dos charset = CP850 посмотреть можно через SWAT).

Настройка сервера Samba — www.cdt-s.com

user@user-desktop:~$ sudo mkdir -p /softvare/{microsoft,linux,virtual} /administ/{olek,andri,artur} /gest/{brochuras,vidios,fotos}

user@user-desktop:~$ sudo chmod 777 /home/user/gest/brochuras
user@user-desktop:~$ sudo chmod 777 /home/user/gest/fotos
user@user-desktop:~$ sudo chmod 777 /home/user/gest/vidios

user@user-desktop:~$ sudo chmod 700 /home/user/administ/olek
user@user-desktop:~$ sudo chmod 700 /home/user/administ/andri
user@user-desktop:~$ sudo chmod 700 /home/user/administ/artur

user@user-desktop:~$ sudo chmod 777 /home/user/softvare/linux
user@user-desktop:~$ sudo chmod 770 /home/user/softvare/microsoft
user@user-desktop:~$ sudo chmod 770 /home/user/softvare/virtual

user@user-desktop:~$ sudo adduser softvare
user@user-desktop:~$ sudo adduser microsoft
user@user-desktop:~$ sudo adduser linux
user@user-desktop:~$ sudo adduser virtual
user@user-desktop:~$ sudo adduser administ
user@user-desktop:~$ sudo adduser olek
user@user-desktop:~$ sudo adduser andri
user@user-desktop:~$ sudo adduser artur
user@user-desktop:~$ sudo adduser gest
user@user-desktop:~$ sudo adduser brochuras
user@user-desktop:~$ sudo adduser vidios
user@user-desktop:~$ sudo adduser fotos

user@user-desktop:~$ sudo chown arthur. arthur /administ/artur
user@user-desktop:~$ sudo chown arthur /administ/artur
user@user-desktop:~$ cat /etc/passwd

——————————
user@user-desktop:~$ sudo nano /etc/samba/smb.conf
………………………………………………………………………….
[softvare]
        comment = softvare Folder
        path = /home/softvare
        valid users = @softvare
        read only = No
        create mask = 0770
        browserable = no

[administ]
        comment = administ Folder
        path = /home/administ
        valid users = @administ
        read only = No
        create mask = 0700
        browserable = no

[gest]
        comment = gest Folder
        path = /home/gest
        valid users = @gest
        read only = No
        create mask = 0777
        browserable = no

——————————
user@user-desktop:~$ testparm
# para testar
———————————————————————————————————

Файл конфигурации Samba по умолчанию (/etc/samba/smb. conf)
позволяет пользователям просматривать свои домашние каталоги как
ресурсы Samba. Служба Samba также позволяет разделять все настроенные в
системе принтеры в виде общих принтеров Samba. Другими словами, вы
можете подключить к своему компьютеру принтер и печатать на нём, работая
в сети на компьютерах с Windows.

На сервере, предоставляющем
доступ к каталогам через Samba, должна работать служба smb.

Определите состояние демона Samba, выполнив следующую
команду:

Запустите демона с помощью следующей команды:

Остановите демона с помощью следующей команды:

Чтобы служба smb запускалась при загрузке,
выполните команду:

Определить службы, запускающиеся при загрузке системы, вы также
можете с помощью chkconfig, ntsysv или средства Настройка
служб (Services Configuration Tool)
. За подробностями обратитесь к

Поддержка
безопасности вашей системы Red Hat Linux чрезвычайно важна, и один из
способов её обеспечить — аккуратно управлять доступом к системым
службом. Иногда необходимо открыть доступ к некоторым службам вашей
системы (например, httpd, если у вас работает
веб-сервер). Однако, если вам не нужно предоставлять службу клиентам,
следует отключить её, чтобы уменьшить степень воздействия на систему
программ, эксплуатирующих возможные ошибки.

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

Самый простой способ запретить доступ к службе —
отключить её. Запускать и останавливать службы, управляемые xinetd, а также службы в иерархии /etc/rc.d/init.d (также называемые службами SysV)
можно с помощью трёх различных приложений:

Использовать эти средства проще, чем
альтернативный способ — редактировать множество ссылок, расположенных в
каталогах: /etc/rc.d вручную или изменять
файлы настроек xinetd в /etc/xinetd.d.

Другой способ управления доступом к системным службам —
использовать iptables для настройки
IP-брандмауэра. Если вы новичок в Linux, вам следует понять, что iptables может оказаться для вас не лучшим
решением. Настройка iptables может быть
непростой задачей, её лучше выполнять опытным системным администраторам
Linux.

С другой стороны, преимуществом использования iptables является гибкость. Например, если вам
нужны особые правила, разрешающие доступ определённых узлов к
определённым службам, вы сможете определить их в iptables.
Обратитесь к Справочному руководству по Red Hat
Enterprise Linux
и Руководству по безопасности
Red Hat Enterprise Linux
за дополнительной информацией об iptables.

Если же вам нужна утилита для назначения простых правил
доступа к вашему домашнему компьютеру и/или вы мало знакомы с Linux,
попробуйте средство Настройка уровня безопасности
(Security Level Configuration Tool)
(system-config-securitylevel),
с помощью которого вы можете выбрать уровень безопасности для своей
системы, так же, как и в диалоге Настройка
брандмауэра (Firewall Configuration)
во время установки системы.

За дополнительными сведениями обратитесь к главе
19 Основная настройка брандмауэра. Если вам нужны более
точные правила брандмауэра, обратитесь к разделу iptables
Справочного руководства по Red Hat Enterprise
Linux
.

Для
того чтобы суметь правильно настроить доступ к службам, вы должны
понимать, что такое уровни выполнения Linux. Уровень выполнения — это
состояние или режим, который определяется
службами, перечисленными в каталоге /etc/rc.d/rc<x>.d, где <x> — номер уровня выполнения.

Существуют следующие уровни выполнения:

  • 0 — Останов

  • 1 — Режим одного
    пользователя

  • 2 — Не используется (определяется
    пользователем)

  • 3 — Полный многопользовательский режим

  • 4
    — Не используется (определяется пользователем)

  • 5 —
    Полный многопользовательский режим (с графическим экраном входа в
    систему)

  • 6 — Перезагрузка

Если вы
используете текстовый экран входа, вы работаете в уровне выполнения 3.
Если вы используете графический экран, вы работаете в уровне выполнения
5.

Уровень выполнения по умолчанию может быть изменён в файле
/etc/inittab, который содержит в начале
строку, подобную следующей:

Подставьте вместо числа в этой строке требуемый уровень выполнения.
Изменения не вступают в силу до перезапуска системы.

Чтобы изменить уровень выполнения немедленно, выполните
команду telinit, добавив номер уровня
выполнения. Чтобы использовать эту команду, вы должны быть пользователем
root. Команда telinit не меняет файл /etc/inittab, она меняет только текущий уровень
выполнения. После перезагрузки система по-прежнему будет загружать
уровень выполнения, указанный в файле /etc/inittab.


Тут просили опытом поделиться, как я создал файловый
сервер Samba с авторизацией в домене Windows NT 4.0 и раздаю права на
папки на уровне домена.
Что ж. Тогда сразу оговорюсь на чем делал я:
1. Домен Windows NT 4. 0
2. FreeBSD 5.2.1
3. Samba (исходники, в пекеджах не годятся) 2.2.8a (пробовал на ветке
3.х, работало, но были проблемы с выводом списка доменных пользователей и
груп).

И так приступим.

1. Установка

Распаковываем исходники Samba:
tar -zxvf samba-2.2.8a.tar.gz

Конфигурим (параметры для дальнейшей работы критичны!):
cd \samba-2.2.8a\source
configure —with-winbind —with-winbind-auth-challenge
—with-acl-support —with-syslog
Если хотите создавать дисковые квоты, то можно добавить —with-quotas,
но они не будут работать пока вы не перекомпилируете ядро с поддержкой
дисковых квот.

Ждем завершения.
Компилируем.
make
make modules

и инсталлируем
make install

2. Конфигурирование.

Для простоты привожу свой файл smb.conf:
#=======================
[global]
workgroup = FC
netbios name = SVALKA
server string = Garbage
hosts allow = 192.168.14. 192.168. 3. 192.168.17. 192.168.18. 127.
log file = /var/log/log.%m
max log size = 500
security = domain
password server = *
encrypt passwords = yes
socket options = TCP_NODELAY
local master = no
dns proxy = no
dos charset = CP866
display charset = CP866
delete readonly = yes

username map=/usr/local/samba/lib/smbusers

idmap uid=10000-20000
idmap gid=10000-20000
winbind enum users=yes
winbind enum groups=yes

#======== Share Definitions =======
[homes]
comment = Home Directories for %u
browseable = no
writeable = yes
valid users=’@FC\Domain Users’
create mask = 0775

[DiskQ]
comment = DiskQ (%u)
path = /home/mounted/diskq
browseable = no
public = no
writeable = yes
printable = no
valid users=’@FC\Domain Users’
create mask = 6777
directory mask = 6777
veto files = /*.avi/*.mp*/*.jpg/*.bmp/*.gif/*.wav/

[DiskK]
comment = DiskK (%u)
path = /home/diskk
browseable = no
public = no
writeable = yes
printable = no
valid users=’@FC\Domain Admins’,’@FC\CB_Group’,’@FC\TipaAdmin’
create mask = 0777
directory mask = 0777

[ForAdmins]
comment = Admins Share (%u)
path = /home/mounted/diskx
public = no
browseable = no
writeable = yes
printable = no
valid users=’@FC\Domain Admins’,’@FC\TipaAdmin’
create mask = 6775
directory mask = 6777

[odbarchive]
comment = CopyGarbage (%u)
path = /home/archive
public = no
browseable = yes
writeable = yes
printable = no
valid users=’@FC\Domain Admins’,’@FC\TipaAdmin’
create mask = 0775
directory mask = 0777

[Users]
comment = User Dir’s (%u)
path = /home/mounted/diskq/exchange/usersdir
public = yes
browseable = yes
writeable = yes
printable = no
valid users=’@FC\Domain Users’
create mask = 6777
directory mask = 6777
veto files = /*. avi/*.mp*/
#=======================

После изменения smb.conf можно попробовать зарегистрироваться в домене
Windows NT.
net join -U имя_администратора_домена
команда запросит у Вас пароль админа и должна ответить положительно.
Joined domain FC. (тут должен стоять Ваш домен)

Запускаем
winbind -d9

и контролируем его работу:

команда wbinfo -p должна вернуть:
‘ping’ to winbindd succeeded

команда wbinfo -t должна вернуть:
checking the trust secret via RPC calls succeeded

Если это не так, заглядываем в логи winbind и разбираемся в чем дело.

Копируем библиотеку libnss_winbind.so в каталог /lib:
cp nsswitch/libnss_winbind.so /lib

создаем символические ссылки на нее:

ln -s /lib/libnss_winbind.so /lib/libnss_winbind.so.1
ln -s /lib/libnss_winbind.so /lib/libnss_winbind.so.2

Изменяем файл /etc/nsswitch.conf. Он должен содержать строки вида

passwd: files winbind
shadow: files
group: files winbind

Перезапустите winbindd.

Проверяем видимость доменных пользователей и груп:
winbind -u
winbind -g
Вы должны увидеть записи типа:
…..
FC\Username1
FC\User2
FC\Name3
….
Приставка домена с «\» обязательна — иначе нормальная
раздача прав Вам не светит!

3. Автозапуск файлового сервера
Теперь осталось настроить все для автоматического запуска сервера.
Можно запускать демонов самбы при запуске, но разумней (а возможно и
правильней) будет запускать сервисы по мере обращения к ним.
Соответственно мы получим запуск сервисов под учетными записями
пользователей в домене НТ.
Для это в /etc/inetd.conf добавляем (или исправляем):
netbios-ssn stream tcp nowait root /usr/local/samba/sbin/smbd
netbios-ns dgram udp wait root /usr/local/samba/sbin/nmb
А в /etc/rc.local:
/usr/local/samba/sbin/winbindd -B

Кстати если запускать не от рута, то ничего не работает. Почему?

После чего соединяемся с ресурсом со станции Windows уже зашедшего
пользователя домена НТ и делаем на Юниксе команду
top

Вот приблизительній результат:
last pid: 69416; load averages: 0. 08, 0.03, 0.01 up 22+02:29:33
14:08:54
115 processes: 1 running, 114 sleeping
CPU states: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 0.0%
idle
Mem: 125M Active, 232M Inact, 97M Wired, 28M Cache, 60M Buf, 15M Free
Swap: 1024M Total, 100K Used, 1024M Free
Order to sort: tal, 100K Used, 1024M Free
PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND
390 root 96 0 23572K 20200K select 8:54 0.20% 0.20% winbin
54341 FC\JackSoft 96 0 13712K 9040K select 1:16 0.00% 0.00% smbd
397 root -8 0 7036K 3408K piperd 0:16 0.00% 0.00% winbin
68680 FC\SurgkoAN 96 0 8924K 4072K select 0:03 0.00% 0.00% smbd

Если есть такая картина и юзер зашел! Идем пить пиво!

4. Раздача прав на папки.

Тут все просто. Раздавайте себе права на уровне Юникса, но
прописывайте сразу доменных юзеров и группы. Например,
chown FC\JackSoft DiskK
chown :FC\Domain Admins ForAdmins
и т.д.

5. Квотирование диска.
Квоты раздаются на уровне ОС FreeBSD в файле /etc/fstab:
# Device Mountpoint FStype Options Dump Pass#
/dev/ad0s1b none swap sw 0 0
/dev/ad0s1a / ufs rw 1 1
/dev/ad0s1f /home ufs rw,userquota,groupquota
/dev/ad0s1e /usr ufs rw 2 2
/dev/ad0s1d /var ufs rw 2 2
/dev/acd0 /cdrom cd9660 ro,noauto 0 0
/dev/ad2s1d /home/mounted/diskq ufs rw,userquota,groupquota
/dev/ad2s1e /home/mounted/diskx ufs rw,userquota,groupquota

проверяем работает ли квота:
quota -v

, а уже потом создаются/меняются для группы и ли пользователя:

edquota FC\JackSoft
man edquota

редактируем тектстовый файл и записываем его.
Все квота изменена.

P.S. Установленная система так работает уже пол-года. Скорость
файлового сервера на


Все будет Samba!

Сергей Ефремов, Издательский
Дом «Комиздат»

У многих начинающих администраторов ОС Linux
возникают те или иные проблемы при настройке и запуске в эксплуатацию
системы Samba. Правильно настроенный пакет позволит избежать головной
боли в дальнейшем. Итак, начнем…

Лучше день потерять,
зато за десять минут
долететь…
(с) Крылья, ноги и хвост

Зачем нужна Samba

Эта служба предоставляет ряд возможностей:

  • разделение файловых систем Linux операционными системами Windows
    9x/NT;
  • разделение файловых систем Windows 9x/NT операционной системой
    Linux;
  • совместное использование принтеров, подключенных к системе Linux,
    операционными системами Windows 9x/NT;
  • совместное использование принтеров, подключенных к Windows 9x/NT,
    операционной системой Linux;
  • организации системы доменов для клиентов под управлением ОС Windows.

Samba представляет собой протокол, используемый
Microsoft для разделения файлов и служб печати. Этот протокол был
разработан в 1987 году и позже перенесен на платформы Linux Эндрю
Триджеллом (Andrew Tridgell). Официальный сайт Samba, тут вы всегда найдете
интересующую вас информацию и новые версии пакета.

Что нам надо для счастья
  1. Операционная система Red Hat Linux 7.2 — на мой взгляд, этот релиз, хоть
    он и не самый новый, наиболее оптимален для серверов.
  2. Стабильная версия Samba
    — например, версия 2.2.5, пакет samba-2.2.5.tar.gz.
  3. Компилятор зыка С — gcc (рекомендую установить версию gcc 3.1).
  4. Патч Network Recycle Bin, разработанный в Amherst
    College. Как видно из названия, этот пачт позволит расширить стандартную
    функциональность поддержкой корзины для удаленных файлов на сетевых
    дисках.
  5. Ну и конечно — физический или виртуальный сервер, на который мы
    будем устанавливать программу (в моем случае это был Dual PIIIs 866,
    512M ECC, SCSI RAID Mylex170, 4 HDD SCSI IBM 18G в RAID5, Teckram 390U +
    SCSI 18G Seagate).
Организация дисковых разделов

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

/boot100MЗагрузочный раздел
/3.5GКорень системы с не выделенным /home /usr
/tmp2GРаздел для временных файлов
swap1GРаздел виртуальной памяти
/var6GРаздел для рабочих данных системных программ и ведения логических
журналов программ
/install5.3GРаздел с инсталляционным ПО и драйверами для машин пользователей
/FileServer40. 6GРаздел файлового сервера
/Vol17GРаздел хранения в архивном виде данных пользователей

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

Установка

Все операции проводим под авторизацией root (администратора системы).

Распакуем пакет samba-2.2.5.tar.gz в каталог /usr/src/redhat/SOURCES:

# cat samba-2.2.5.tar.gz | gzip -d | tar xvpf -

Теперь установим поддержку «сетевой корзины». Зачем
нужна «сетевая корзина»? Все операционные системы, имеющие GUI,
предоставляют пользователям (в той или иной мере) так называемую
«корзину», которая служит для временного хранения файлов, удаленных
пользователем на своей рабочей станции. При работе в сети эти функции
обычно недоступны для сетевых ресурсов, поэтому администраторам системы
приходиться делать периодический BackUp файлов пользователей. Но это
перестает быть эффективным, если удаленный файл не был сохранен с
помощью программ, организующих BackUp. Именно для такого случая и нужна
«сетевая корзина».

Еще одно ее достоинство — возможность восстановления
предыдущей версии файла пользователем самостоятельно, без привлечения
администратора сети. Но здесь сразу же стоит сделать некоторые
замечания:

  • «сетевая корзина» — это обычная папка, которую можно размещать
    как на текущем (классический вид), так и на специализированном ресурсе.
    Причем в последнем случае на этом же диске могут находиться и корзины
    других пользователей — в виде так называемого Online Backup ресурса;
  • по умолчанию в патче атрибуты доступа на корзину — 0700. То есть в
    эту папку может зайти и что-либо с ней делать только владелец этого
    ресурса. Это не вызывает проблем, если пользователь использует сетевой
    ресурс один,- но обычно одним ресурсом пользуется несколько
    пользователей, и в этом случае возникает ситуация, когда только один
    пользователь может удалять файлы. Для решения этой проблемы предлагаю в
    файле reply.c.patch изменить строку №15 с «+ int dir_mask=0700;» на «+
    int dir_mask=0777;» — это позволит всем пользователям данного ресурса
    корректно работать с данной папкой;
  • если в системе используются квоты (quota), то их установки влияют и
    на корзину — так что при расчете квот нужно учитывать этот момент;
  • в ходе эксплуатации была обнаружена проблема, заключающаяся в том,
    что, если в конфигурационном файле указать полный, а не относительный
    путь к корзине на ресурсе, то при попытке пользователя удалить файл в
    корзине происходило следующее: файл не удалялся, а переименовывался по
    формату «имя файла. (Copy #N).расширение» (где N — номер файла с
    одинаковыми именами). То есть срабатывал алгоритм, по условиям которого,
    если файл с определенным именем есть в корзине, то происходит не замена
    старого файла новым, а добавление дополнительного суффикса и
    инкрементация его номера. Для решения данной проблемы необходимо в файле
    reply. c.patch изменить строку № 38 с «+ if (strcmp (fname,bin)){» на «+
    if (access (bin, F_OK)!=-1) {«.

По окончанию описанных мероприятий переходим к
компиляции пакета и его установке, для чего устанавливаем патч:

# patch /usr/src/redhat/SOURCES
/samba-2.2.5/source/include/proto.h
/usr/src/readhat/SOURCES/proto.h.patch

# patch /usr/src/redhat/SOURCES
/samba-2.2.5/source/param/loadparm.c
/usr/src/readhat/SOURCES/loadparm.c.patch

# patch /usr/src/redhat/SOURCES
/samba-2.2.5/source/smbd/reply.c
/usr/src/readhat/SOURCES/reply.h.patch

И выполняем конфигурацию пакета инсталляции (полный
перечень всех параметров можно получить по команде./configure —help):

  • переходим в каталог /usr/src/redhat/SOURCES/samba-2.2.5/source
  • # cd /usr/src/redhat/SOURCES/samba-2.2.5/source
  • выполняем конфигурирование:
  • # ./configure --prefix=/usr --with-quota 
    --with-smbmount --with-msdfs
    --with-privatedir=/etc/samba
    --with-configdir=/etc/samba
    --with-lockdir=/var/lock/samba
    --with-piddir=/var/run/samba
    --with-logfilebasedir=/var/log/samba

    Этим мы дали команду включить в сборку smbmount,
    который служит для монтирования SMB-ресурсов в файловую структуру Linux,
    включили поддержку квот (quota), а также поддержку Microsoft DFS, и
    приказали устанавливаться в каталог /usr;

  • далее выполняем стандартные:
  • # make; make install
  • еще одним шагом сделаем, следующее:
  • копируем файл smb. init:

    # cp /usr/packaging/RedHat/smb.init /etc/init.d/smb

    делаем симлинк на это файл (чтобы при старте сервера у нас всегда
    запускалась служба):

    # ln -s /etc/init.d/smb /etc/rc3.d/S99samba

    и, на всякий случай,- для init 5:

    # ln -s /etc/init.d/smb /etc/rc5.d/S99samba

    В результате получаем установленный пакет. Начинаем
    его настраивать. Основной файл конфигурации и файл паролей пользователей
    будет находиться в /etc/samba.

    Приступаем к настройке

    Для начала определимся со структурой каталогов на разделе /FileServer
    — для примера рассмотрим такой вариант:

    /FileServer/etcПапка будет содержать файлы конфигурации Samba
    /FileServer/netlogonПапка для скриптов входа в домен
    /FileServer/otdel_1Папка 1 отдела
    /FileServer/otdel_NПапка N отдела
    /FileServer/PublicОбщий для всех отделов ресурс

    Соответственно, в основном файле конфигурации /etc/samba/smb. conf
    прописываем:

    include=/FileServer/etc/smb.global
    include=/FileServer/etc/%U.conf

    — то есть мы будет управлять каждым пользователем
    отдельно. Такое управление выбрано как более гибкое, нежели управление
    группами пользователей, потому что оно позволяет более жестко
    контролировать отдельных пользователей в случае необходимости в таком
    контроле. В обычный ситуации я создаю один конфигурационный файл для
    всей группы, а для отдельных пользователей делаю на него symlink
    («мягкую» ссылку на файл) по имени пользователя.

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

    # chmod 777 /FileServer/otdel*
    # chmod 777 /FileServer/Public*

    Теперь сформируем файл /FileServer/etc/smb.global:

    [global]
    null passwords = false
    workgroup=MY_DOMAIN
    netbios name=MyServ
    server string=File Server
    character set=KOI8-R
    client code page=866
    unix password sync = yes
    passwd chat = *new*password* %n\n *new*password*
    %n\n *success*
    passwd program = /usr/bin/passwd %u
    interfaces=eth0
    bind interfaces only=True
    hosts deny=ALL
    hosts allow=192. 168.0.0/255.255.0.0 127.0.0.1
    protocol=NT1
    security=domain
    encrypt passwords=yes
    lm interval=0
    oplocks=False
    level2 oplocks=No

    syslog=1
    wins support=Yes
    domain master=Yes
    local master=Yes
    preferred master=Yes
    os level=255
    log level=0
    log file=/dev/null
    domain logons=yes
    logon script=%U.bat
    create mask=0666
    directory mask=0777
    security mask=0777
    force create mode=0777
    nt acl support =yes
    socket options =SO_KEEPALIVE SO_BROADCAST
    TCP_NODELAY
    SO_RCVBUF=4096 SO_SNDBUF=4096
    domain admin group = root
    add user script = /usr/sbin/useradd -d
    /dev/null -g
    machines -s /bin/false -M %u
    logon path = \%L\Profiles\%U

    [Profiles]
    path = /var/lib/samba/profiles
    browseable = no
    read only = no
    create mask = 0600
    directory mask = 0700

    Проведем анализ — что же мы тут написали. Как видим, у
    нас есть два раздела: [global] и [Profiles] — первый отвечает за
    информацию непосредственно о сервере и общих настройках, а второй
    описывает каталог, в котором будут храниться профили пользователей на
    сервере. Соответственно, каталог /var/lib/samba/profiles должен
    существовать — и при этом права доступа должны разрешать писать туда
    всем (# chmod 777 /var/lib/samba/profiles).

    Раздел [global] — главные моменты:

    workgroupНазвание домена, в котором участвует сервер
    netbios nameКак будет откликаться сервер по NetBIOS-протоколу. Не делайте его
    таким же, как и имя рабочей группы!
    hosts allowСписок сетей, которым разрешен доступ к серверу
    interfacesСписок сетевых интерфейсов, которым разрешен доступ к серверу
    securityГоворит, какой будет аутентификация
    encrypt passwordsРазрешаем шифрованные пароли
    local masterSamba сразу берет на себя роль мастер-браузера
    preferred masterПри запуске устраивает перевыборы с наибольшим шансом для себя
    wins supportЗапускаем wins-сервер
    os levelУровень ОС. Чем выше номер, тем выше вероятность стать главным
    браузером сети
    domain logonsРазрешаем подсоединения в режиме домена
    logon scriptСкрипт, который выполнится при входе в домен
    domain admin groupКакой пользователь может добавлять машины и пользователей в домен
    add user scriptПозволяет samba работать как PDC Windows, то есть добавляет имя
    машины в список зарегистрированных в домене

    Более подробную информацию по командам конфигурации
    samba можно получить с помощью # man smb.conf.

    Следующим этапом мы создадим файл smb.netlogon со таким содержимым:

    [netlogon]
    path=/FileServer/netlogon
    writeable=no
    guest ok=no
    browsable=no
    available=yes

    Здесь описывается «шара» (сетевой ресурс) для
    возможности выполнения скрипта при входе в домен.

    И последний штрих — пример файла конфигурации для
    пользователя user, принадлежащего к отделу № 1, файл user.conf:

    include=/FileServer/etc/smb.global
    include=/FileServer/etc/smb.netlogon

    [Otdel]
    path=/FileServer/otdel_1
    comment=Информация отдела
    browsable=yes
    available=yes
    writeable=yes
    recycle bin=/FileServer/otdel_1/.recycled
    mangled names=no
    directory mask=0777
    create mask=0666
    fstype=NTFS

    [Public]
    path=/FileServer/Public
    comment=Общая информация
    browsable=yes
    available=yes
    writeable=yes
    mangled names=no
    directory mask=0777
    create mask=0666
    fstype=NTFS

    [Inst_Prog]
    path=/install
    comment=Инсталяционное ПО
    browsable=yes
    available=yes
    writeable=no
    mangled names=no
    fstype=NTFS

    [HP_5000]
    printer=lp
    comment = Queue for HP LaserJet 5000
    browseable = yes
    printable = yes
    public = yes
    writable = no
    create mode = 0700

    Проанализируем, что получилось. Итак, у нас есть
    четыре сетевых ресурса, три из них — это дисковые пространства, а
    последний — очередь на сетевой принтер. Параметр printer=lp дает нам
    ссылку на имя очереди принтера, который предварительно был установлен в
    системе и получил имя lp. Менеджер управления принтерами вызывается с
    помощью команды:

    # /usr/bin/redhat-config-printer

    Ресурс [Inst_Prog] предоставляет пользователям
    возможность получить доступ к инсталляционным пакетам программ и
    драйверам в режиме «только чтение».

    Ресурс [Otdel] — это папка отдела, к которому
    принадлежит пользователь; при описании этого ресурса была использована
    команда для организации на этом ресурсе «сетевой корзины» (recycle
    bin=/FileServer/otdel_1/.recycled). Как видно из синтаксиса команды, мы
    можем указать в качестве корзины как полный путь, так и относительный
    (например: recycle bin=.recycled). При использовании относительного пути
    в качестве базы для имени будет использован путь к сетевому ресурсу, в
    котором и описано правило по использованию «сетевой корзины».

    Следующим шагом будет написание файла скрипта,
    который будет выполняться при входе в домен,- обычно в этом файле
    производят подключение сетевых ресурсов и синхронизацию времени, хотя
    можно выполнять и другие задачи (например, запуск на рабочей станции
    программы удаленного администрирования — Remote Admin).

    Скрипт /FileServer/netlogon/user.bat:

    @echo off
    net use h: \MyServ\Otdel
    net use i: \MyServ\Public
    net use k: \MyServ\Inst_Prog
    net time \MyServ /SET /YES

    Здесь следует обратить внимание на одну деталь,
    связанную с кодовыми таблицами Windows и Linux: созданный в Linux файл
    для операционной системы выглядит как одна строка и, соответственно,
    написанные нами команды выполняться не будут. Чтобы обойти эту проблему,
    воспользуемся программой конвертации файлов из кодовой системы
    Linux/Unix в DOS/Windows:

    # unix2dos /FileServer/netlogon/user.bat

    На выходе получим файл в кодировке DOS, который ОС
    Windows сможет правильно интерпретировать.

    Нам осталось сделать еще одну маленькую операцию — и
    можно будет переходить к тестированию наших настроек.

    В процессе эксплуатации «сетевая корзина» будет
    заполняться данными, и нам нужно предусмотреть вариант переполнения
    корзины и — как следствие — исчерпание дискового пространства,
    предоставленного пользователю на сетевом ресурсе.

    Для решения этой задачи создадим скрипт
    clear_recycled, который поместим в каталог /etc/cron.daily. Это позволит
    выполнять скрипту каждую ночь и выполнять запланированные нами действия
    над «сетевой корзиной». В тело скрипта поместим следующие строки:

    #del after 1 day recycled file
    find /FileServer/otdel*/.recycled -type f -atime +1
    -exec rm {} \; >& /dev/null

    Приведенный скрипт просматривает во всех папках
    отделов «сетевую корзину» — и файлы, которые были помещены туда более
    одного дня назад, будут удалены. Параметр, отвечающий за данную опцию,-
    -atime +1. Здесь вы можете указать любое нужное количество дней. (Более
    подробно о возможностях команды find смотрите: man find.)

    Графический интерфейс управления Samba

    Этот интерфейс называется swat, он является так
    называемым веб-интерфейсом (то есть его можно использовать на любом
    компьютере, имеющем веб-браузер). Для активации доступа к этой службе
    необходимо создать в каталоге /etc/xinetd.d файл swat следующего
    содержания:

    service swat
    {
    port = 901
    socket-type = stream
    wait = no
    only_from = <IP адрес рабочей станции
    администратора>
    user = root
    server = /usr/bin/swat
    log_on_failure += USERID
    disable = no
    }

    После этого перезапускаем службу xinetd:

    # /etc/init.d/xinetd restart

    Теперь, если в браузере на рабочей станции
    администратора набрать: http://192.168.0.1:901 — получим графический
    интерфейс управления пакетом.

    Прежде чем начать непосредственное тестирование
    установленного пакета, необходимо выполнить следующие операции:

  • создать в системе группы, к которым будут принадлежать наши
    пользователи:
  • # groupadd otdel_1
    . ..
    # groupadd otdel_N
  • создать группу, в которую будем затем помещать имена машин
    пользователей (необходимо для ОС Windows 2000/XP/2003 Server):
  • # groupadd -g 9999 machines
  • создать скрипт machine_add (в папке /usr/bin) — для ручного
    добавления имен машин в наш домен:
  • useradd -d /dev/null -c "User PC" 
    -g machines -s /bin/false
    -M $1
    passwd -l $1
    smbpasswd -a -t $1

    В качестве параметра нашему скрипту передается имя
    компьютера с добавленным в конце знаком $. Например, для нашего
    пользователя user имя его ПК — otdel_n1_user:

    # /usr/bin/machine_add "otdel_n1_user$"
  • добавить в систему наших пользователей — с учетом принадлежности их
    своим группам:
  • # useradd -c "Фамилия Имя Отчество" -g otdel_1 -s
    /bin/false user
  • и, наконец, добавить нашего пользователя в список пользователей
    samba:
  • # smbpasswd -a user

    — с вводом ему первичного пароля. После входа в сеть
    пользователь на рабочей станции может самостоятельно сменить себе пароль
    — причем, тот должен будет удовлетворять двум условиям: не быть
    «пустым» и иметь длину не менее 6-ти символов. Эти условия
    контролируются Samba и при их нарушении смена пароля не будет допущена.

    Теперь мы можем проверить работоспособность установленного пакета.
    Для этого выполним следующий скрипт:

    # /etc/init.d/smb start

    Проверяем, что демон действительно работает:

    # /etc/ini.d/smb status

    В результате мы должны получить нечто вроде этого:

    smbd (pid 1488) выполняется...
    nmbd (pid 1492) выполняется...

    Переходим к проверке доступности ресурсов для
    пользователей (на примере пользователя user):

    # smbclient -L MyServ -U user
    added interface ip=192.168.0.2 bcast=192.168.0.255
    nmask=255.255.255.0
    Got a positive name query response from 192.168.0.1
    (192.168.0.1)
    Domain=[MY_DOMAIN] OS=[Unix] Server=[Samba 2. 2.5]
    Sharename Type Comment
    --------- ---- -------
    IPC$ IPC IPC Service (Samba Server)
    ADMIN$ Disk IPC Service (Samba Server)
    Otdel Disk Информация отдела
    Public Disk Общая информация
    Inst_Prog Disk Инсталяционное ПО
    HP_5000 Printer Queue for HP LaserJet 5000
    Server Comment
    --------- -------
    MyServ File Server
    Workgroup Master
    --------- -------
    MY_DOMAIN MyServ

    Как видно из полученного сообщения, все прошло удачно
    и при обращении к samba server пользователь получил свои ресурсы.

    Настройка Windows-клиента

    Прежде чем ввести компьютер в созданный домен,
    необходимо (для ОС Windows 2000/XP/2003 Server) изменить параметры входа
    в домен. Под этим подразумевается, что мы отключим некоторые ключи,
    использующиеся для задания специального доверительного общения между
    доменом, сделанным на базе ОС Windows, и Windows-клиентом. Для упрощения
    этого процесса создадим файл domain_fix. reg следующего содержания:

    REGEDIT4

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet
    \Services\Netlogon\Parameters]
    "requiresignorseal"=dword:00000000
    "requirestrongkey"=dword:00000000
    "sealsecurechannel"=dword:00000001
    "signsecurechannel"=dword:00000001

    Следующим шагом будет ввод ПК в домен.

    Для ОС Windows 9x все очень просто — необходимо в
    Свойствах сети выбрать службу Microsoft и в ее свойствах указать, что
    рабочая станция подключается в домен, и указать также его имя.

    Для Windows 2000/XP/2003 Server нужно вызвать вкладку
    Свойства на Мой компьютер — и выбрать вкладку Имя компьютера. Далее —
    команда Изменить (см. рис. 2).

    После этого ОС просмотрит текущую сеть на предмет
    наличия домена. Если тот будет найден, появится диалоговое окно, в
    котором вы (в качестве пользователя) должны указать логин пользователя,
    имеющего права для ввода рабочей станции в домен (в нашем случае, и по
    умолчанию, это root), и указать его пароль. После того как система
    сообщит о вводе рабочей станции в домен, она предложит перезагрузиться.

    Здесь мы можем пойти по двум направлениям — имеется
    ввиду, что нашему пользователю можно оставить «обычные права», а можно
    задать специальные.

    Если мы выбираем первый вариант, можно перегрузить
    систему и при загрузке просто указать имя пользователя и домен, с
    которого будем загружаться. Или же можем добавить пользователя через
    Панель управления > Администрирование > Управление
    компьютером > Локальные пользователи > Пользователи (создаем
    нового пользователя с указанием того, в каком домене он будет проходит
    аутентификацию и к какой группе будет принадлежать — например,
    Администраторы).

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

    Выводы

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


    Kонфигурация Samba сервера.

    автор: Eric Seigne.

    Резюме:

    Здесь я попробую рассказать вам о том, что надо сделать, для того
    чтобы,
    использовать linux-samba сервер в качестве контролера домена для Windows
    сети.
    Также будет рассмотрено управление пользователями и профилями. Этот
    документ
    относиться к Debian CNU/Linux 2.2 так что ваш smb.conf может отличаться в

    зависимости от дистрибутива. Для написания статьи использовалась samba 2.0.7


     

    Инсталяция Samba

    Будем считать что вы немного знакомы с samba и он установлен на вашем

    сервере. Если это не так, то для быстрой установки попробуйте:
    Debian:

    apt-get install samba
    RedHat(Mandrake): rpm -vih
    /mnt/cdrom/RedHat(Mandrake)/RPMS/samba*

     

    Файл конфигурации: основные параметры

    Samba использует свой собственный файл конфигурации который состоит
    из
    секций, таких как приведенная ниже [global] и [tmp].

    Файл
    настройки
    только для samba!
    <минимальный smb.conf file>
    [global]
    printing = bsd
    printcap name = /etc/printcap
    load printers = yes
    guest account = pcguest

    log file = /usr/local/samba/log.%m

    [tmp]
    comment = Temporary file space
    path = /tmp
    read only = yes
    public = yes
    </file>

    Если вы запустите samba с этим конфигом, то все windows машины в
    вашей
    локальной сети смогут увидеть в своем сетевом окружении машину, которая
    называется так же как ваш linux сервер и которая имеет разделяемый
    ресурс tmp, в
    который для всех разрешена запись.

    Внимание: когда вы изменяете ваш конфигурационный файл, вы должны
    перезапустить samba командой/etc/init.d/samba restart script (для

    debian)

     

    Файл конфигурации, идем дальше

    Давайте рассмотрим следующие параметры:

    • Секция [global]
      • netbios name:
        Netbios имя вашего сервера (то имя,
        которое вы
        увидите в сетевом окружении вашей windows машины), если не сделаете
        этого,
        то будет использовано имя сервера (hostname).
      • invalid users:
        Список пользователей которым
        запрещен доступ,
        например «root» рекомендуется включить в этот список.
      • interfaces:
        Если машина имеет несколько сетевых
        интерфейсов,
        то нужно указать какой необходимо использовать samba серверу.
      • security:
        Выбор режима безопасности, при
        security=user каждый
        пользователь должен иметь учетную запись (account) на GNU/Linux
        сервере,
        если вы хотите что бы samba сервер управлял доступом и
        пользователями, то
        используйте security=share.
      • workgroup:
        Рабочая группа.
      • server string:
        Описание вашего компьютера.
      • socket options:
        Опции сокета, с их помощью можно
        (и нужно)
        оптимизировать работу samba.
      • encrypt passwords:
        Должны ли вы использовать
        зашифрованные
        пароли? Это важно знать, потому, что каждая версия windows (почти)
        использует различные схемы авторизации.
      • wins support:
        Должен ли ваш сервер быть wins
        сервером?
      • os level:
        Определяет шансы samba сервера стать
        local
        mastero`ом для своей рабочей группы (чем выше значение тем меньше у
        конкурирующего сервера шансов).
      • domain master:
        Работать как domain master.
      • local master:
        Как local master.
      • preferred master:
        Это опция вместе с domain
        master = yes
        практически гарантирует, что ваш samba сервер станет domain
        master`ом
      • domain logons:
        Тrue если хотите чтобы samba
        выполняла функции
        ПЕРВИЧНОГО КОНТРОЛЕРА ДОМЕНА (PDC), для дополнительной информации по
        этому
        вопросу прочтите Samba-PDC-HOWTO.
      • logon script:
        Скрипт, который выполняется, когда
        пользователь
        успешно логиниться.
      • logon path:
        Путь для скриптов.
      • logon home:
        Тут храним профили юзеров.
      • name resolve order:
        Порядок разрешения имен.
      • dns proxy:
        Будем ли работать как DNS прокси?
      • preserve case:
      • short preserve case:
        Эти два параметра решают
        вопросы
        связанные со строчными и заглавными буквами (как известно в Unix
        ситемах это
        разные буквы а в Windows — одинаковые) .
      • unix password sync:
        Будет ли samba
        синхронизировать Unix и
        Samba пароли ?
      • passwd program:
        Программа для синхронизации
        паролей.
      • passwd chat:
        «Чат» протокол для смены пароля.
      • max log size:
        Максимальный размер для лог файла.
    • Section [netlogon]

      Описываем ресурс netlogon.

    • Section [profiles]

      Ресурс profiles.

    • Section [homes]

      Здесь home директории для каждого
      пользователя.

     

    Переменные

    ПеременнаяОписание
    Переменные клиента
    %aАрхитектура клиента
    Например: Win95, WinNT, Samba . ..
    %IIP адрес клиента
    %mNETBIOS имя клиента
    %MDNS имя клиента
    Переменные пользователя
    %gпервичная группа
    %Hдомашняя директория
    %uимя юзера
    Переменные расшаренных ресурсов
    %PКорневая папка ресурса
    %SИмя ресурса
    Переменные сервера
    %hDNS имя
    %LNETBIOS имя
    %vверсия Samba
    Другое
    %TТекущая дата и время

    Пример использования переменных: в сети где есть windows 3.11 и
    windows 98 вы
    можете создать 2 конфигурационных файла, по 1 для каждой системы
    используя
    переменную %a.

     

    Итак: наш конфиг файл

    <smb.conf file>

    [global]
    printing =
    bsd
    printcap name = /etc/printcap
    load printers = yes
    guest
    account =
    nobody
    invalid users = root

    ; указываем netbios имя
    netbios
    name =
    pantoufle
    ; и подсеть в которой работаем
    interfaces =
    192. 168.0.1/255.255.255.0

    ; режим user подразумевает что каждый
    пользователь имеет учетную запись на unix сервере
    security = user

    ;

    рабочая группа
    workgroup = rycks
    ; описание компьютера
    ; %h —
    DNS имя
    сервера, %v версия samba
    server string = %h server (Samba %v)

    ;
    samba
    ведет свои собственные логи
    syslog only = no
    syslog = 0;

    ;

    оптимизация соединений
    socket options = IPTOS_LOWDELAY TCP_NODELAY
    \
    SO_SNDBUF=4096 SO_RCVBUF=4096

    ; используем зашифрованные
    пароли !!!!
    для этого нужно пропатчить w95 и NT4
    encrypt passwords = yes

    ;
    Wins
    сервер позволяет использовать разделяемые ресуры нескольких подсетей
    wins

    support = yes

    ; OS level. См. выше
    os level = 34

    ;
    управление
    доменом
    local master = yes
    preferred master = yes

    ;
    уравление
    входом в домен
    domain logons = yes

    ; скрипт выполняемый при
    коннекте
    клиента (на машине клиента)
    logon script = %g. bat
    ; директория для

    скриптов
    logon path=\\%L\netlogon
    ; здесь храним профили
    logon
    home=\\%L\%U\winprofile

    ; в этом порядке идет поиск имен
    ;
    ВНИМАНИЕ:
    bcast в конце в отличии от windows
    name resolve order = lmhosts host
    wins
    bcast

    ; работа DNS proxy
    dns proxy = no

    ; регистр букв
    !!!!
    preserve case = yes
    short preserve case = yes

    ;
    синхронизация
    samba и unix паролей
    unix password sync = yes

    ; способ
    синхронизации
    passwd program = /usr/bin/passwd %u
    passwd chat =
    *Enter\snew\sUNIX\spassword:* \
    %n\n *Retype\snew\sUNIX\spassword:*
    %n\n
    .

    ; максимальный размер логфайла (строк)
    max log size = 1000

    ;

    tine сервер
    ; сихронизировать будем с помощью .bat файла
    time
    server =
    yes

    ; ресурс netlogon используется только во время установки
    соединения

    ; поэтому нет необходимости делать его публичным
    [netlogon]
    path
    =
    /home/netlogon/%g
    public = no
    writeable = no
    browseable = no

    ;

    каждому клиенту по собственной директории
    [homes]
    path =
    /home/%user
    comment = Home Directories
    browseable = no
    read
    only =
    no
    create mask = 0700
    directory mask = 0700

    ; для удобства
    можно
    расшарить и FTP
    ; чтобы доступ осуществлялся не только с помощью FTP
    клиента

    [ftp]
    path = /home/ftp/pub
    public = yes
    printable = no
    guest
    ok
    = yes

    ; tmp
    [tmp]
    path = /tmp
    public = yes
    printable
    =
    no
    guest ok = yes
    writable = yes

    ; tmp для отдельных юзеров

    [bigtemp]
    path = /home/bigtemp
    public = yes
    printable = no
    guest

    ok = yes
    valid users = erics
    writable = yes

    </smb. conf
    file>

     

    Что же должно быть на сервере ?

    На сервере мы должны иметь:

    • учетные записи для каждого клиента (account)
    • smb.conf файл
    • директорию /home/netlogon (в моем примере)
    • .bat файл для каждого пользователя и группы (примеры см.
      ниже)
    • файл CONFIG.POL для осуществления вашей политики безопасности

      директории /home/netlogon).
    • для создания файла config.pol понадобится poledit.exe.
    <file /home/netlogon/admin.bat>
    net use P: \\pantoufle\homes
    net use T: \\pantoufle\tmp
    net time \\pantoufle /SET /YES
    </file admin.bat>
    <file /home/netlogon/teachers/teachers.bat>
    net use P: \\pantoufle\homes
    net use T: \\pantoufle\tmp
    net time \\pantoufle /SET /YES
    regedit /s \\pantoufle\netlogon\teachers.reg
    </file teachers.bat>
    <file /home/netlogon/pupils/pupils. bat>
    net use P: \\pantoufle\homes
    net use T: \\pantoufle\tmp
    net time \\pantoufle /SET /YES
    regedit /s \\pantoufle\netlogon\pupils.reg
    </file pupils.bat>
    <file /home/netlogon/teachers/teachers.reg>
    [HKEY_CURRENT_USER\Software\Microsoft\Windows
    \CurrentVersion\Explorer\User Shell Folders]
    "Personal"="P:\\"
    </file teachers.reg>
    <file /home/netlogon/pupils/pupils.reg>
    [HKEY_CURRENT_USER\Software\Microsoft\Windows
    \CurrentVersion\Explorer\User Shell Folders]
    "Personal"="P:\\"
    </file pupils.reg>

    Эти файлы позволяют при загрузке автоматически подключать
    персональный ресурс
    как диск P:\ и tmp ресурс как диск T:\ . Так же происходит синхронизация

    времени.

    ВНИМАНИЕ: .bat файл должен быть в так называемом «DOS mode» (т.е.
    иметь все
    символы из DOS кодировки), для этого лучше всего создавайте его в
    блокноте
    (notepad) .

     

    Defining the system security policy (C) (TM) (R)

    Безопасночть
    в
    Windows почти возможна используя контролеры доменов.

    Этот заголовок взят из документации MS :o).

    Итак для воплощения в жизнь вашей политики безопасности (еще я думаю
    подойдет
    термин настройки системы), например для запрета запуска утилиты regedit,
    DOS
    программ и т.д., вам необходимо использовать программу POLEDIT из
    дистрибутива
    поставки Windows 98 .

    Запускайте poledit, читайте документацию, пробуйте: но эта статья не
    об
    этом.

    Итак, когда ваш .POL файл создан, скопируйте его в директорию ресурса

    [netlogon].

    ВНИМАНИЕ: Для Win9X клиентов настройки должны быть в файле
    CONFIG.POL
    … для WindowsNT он должен иметь другое имя, но я не знаю какое так как
    ей не
    полюзуюсь:( И пожалуйста не присылайте мне NT даже для теста. Хотя все
    равно
    спасибо за такие предложения :o)

    ЗАМЕЧАНИЕ: PolEdit разрешает создавать пользователей и группы.

    Работает, правда, это только с пользователем установленным по умолчанию.

    Например, если я создаю группу «admin» в PolEdit, которой можно
    запускать
    regedit, когда я подсоединяюсь под именем «erics» («admin» является его
    личной
    группой), regedit у меня не запускается :(.

    Хотя, если создать пользователя «erics» в poledit … все работает.

    Учитывая то, что нам не очень хочется создавать 1056 пользователей
    poledit и
    управлять всеми пользоателями сразу намного интереснее, мы предлагаем
    следующую
    хитрость:

    Для осуществления плана мы обошли проблему: мы создали 3 config.pol
    файла
    только пользователями по умолчанию, итак, на linux сервере
    получилось:
    /home/netlogon/teachers/CONFIG.POL
    /home/netlogon/teachers/teachers.bat
    /home/netlogon/pupils/CONFIG.POL
    /home/netlogon/pupils/pupils.bat
    /home/netlogon/admin/CONFIG.POL
    /home/netlogon/admin/admin.bat
    И

    немного изменили файл smb.conf чтобы она учитывала это:

    <smb.conf file>
    [netlogon]
    ; мы добавили %g
    чтобы
    переместить netlogon в другую дирректорию в зависимости от
    ; группы
    пользователей, к которой файл config.pol обращается в зависимости от
    группы
    ;
    пользователей
    path = /home/netlogon/%g
    public = no
    writeable =
    no
    browseable = no
    </smb. conf file>

     

    Настройки компьютеров под Windows

    Немного
    удачи,
    20 кликов мыши и перезагрузок наверно хватит для настройки
    windows!

    Для клиента под Win98

    Нажмите на Start/Parameters/Configpanel (Пуск/Панель управленя/Сеть) и
    дважды
    кликните на Network

    Необходимы::

    • Клиент для сетей Майкрософт
    • Драйвер сетевой карты
    • Поддержка TCP/IP и ТОЛЬКО TCP/IP (не ipx или netbios)
    • Доступные принтеры и папки

    Потом нажмите на закладку «Identification» (Идентификация) и дайте
    компьютеру
    имя и название группы.

    Нажмите на «Access control» и выберите права доступа пользователя

    Вернитесь к закладке настроек и нажмите на «Client for MS network»
    (Клиент
    для сетей Майкрософт)

    Не забудьте настроить поддержку TCP/IP:
    дважды нажмите на TCP/IP
    IP

    address:

    • IP address для этой машены (пример: 192. 168.0.2)
    • Маска подсети (пример: 255.255.255.0)

    Настройка
    WINS:

    • Активизировать WINS разрешение
    • Добавить WINS сервер, IP 192.168.0.1 (если это IP address
      samba сервера)
    • Gateway: если есть здесь можно настроить
    • Настройки DNS: настроить доступ к DNS

     

    Замечания «скорость/быстродействие?»

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

    Но, profile полон вещей которые MS считает необходимыми, такие как IE
    cache,
    OutLook cache, и т.д.

    Это значт что около 10 MB будет грузиться при подключении к машине и
    10 MB
    будет передаватья серверу при отключении.

    10 MB для каждого пользователя, для 15 компьютеров («нормальный»
    размер
    лаборатории, например), получается 150 MB, а если в здании 10 комнат…
    можно
    подсчитать время отключения от сети в конце рабочего дня.

    Поэтому лучше домашней директорией сделать P: (например, P как
    Personal) для
    каждого и приучить пользователей: «сохраняйте докумнты в P а не в «My
    documents», иначе обратно вы их не получите «.

    Надо найти софт чтобы настроить закладки в P:\bookmarks.html и т.п.

    Я не знаю существует ли это в мире windows!

    Юниксе на порядок выше чем тот же сервак на Винде.
    Дело стоит заморочек с переносом.

    Установка и настройка Samba на CentOS 7

    главная
    — Статьи — Linux, FreeBSD

    Дата обновления: 23.09.2020

    Теги: Система Linux Настройка сервера Samba

    В статье приведен пример установки файлового сервера Samba в рабочей группе (не в домене) на CentOS 7. Доступ к ресурсам как публичный, так и по логину/паролю. Последнее обновление: 06.09.2017.

    Ставим Samba:

    # yum install samba samba-client samba-common

    Подготовка

    # cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

    Сначала укажем в конфиге то, что мы планируем сделать, а потом уже создадим нужных пользователей, зададим права доступа на директории и пр. Почти все в этом файле как и в примере ниже, выдумывать или менять мало что нужно:

    # nano /etc/samba/smb. conf
    
    [global]
    workgroup = WORKGROUP
    server string = My Samba Server %v
    netbios name = centos
    
    security = user
    map to guest = bad user
    passdb backend = tdbsam
    guest account = samba_guest
    min protocol = SMB2
    ntlm auth = ntlmv2-only
    
    dns proxy = no
    
    log file = /var/log/samba/log.%m
    max log size = 50
    
    ; а вот это мы добавляем в конец конфига:
    [Common]
    comment = Common share
    path = /samba/share
    browsable =yes
    writable = yes
    guest ok = yes
    read only = no
    

    WORKGROUP должно совпадать с названием рабочей группы компьютеров у вас дома;

    netbios name = centos — имя вашего сервера в сети. У меня это имя прописано в dns на роутере mikrotik, вы же при желании можете прописать centos в файл hosts на рабочих станциях в вашей сети. Главное, чтобы ваш сервер был доступен по имени centos (в этом примере). Если вы еще не заблокировали icmp, выполните команду `ping centos` с рабочей станции. Если разрешение имени не работает, у вас будет вариант использовать такую запись <ip-вашего-сервера> вместо centos.

    guest account = samba_guest — определяем имя пользователя (должен быть добавлен в систему), от имени которого будет осуществляться доступ к общим папкам. Этого пользователя мы создадим чуть позже.

    map to guest = bad user — означает, что если был указан логин/пароль и такого логина не существует, то будет произведена попытка войти под учеткой гостя.

    ntlm auth = ntlmv2-only (то же, что и ntlm auth = no) — не разрешать NTLMv1, использовать NTLMv2. С версии Samba 4.5 это дефолт.

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

    Да, и еще, я сразу удалил в этом файле дефолтные группы [homes], [printers], [netlogon], [Profiles] и [public]. Особенно я не хотел бы расшаривать домашние директории пользователей системы.

    Несмотря на то, что файл настройки samba один, сами шары могут быть раскиданы по дискам и директориям, при просмотре сетевые пользователи не смогут понять, что шара upload указывает в /var/www/htdocs/upload, а шара docs — на /samba/common_docs. Т.е. ваша фантазия в этом плане вам на руку. Вы можете настроить все так, что файлы, которые вы загрузили по локальной сети, будут доступны посетителям вашего сайта. Ну или что угодно еще можете придумать. Главное, обращайте внимание на права доступа к файлам и директориям, которые вы создаете!

    Проверяем, все ли правильно отредактировали:

    # testparm

    Public share

    Ранее в конфиге smb.conf мы указали имя пользователя (guest account = samba_guest), от имени которого будет производиться доступ к общедоступным шарам. Т.е. если мы в описании соответствующей группы укажем guest ok = yes, то независимо от ваших текущих привилегий доступ к файлам в соотв. шаре будет произведен от имени samba_guest. Давайте подготовим такого пользователя и директорию с соотв. правами.

    # mkdir /samba/share
    
    # ls -ldZ /samba/share
    # chcon -t samba_share_t /samba/share
    # ls -ldZ /samba/share
    drwxr-xr-x. root root unconfined_u:object_r:samba_share_t:s0 /samba/share
    
    # groupadd smbgrp
    # useradd -c 'Samba member' -G smbgrp -M -s /sbin/nologin samba_guest
    # chmod 775 /samba/share
    # chown samba_guest:smbgrp /samba/share
    

    опция -M указывает не создавать домашнюю директорию;
    группа smbgrp будет объединять создаваемых в системе пользователей для Samba.

    # systemctl enable smb.service && systemctl enable nmb.service
    # systemctl restart smb.service && systemctl restart nmb.service

    # firewall-cmd —permanent —zone=public —add-service=samba
    # firewall-cmd —reload

    Пробуем с рабочей станции в сети открыть шару share и создать пробный файл. Создав, проверьте на сервере, с какими правами создан файл:

    # ls -al /samba/share

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

    Шары с паролем

    Общая идея такова: если нам надо создать пользователя user1 для шары Samba, нам надо сначала создать пользователя с таким логином в системе Linux, а потом создать такого же пользователя в Samba. По моему разумению, системный пользователь, создаваемый для Samba, не должен иметь возможность входа в систему, а также иметь домашнюю директорию. Собственно, зачем ему это?

    # useradd -c ‘Samba member’ -G smbgrp -M -s /sbin/nologin user1

    Вообще говоря, пока вы не создадите пароль для этого пользователя, зайти им в систему нельзя, но представьте себе, когда через год или три вы забудете, ставили вы пароль или нет, и при просмотре /etc/passwd конкретно так вздрогнете, если оставить шелл по-умолчанию 😉 Так что в любом случае проверьте файл /etc/passwd после выполнения команды. Хотя бы один разок.

    А это уже внутренний пользователь Samba:

    # smbpasswd -a user1

    Создаем пользовательскую папку. Для директории user1 права можно ставить уже не 775, а 755:

    # mkdir /samba/user1
    # chcon -t samba_share_t /samba/user1
    # chown user1:smbgrp /samba/user1
    # chmod 755 /samba/user1
    
    # ls -al /samba/
    total 16
    drwxr-xr-x.  4 root         root   4096 Feb 28 15:50 .
    dr-xr-xr-x. 21 root         root   4096 Feb 28 14:54 ..
    drwxr-xr-x.  2 user1        smbgrp 4096 Feb 28 15:50 user1
    drwxrwxr-x.  2 samba_guest  smbgrp 4096 Feb 28 15:12 share

    # nano /etc/samba/smb.conf

    [User1 Share]
    comment = User1’s files
    path = /samba/user1
    ;valid users = @smbgrp
    valid users = user1
    guest ok = no
    writable = yes
    browsable = yes
    create mask = 0640
    directory mask = 0750

    параметр create mask = 0640 указывает, что создаваемые в этой шаре файлы будут для владельца с правами на запись, для группы — на чтение, всем остальным — фиг;
    параметр directory mask = 0750 указывает аналогично, только для директорий.

    В принципе, в личной шаре никто не мешает вам использовать маски 0600 и 0700 соотв. Хотите, поиграйтесь 🙂 Но никогда без явно обозначенной цели не делайте маски 0777 ни для чего, даже если после этого все работает.

    # systemctl restart smb.service && systemctl restart nmb.service

    Проверяйте работу, все должно быть ок. В сетевом окружении должны быть две сетевые папки: share и user1.

    Создайте еще пользователя, проверьте, как работают права доступа к пабликам и персональным директориям. Если что-то идет не так, проверяйте права доступа на директории и встроенные механизмы защиты, в данном случае SELinux.

    Дополнительно

    Ну и напоследок некоторые полезные команды.

    Список пользователей Samba:

    # pdbedit -L
    user1:1001:Samba member

    Расширенные данные по пользователям:

    # pdbedit -L -v

    Смена пароля у существующего пользователя:

    # smbpasswd <User_name>

    Удаление существующего пользователя:

    # smbpasswd -x <User_name>

    Приостановление учетной записи без удаления:

    # smbpasswd -d <User_name>

    Не хотите видеть в сетевой папке всякие временные файлы? В конфиге smb. conf добавьте к группе [User1 Share] что-то вроде:

    hide files = /$RECYCLE.BIN/desktop.ini/lost+found/Thumbs.db/~*/

    Iptables для Samba

    Лучший способ узнать, что нужно разрешить в iptables — это посмотреть, какие порты слушает Samba:

    # netstat -tulpn | egrep "samba|smbd|nmbd|winbind"
    tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN      13107/smbd
    tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      13107/smbd
    tcp6       0      0 :::139                  :::*                    LISTEN      13107/smbd
    tcp6       0      0 :::445                  :::*                    LISTEN      13107/smbd
    udp        0      0 192.168.88.255:137      0.0.0.0:*                           13119/nmbd
    udp        0      0 192.168.88.2:137        0.0.0.0:*                           13119/nmbd
    udp        0      0 0.0.0.0:137             0.0.0.0:*                           13119/nmbd
    udp        0      0 192.168.88.255:138      0. 0.0.0:*                           13119/nmbd
    udp        0      0 192.168.88.2:138        0.0.0.0:*                           13119/nmbd
    udp        0      0 0.0.0.0:138             0.0.0.0:*                           13119/nmbd
    

    Соответственно, в iptables надо добавить следующие правила:

    -A INPUT -s 192.168.88.0/24 -p udp -m udp --dport 137 -m state --state NEW -j ACCEPT
    -A INPUT -s 192.168.88.0/24 -p udp -m udp --dport 138 -m state --state NEW -j ACCEPT
    -A INPUT -s 192.168.88.0/24 -p tcp -m tcp --dport 139 -m state --state NEW -j ACCEPT
    -A INPUT -s 192.168.88.0/24 -p tcp -m tcp --dport 445 -m state --state NEW -j ACCEPT
    

    где 192.168.88.0/24 — ваша локальная сеть.

    LOG-файл Samba

    Можно тюнинговать логирование бесконечно долго, но если быстро и достаточно полезно, то приведу пример, как выводить в лог информацию о том, кто, откуда, что переименовал, что смотрел, что удалил. Открываем файл /etc/samba/smb.conf:

    ...
    [global]
    
    log file = /var/log/samba/log. %m
    log level = 1 auth_audit:3 auth_json_audit:3
    max log size = 10000
    
    [Common]
    ...
    vfs objects = full_audit
    full_audit:prefix = %u|%I
    full_audit:success = mkdir rmdir read pread write pwrite sendfile rename unlink lock
    full_audit:failure = mkdir rmdir read write rename unlink
    full_audit:facility = LOCAL7
    full_audit:priority = ALERT
    ...
    

    # systemctl restart smb.service && systemctl restart nmb.service

    Попробуйте открыть файлы на шаре, удалить папку, создать файл. Потом посмотрите файл /var/log/messages:

    Sep  4 17:50:19 centos smbd_audit: samba_guest|192.168.3.3|rename|ok|files/open_server_5_2_5_basic.exe|files/_open_server_5_2_5_basic.exe
    Sep  4 17:50:40 centos smbd_audit: samba_guest|192.168.3.3|rename|ok|files/_open_server_5_2_5_basic.exe|files/open_server_5_2_5_basic.exe
    Sep  4 18:01:11 centos smbd_audit: samba_guest|192.168.3.3|mkdir|ok|files/Новая папка
    Sep  4 18:01:13 centos smbd_audit: samba_guest|192.168.3.3|rename|ok|files/Новая папка|files/333
    Sep  4 18:01:16 centos smbd_audit: samba_guest|192. 168.3.3|rmdir|ok|files/333
    

    Все ясно. Кто-то с ip 192.168.3.3 переименовал файл open_server_5_2_5_basic.exe, причем дважды. Потом создал папку, переименовал ее и удалил.

    Играясь со списком «mkdir rmdir read pread write pwrite sendfile rename unlink lock» можно реагировать на разные события, а можно вообще так full_audit:success = all !open (все, кроме открытия).

    Можно до бесконечности писать про всякие отдельные фишки. Но в целом зада выполнена.

    Авторизуйтесь для добавления комментариев!

    Samba не может добавить запись пользователя, как это исправить?

    Samba не может добавить запись пользователя, как это исправить? — Спросите Ubuntu

    Сеть обмена стеков

    Сеть Stack Exchange состоит из 176 сообществ вопросов и ответов, включая Stack Overflow, крупнейшее и пользующееся наибольшим доверием онлайн-сообщество, где разработчики могут учиться, делиться своими знаниями и строить свою карьеру.

    Посетить Stack Exchange

    1. 0

    2. +0

    3. Авторизоваться
      Подписаться

    Ask Ubuntu — это сайт вопросов и ответов для пользователей и разработчиков Ubuntu.Регистрация займет всего минуту.

    Зарегистрируйтесь, чтобы присоединиться к этому сообществу

    Кто угодно может задать вопрос

    Кто угодно может ответить

    Лучшие ответы голосуются и поднимаются наверх

    Спросил

    Просмотрено
    93k раз

    Я настраивал Samba и пытался добавить пользователя домена, но он возвращает следующее:

      не удалось добавить запись для пользователя студент
      

    Это команды, которые я уже выполнил:

      фрегат @ фрегат-рабочий стол: ~ $ su
    Пароль:
    корень @ frigate-desktop: / home / frigate # nano / etc / samba / smb.conf
    root @ frigate-desktop: / home / frigate # groupadd -g 201 машины
    корень @ фрегат-рабочий стол: / home / frigate # mkdir -m 0775 / home / ntlogon
    корень @ фрегат-рабочий стол: / home / frigate # mkdir / home / samba / home / samba / profiles
    корень @ фрегат-рабочий стол: / дом / фрегат # chmod 1755 / дом / самба / профили /
    root @ frigate-desktop: / home / frigate # useradd -m тест
    root @ frigate-desktop: / home / frigate # проверка пароля
    Введите новый пароль UNIX:
    Введите новый пароль UNIX еще раз:
    passwd: пароль успешно обновлен
    root @ frigate-desktop: / home / frigate # smbpasswd -a тест
    Новый пароль SMB:
    Введите новый пароль SMB еще раз:
    Добавлен пользовательский тест. root @ frigate-desktop: / home / frigate # smbpasswd -a корень
    Новый пароль SMB:
    Введите новый пароль SMB еще раз:
    Добавлен пользователь root.
    root @ frigate-desktop: / home / frigate # smbpasswd -a студент
    Новый пароль SMB:
    Введите новый пароль SMB еще раз:
    Не удалось добавить запись для пользователя student.
    root @ frigate-desktop: / home / frigate # smbpasswd -a студент
    Новый пароль SMB:
    Введите новый пароль SMB еще раз:
    Не удалось добавить запись для пользователя student.
    корень @ фрегат-рабочий стол: / главная / фрегат # smbpasswd -a stu
    Новый пароль SMB:
    Введите новый пароль SMB еще раз:
    Несоответствие - пароль не изменен.Не удалось получить новый пароль.
    корень @ фрегат-рабочий стол: / главная / фрегат # smbpasswd -a stu
    Новый пароль SMB:
    Введите новый пароль SMB еще раз:
    Не удалось добавить запись для пользователя stu.
      

    Как мне добавить этого пользователя в Samba?

    Томас Уорд ♦

    1,900 22 золотых знака148148 серебряных знаков207207 бронзовых знаков

    Создан 21 окт.

    Бишванатх Дас

    40922 золотых знака55 серебряных знаков1515 бронзовых знаков

    Вам необходимо создать пользователя UNIX с именем student перед тем, как создать пользователя samba с именем student.

    Создан 21 окт.

    ммстик

    1,9641111 серебряных знаков99 бронзовых знаков

    Может ты еще не создавал. Итак, чтобы добавить его в самбу впервые, нужно добавить

      

    вариант

      sudo smbpasswd -a тест
      

    Пользователь samba настраивается и добавляется другим способом, чем пользователи unix. Это означает, что не потому, что существует пользователь unix, а пользователь samba существует . Способ добавить пользователя samba — установить его пароль от пользователя unix

    Создан 18 июл.

    Филипп ГашудФилипп Гашуд

    4,89133 золотых знака3434 серебряных знака4545 бронзовых знаков

    2

    Очень активный вопрос .Заработайте 10 репутации, чтобы ответить на этот вопрос. Требование репутации помогает защитить этот вопрос от спама и отсутствия ответов.

    Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками самба или задайте свой вопрос.

    Спросите Ubuntu лучше всего работает с включенным JavaScript

    Ваша конфиденциальность

    Нажимая «Принять все файлы cookie», вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в ​​отношении файлов cookie.

    Принимать все куки

    Настроить параметры

    Samba Server: безопасность = пользователь не отображается

    Я пытаюсь использовать сервер Ubuntu для настройки сервера Samba.Однако во всех инструкциях, которые я вижу, говорится, что нужно раскомментировать строку security = user . Я не вижу этой линии там, где она должна быть. Мне просто добавить это? В чем именно его значение?

    Вот мой /etc/samba/smb.conf

      #
      # Пример файла конфигурации для пакета Samba для Debian GNU / Linux.
      #
      #
      # Это основной файл конфигурации Samba. Вы должны прочитать
      # smb.conf (5) справочная страница, чтобы понять перечисленные параметры
      # здесь.Samba имеет огромное количество настраиваемых параметров, большинство из которых
      # не показаны в этом примере
      #
      # Некоторые параметры, которые часто стоит настраивать, были включены как
      # закомментированных примеров в этом файле.
      # - Если такие параметры отмечены знаком ";", предлагаемая настройка
      # отличается от поведения Samba по умолчанию
      # - при добавлении комментария "#" предлагаемая настройка является значением по умолчанию.
      # поведение Samba, но параметр считается важным
      # достаточно, чтобы быть упомянутым здесь
      #
      # ПРИМЕЧАНИЕ: всякий раз, когда вы изменяете этот файл, вы должны запускать команду
      # "testparm", чтобы убедиться, что вы не использовали базовый синтаксис. 
      # ошибки.# ======================= Глобальные настройки =======================
    
      [Глобальный]
    
      ## Просмотр / идентификация ###
    
      # Измените это на имя рабочей группы / NT-домена, в которое будет входить ваш Samba-сервер
         рабочая группа = SAMBA-СЕРВЕР
    
      # строка сервера эквивалентна полю описания NT
         строка сервера =% h сервер (Samba, Ubuntu)
    
      # Раздел поддержки обслуживания имен в Интернете Windows:
      # Поддержка WINS - указывает компоненту NMBD Samba включить его WINS-сервер.
      # побед поддержка = нет
    
      # WINS Server - сообщает компонентам NMBD Samba, что они являются WINS-клиентом.
      # Примечание: Samba может быть либо WINS-сервером, либо WINS-клиентом, но НЕ одновременно
      ; выигрывает server = w.x.y.z
    
      # Это предотвратит поиск nmbd имен NetBIOS через DNS.
         DNS-прокси = нет
    
      #### Сеть ####
    
      # Конкретный набор интерфейсов / сетей для привязки
      # Это может быть либо имя интерфейса, либо IP-адрес / сетевая маска;
      # имена интерфейсов обычно предпочтительны
      ; интерфейсы = 127. 0.0.0/8 eth0
    
      # Связывайтесь только с указанными интерфейсами и / или сетями; вы должны использовать
      # Опция 'интерфейсы' выше, чтобы использовать это.
      # Рекомендуется включить эту функцию, если ваша машина Samba
      # не защищен брандмауэром или сам является брандмауэром.Однако это
      Параметр # не может правильно обрабатывать динамические или нешироковещательные интерфейсы.
      ; привязать только интерфейсы = да
    
    
    
      #### Отладка / учет ####
    
      # Это указывает Samba использовать отдельный файл журнала для каждой машины
      # что соединяет
         файл журнала = /var/log/samba/log.%m
    
      # Ограничьте размер отдельных файлов журнала (в КиБ).
         максимальный размер журнала = 1000
    
      # Если вы хотите, чтобы Samba регистрировалась только через системный журнал, установите следующие
      # параметр на "да".
      # только системный журнал = нет
    
      # Мы хотим, чтобы Samba регистрировала минимальный объем информации в системном журнале.Все
      # следует вместо этого перейти в /var/log/samba/log.{smbd,nmbd}.  Если вы хотите войти
      # через syslog вы должны установить для следующего параметра значение выше.
         syslog = 0
    
      # Сделайте что-нибудь разумное, когда Samba выйдет из строя: отправьте админу сообщение об ошибке
         паническое действие = / usr / share / samba / panic-action% d
    
    
      ####### Аутентификация #######
    
      # Роль сервера. Определяет, в каком режиме будет работать Samba. Возможный
      # значения: "автономный сервер", "рядовой сервер", "классический первичный сервер".
      # контроллер домена "," классический резервный контроллер домена "," активный "
      # контроллер домена каталога ".#
      # Большинство людей захотят "автономный сервер" или "рядовой сервер".
      # Для запуска в качестве "контроллера домена Active Directory" сначала потребуется
      # запуск "samba-tool domain provision" для очистки баз данных и создания
      # новый домен.
         роль сервера = автономный сервер
    
      # Если вы используете зашифрованные пароли, Samba нужно будет знать, что
      # тип базы паролей, который вы используете. 
         passdb backend = tdbsam
    
         соблюдать ограничения pam = да
    
      # Этот логический параметр определяет, пытается ли Samba синхронизировать Unix
      # пароль с паролем SMB, когда зашифрованный пароль SMB в
      # passdb изменен.синхронизация паролей unix = да
    
      # Чтобы синхронизация паролей Unix работала в системе Debian GNU / Linux, следующие
      # параметры должны быть установлены (спасибо Яну Кахану << [email protected]> за
      # отправка правильного сценария чата для программы passwd в Debian Sarge).
         программа passwd = / usr / bin / passwd% u
         passwd chat = * Введите \ snew \ s * \ spassword: *% n \ n * Введите \ snew \ s * \ spassword: *% n \ n * пароль \ успешно обновлен *.
    
      # Это логическое значение определяет, будет ли PAM использоваться для изменения пароля.
      # по запросу клиента SMB вместо программы, указанной в
      # 'программа passwd'.По умолчанию - «нет».
         изменение пароля pam = да
    
      # Эта опция контролирует, как отображаются неудачные попытки аутентификации
      # для анонимных подключений
         сопоставить гостю = плохой пользователь
    
      ########## Домены ###########
    
      #
      # Следующие настройки действуют только в том случае, если 'server role = primary
      # классический контроллер домена ',' роль сервера = резервный контроллер домена '
      # или 'вход в домен' установлен
      #
    
      # Определяет местонахождение пользователя
      # каталог профиля с точки зрения клиента) Следующие
      # требуется установка общего ресурса [profiles] на сервере Samba (см. 
      # ниже)
      ; путь входа в систему = \\% N \ profiles \% U
      # Другой распространенный выбор - сохранить профиль в домашнем каталоге пользователя
      # (это по умолчанию Samba)
      # путь входа = \\% N \% U \ profile
    
      # Следующий параметр действует только в том случае, если установлен «вход в домен»
      # Указывает расположение домашнего каталога пользователя (от клиента
      # точка зрения)
      ; диск входа в систему = H:
      # logon home = \\% N \% U
    
      # Следующий параметр действует только в том случае, если установлен «вход в домен»
      # Указывает сценарий, запускаемый при входе в систему.Скрипт необходимо сохранить
      # в общей папке [netlogon]
      # ПРИМЕЧАНИЕ: необходимо хранить в формате файла DOS.
      ; сценарий входа в систему = logon.cmd
    
      # Это позволяет создавать пользователей Unix на контроллере домена через SAMR
      # RPC pipe. Пример команды создает учетную запись пользователя с отключенным Unix
      # пароль; пожалуйста, адаптируйтесь к вашим потребностям
      ; добавить пользовательский скрипт = / usr / sbin / adduser --quiet --disabled-password --gecos ""% u
    
      # Это позволяет создавать учетные записи компьютеров на контроллере домена через
      # SAMR RPC pipe.# Ниже предполагается, что в системе существует группа "машин"
      ; добавить скрипт машины = / usr / sbin / useradd -g machines -c "% u учетная запись компьютера" -d / var / lib / samba -s / bin / false% u
    
      # Это позволяет создавать группы Unix на контроллере домена через SAMR
      # RPC pipe.
      ; добавить сценарий группы = / usr / sbin / addgroup --force-badname% g
    
      ############ Разное ############
    
      # Использование следующей строки позволяет настроить конфигурацию
      # для каждой машины. % M заменяется именем netbios
      # машины, которая подключается
      ; включить = / home / samba / etc / smb.конф.% m
    
      # Некоторые значения по умолчанию для winbind (убедитесь, что вы не используете диапазоны
      # для чего-то еще.)
      ; idmap uid = 10000-20000
      ; idmap gid = 10000-20000
      ; шаблон оболочки = / bin / bash
    
      # Настройте параметры пользовательского доступа, чтобы разрешить пользователям без полномочий root предоставлять общий доступ к папкам
      # с помощью команды net usershare.
    
      # Максимальное количество пользователей. 0 (по умолчанию) означает, что совместное использование пользователей отключено.
      ; максимальное количество пользователей = 100
    
      # Разрешить пользователям, которым предоставлены права совместного использования, создавать
      # общедоступных общих ресурсов, а не только аутентифицированных
         usershare разрешить гости = да
    
      # ======================= Определения общих ресурсов =======================
    
      # Не комментируйте следующее (и настройте другие настройки ниже, чтобы они подходили)
      # для включения общих папок домашнего каталога по умолчанию.Этим поделится каждый
      # домашний каталог пользователя как \\ server \ username
      ; [дома]
      ; comment = Домашние каталоги
      ; browseable = нет
    
      # По умолчанию домашние каталоги экспортируются только для чтения. Изменить
      # следующий параметр на 'нет', если вы хотите иметь возможность писать им.
      ; только чтение = да
    
      # Маска создания файла установлена ​​на 0700 из соображений безопасности. Если ты хочешь
      # создать файлы с разрешениями group = rw, установить следующий параметр на 0775.
      ; создать маску = 0700
    
      # Маска создания каталога установлена ​​на 0700 по соображениям безопасности.Если ты хочешь
      # создать каталоги. с разрешениями group = rw установите следующий параметр на 0775.
      ; маска каталога = 0700
    
      # По умолчанию общие ресурсы \\ server \ username могут быть подключены кем угодно
      # с доступом к серверу самбы.
      # Снимите комментарий к следующему параметру, чтобы убедиться, что только "username"
      # можно подключиться к \\ серверу \ имени пользователя
      # Это может потребовать настройки при использовании внешних схем аутентификации
      ; допустимые пользователи =% S
    
      # Не комментируйте следующее и создайте каталог netlogon для входа в домен
      # (вам необходимо настроить Samba для работы в качестве контроллера домена.)
      ; [сетевой вход]
      ; comment = Служба входа в сеть
      ; путь = / домой / самба / netlogon
      ; гость ок = да
      ; только чтение = да
    
      # Не комментируйте следующее и создайте каталог профилей для хранения
      # профилей пользователей (см. параметр "путь для входа" выше)
      # (вам также необходимо настроить Samba для работы в качестве контроллера домена.)
      # Путь ниже должен быть доступен для записи всем пользователям, чтобы их
      # каталог профиля может быть создан при первом входе в систему
      ; [профили]
      ; comment = Профили пользователей
      ; путь = / главная / самба / профили
      ; гость ок = нет
      ; browseable = нет
      ; создать маску = 0600
      ; маска каталога = 0700
    
      [принтеры]
         comment = Все принтеры
         browseable = нет
         путь = / var / spool / samba
         printable = да
         гость ок = нет
         только чтение = да
         создать маску = 0700
    
      # Клиенты Windows ищут это имя общего ресурса как источник загружаемых
      # драйверы принтера
      [печать $]
         comment = Драйверы принтера
         путь = / var / lib / samba / printers
         browseable = да
         только чтение = да
         гость ок = нет
      # Раскомментируйте, чтобы разрешить удаленное администрирование драйверов печати Windows.# Возможно, вам придется заменить lpadmin на имя группы, в которой
      # пользователей с правами администратора являются членами.
      # Обратите внимание, что вам также необходимо установить соответствующие разрешения Unix
      # в каталог драйверов, чтобы эти пользователи имели права на запись в него
      ; список записи = корень, @lpadmin
      

    Создать общий ресурс samba, доступный для записи всем, группе или только пользователю — База технических знаний

    В этом руководстве рассказывается, как создать общий ресурс samba и сделать его доступным для записи всем, группе или конкретным пользователям.

    Установите samba

    Debian / Ubuntu и т. Д.

    Arch / Manjaro и т. Д.

    Создайте пользователя (и, возможно, группу), под которым будет делиться общий доступ

    С помощью этого метода мы фактически создаем пользователя (в этом примере мы назовем его ‘ shareuser ‘) и установите папку (для совместного использования), которая будет принадлежать этому пользователю.

     useradd --system shareuser
    chown -R shareuser / media / share 

    Примечание: мы разделяем папку / media / share

    Поделиться по группе

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

     sudo group добавить sharegroup
    sudo useradd shareuser -G sharegroup 

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

     chgrp -R sharegroup / media / share
    chmod g + s / media / share 

    изменит все папки и группы владения файлами в / media / share на sharegroup , а затем применит бит setgid , чтобы любые новые созданные файлы или папки также имели групповое владение sharegroup .

    Отредактируйте /etc/samba/smb.conf

    Теперь нам нужно отредактировать /etc/samba/smb.conf. Ниже приведены несколько примеров в зависимости от того, как вы хотите, чтобы пользователи получали доступ к вашей общей папке smb.

    Разрешить всем пользователям доступ и запись в вашу общую папку samba

     ...
    # Поделиться
    [Поделиться]
      путь = / media / share
      writeable = да
      browseable = да
      public = да
      создать маску = 0644
      маска каталога = 0755
      принудительно пользователь = shareuser
    ... 

    Разрешить только всем пользователям из группы (Linux) доступ и запись в ваш общий ресурс samba

    Примечание: вы должны были создать группу sharegroup (или другую группу), как описано выше.

     ...
    # Поделиться
    [Поделиться]
      путь = / media / share
      действительные пользователи = @sharegroup
      writeable = да
      browseable = да
      создать маску = 0644
      маска каталога = 0755
      принудительно пользователь = shareuser
    ... 

    Разрешить только определенным (самба) пользователям доступ и запись в ваш общий ресурс samba

    Для этого нам нужно создать пароль samba для пользователя, которого вы создали ранее. Этот пароль samba не обязательно должен совпадать с паролем пользователя Linux:

     sudo smbpasswd -a shareuser 

    Следуйте интерактивным подсказкам, чтобы ввести пароль самбы.

     ...
    # Поделиться
    [Поделиться]
      путь = / media / share
      допустимые пользователи = shareuser
      writeable = да
      browseable = да
      создать маску = 0644
      маска каталога = 0755
      принудительно пользователь = shareuser
    ... 

    Добавьте правила, чтобы разрешить трафик самбы через брандмауэр

    В вашей сети вам необходимо разрешить трафик самбы через брандмауэр сервера. Если вы используете UFW , вы можете добавить необходимые правила, выполнив следующие команды. Ниже предполагается, что диапазон адресов внутренней сети равен 10.0.0.0 → 10.0.0.255 (или 10.0.0.0/24 CIDR), поэтому вам нужно будет изменить его в соответствии с вашей внутренней сетью, если она отличается:

     sudo ufw разрешить протокол udp на любой порт 137 из 10.0.0.0/24
    sudo ufw разрешить протокол udp на любой порт 138 из 10.0.0.0/24
    sudo ufw разрешить протокол TCP на любой порт 139 из 10.0.0.0/24
    sudo ufw разрешить протокол TCP на любой порт 445 из 10.0.0.0/24 

    Restart smbd

    Чтобы изменения вступили в силу, нам необходимо перезапустить samba.

     sudo systemctl перезапуск smbd 

    Ссылки

    1. https: // unix.stackexchange.com/questions/206309/how-to-create-a-samba-share-that-is-writable-from-windows-without-777-permission
    2. https://www.techrepublic.com/article/how -to-set-up-quick-and-easy-file-sharing-with-samba /
    3. https://askubuntu.com/questions/51951/set-default-group-for-user-when-they-create -new-files
    4. https://www.ghacks.net/2010/12/29/allow-samba-through-your-linux-firewall-with-ufw/

    Статьи по теме

    • Стр .:

    Создать общий ресурс Samba в Ubuntu 13.10

    1. Убедитесь, что в системе есть доступ в Интернет.
    2. Убедитесь, что у пользователя есть соответствующие разрешения на установку программного обеспечения в системе.

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

    sudo apt-get update
    sudo apt-get install samba

    Рисунок: Установка Samba на ubuntu

    1. Добавьте пользователя к samba и назначьте пароль этому пользователю .Следующий шаг демонстрирует метод добавления пользователя в samba и назначения пароля samba для этого пользователя. Этому процессу требуются разрешения sudo.

    судо smbpasswd -a турбо

    (-a — для добавления пользователя в самбу, а turbo — это имя пользователя, которое будет добавлено в самбу)

    Рисунок: Добавление пользователя в samba и назначение пароля samba для пользователя.

    smbpasswd добавляет пользователя в samba и назначает ему пароль samba.Пользователь увидит сообщение об ошибке, если пользователь не существует в системе Linux.

    Рисунок: Ошибка при добавлении пользователя в samba , поскольку пользователь не существует на машине Linux.

    1. Тестирование демонов самбы smbd и nmbd. Для этого требуется разрешение sudo.

    sudo service smbd restart
    sudo service nmbd restart

    Рисунок: Перезапуск smbd и nmbd

    Добавление папки в общий сетевой ресурс

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

    1. Откройте smb.conf из /etc/samba/smb.conf с помощью редактора VI. Откройте файл с разрешениями sudo, так как пользователю может потребоваться отредактировать файл.

    Судо vi /etc/samba/smb.conf

    1. Например, Пользователь хочет, чтобы SharedFolders присутствовали в / home / turbo / Ephesoft / SharedFolders как совместно используемые на общей папке samba. Пользователь может сделать это, добавив следующую строку в конец файла smb.conf. Но перед этим пользователю нужно будет дать разрешение на чтение, запись и выполнение всем в общих папках, выполнив следующую команду (по умолчанию установщик Ephesoft назначает разрешение rwx всем в SharedFolders):

    sudo chmod –R 777 / home / turbo / Ephesoft / SharedFolders

    Добавить следующие строки в конец smb.конф.

    [ephesoft]

    комментарий = ephesoft
    путь = / home / turbo / Ephesoft / SharedFolders
    с возможностью просмотра = да
    с возможностью записи = да
    режим создания = 0777
    режим каталога = 0777
    режим совместного использования = да
    гость ok = да
    действительные пользователи = turbo

    Рисунок: Общий ресурс, созданный с именем ephesoft, который указывает на / home / turbo / Ephesoft / SharedFolders на машине.

    Подробная информация о параметрах, добавленных в smb.conf

    1. Комментарий : комментарий к общей папке.
    2. путь : указывает путь к общей папке.
    3. просматриваемый : позволяет просматривать файлы из файловой системы.
    4. с возможностью записи : делает общую папку доступной для записи
    5. режим создания : создавать файлы с разрешениями group = rw.
    6. режим каталога : создать каталоги. с разрешениями group = rw.
    7. гость ОК : разрешен гостевой доступ
    8. допустимые пользователи : указывает список допустимых пользователей, которые могут получить доступ к общей папке (пользователи должны быть частью группы пользователей, назначенной общей папке).
    9. Добавьте нескольких пользователей в список допустимых пользователей, так как одно удостоверение может использоваться одной машиной одновременно.

    Пользователь должен будет создать общий ресурс с разрешениями на запись, создание, чтение и просмотр и т. Д. Заявления, упомянутые выше, подтверждают то же самое.

    1. Сохраните файл smb.conf и перезапустите демонов smbd и nmbd, выполнив следующие команды.

    sudo service smbd restart
    sudo service nmbd restart

    Рисунок: перезапуск демонов samba smbd / nmbd

    Теперь пользователь может получить доступ к этой общей папке.

    Рисунок: общие папки, доступные в сети

    Доступ к общим папкам на разных узлах Ephesoft в настройке с несколькими кластерами

    Чтобы настроить SharedFolders на разных узлах Ephesoft в настройке с несколькими кластерами, пользователю потребуется смонтировать общий сетевой ресурс в папке на каждом узле Ephesoft Linux, поскольку Linux не распознает сетевые пути, как это делает Windows, т.е. доступ с помощью \ ip –addr, но в Linux это можно сделать с помощью протокола samba, который работает по-другому.

    Примечание: Установщик создаст пустую папку в одном и том же месте на каждом узле Ephesoft, кроме узла, на котором находится фактическая общая папка, т.е. путь к пустой папке будет таким же, как путь к фактической общей папке на машине, где находятся фактические общие папки, например. В приведенной выше конфигурации, где SharedFolder был добавлен в общий ресурс samba, фактическая папка находится в / home / turbo / Ephesoft / SharedFolders, поэтому пустая папка будет создана по тому же пути на каждой машине с помощью установщика Ephesoft.

    Теперь пользователю нужно будет смонтировать сетевые общие папки в каждую пустую папку, созданную установщиком на каждом узле Ephesoft.

    Подключение общего сетевого ресурса к пустым папкам, созданным установщиком

    Пользователь может подключить общий ресурс samba к пустой папке, выполнив следующую команду.

    sudo mount -t cifs -o user = turbo, password = Passw0rd //192.168.108.21/ephesoft / home / turbo / Ephesoft / SharedFolders

    Здесь пароль — пароль пользователя smbuser, для которого был установлен smbpasswd.

    Рисунок: монтирование общего ресурса в пустой папке / home / turbo / Ephesoft / SharedFolders

    Рисунок: сетевая общая папка, смонтированная в пустой папке на другом узле Ephesoft.

    Пользователь сможет получить доступ к смонтированной общей папке локально, открыв / home / turbo / Ephesoft / SharedFolders, поскольку эта папка действует как точка монтирования для общего сетевого ресурса. Пользователь сможет создавать / изменять файлы / папки локально по этому пути, и изменения будут отражаться в общей сетевой папке и на всех машинах, на которых этот сетевой ресурс был смонтирован.

    Рисунок: Пользователь может получить доступ к SharedFolder локально в смонтированной папке.

    Рисунок: Пользователь создает папку в смонтированной папке, и эти изменения будут отражены во всех точках монтирования и общей сетевой папке.

    Рисунок: Изменения в создании папки, отраженные в общей сетевой папке.

    Примечание *: файл свойств Ephesoft META-INF будет содержать путь к локально смонтированным папкам, а не сетевой путь, поскольку Linux не распознает сетевой ресурс, как Windows.Linux использует протокол smb для доступа к общей папке. Следовательно, пользователю придется монтировать сетевые общие папки локально в своей системе, чтобы Ephesoft могла видеть данные по одному и тому же пути в каждой системе.

    Как настроить общий ресурс сервера Samba в Ubuntu 20.04 Focal Fossa Linux

    Подробности
    Ubuntu

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

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

    В этом руководстве вы узнаете:

    • Как установить сервер Samba
    • Как настроить базовый общий ресурс Samba
    • Как предоставить общий доступ к домашним каталогам пользователей и общедоступному анонимному каталогу
    • Как смонтировать общий ресурс Samba в MS Windows 10

    Как настроить общий ресурс Samba Server в Ubuntu 20.04 Focal Fossa Linux

    Используемые требования к программному обеспечению и условные обозначения

    Требования к программному обеспечению и условные обозначения командной строки Linux
    Категория Требования, условные обозначения или используемая версия программного обеспечения
    Система Focal установлена ​​или обновлена Fossa
    Программное обеспечение Samba
    Другое Привилегированный доступ к вашей системе Linux с правами root или с помощью команды sudo .
    Условные обозначения # — требует, чтобы данные команды linux выполнялись с привилегиями root либо напрямую как пользователь root, либо с помощью команды sudo $ — требует, чтобы данные команды linux выполнялись как обычные не -privileged user

    Как настроить общий ресурс Samba Server в Ubuntu 20.04, пошаговые инструкции

    1. Начнем с установки сервера Samba. Это довольно тривиальная задача.Сначала установите команду tasksel , если она еще не доступна в вашей системе Ubuntu 20.04. Когда все будет готово, используйте tasksel для установки сервера Samba.
       $ sudo apt install tasksel
      $ sudo tasksel установить самба-сервер
       

    2. ПОДПИСАТЬСЯ НА БЮЛЛЕТЕНЬ И RSS
      Подпишитесь на RSS и НОВОСТНОЙ БЮЛЛЕТЕНЬ и получайте последние новости Linux, вакансии, советы по карьере и учебные пособия.



    3. Мы начнем со свежего чистого файла конфигурации, а также сохраним файл конфигурации по умолчанию в качестве резервной копии для справочных целей.; «/etc/samba/smb.conf_backup | grep.> /etc/samba/smb.conf ‘
    4. Samba имеет собственную систему управления пользователями. Однако любой пользователь, существующий в списке пользователей samba, также должен существовать в файле / etc / passwd . Если ваш системный пользователь еще не существует и, следовательно, не может быть расположен в файле / etc / passwd , сначала создайте нового пользователя с помощью команды useradd , прежде чем создавать любого нового пользователя Samba.

      После того, как ваш новый пользователь системы, например. linuxconfig завершает работу, используйте команду smbpasswd для создания нового пользователя Samba:

      $ sudo smbpasswd -a linuxconfig
      Новый пароль SMB:
      Введите новый пароль SMB еще раз:
      Добавлен пользовательский linuxconfig.
    5. Следующим шагом будет добавление общего домашнего каталога. Используйте свой любимый текстовый редактор, например. atom, sublime, чтобы отредактировать наш новый файл конфигурации /etc/samba/smb.conf samba и добавить следующие строки в конец файла:
      [дома]
         comment = Домашние каталоги
         browseable = да
         только чтение = нет
         создать маску = 0700
         маска каталога = 0700
         допустимые пользователи =% S
       
    6. При желании можно добавить новый общедоступный общий ресурс Samba для чтения и записи, доступный анонимным / гостевым пользователям.Сначала создайте каталог, которым хотите поделиться, и измените его права доступа:
      $ sudo mkdir / var / samba
      $ sudo chmod 777 / var / samba /
       

      Когда все будет готово, еще раз откройте файл конфигурации /etc/samba/smb.conf samba и добавьте следующие строки в конец файла:

      [общедоступный]
        комментарий = публичный анонимный доступ
        путь = / var / samba /
        browsable = да
        создать маску = 0660
        маска каталога = 0771
        Writable = да
        гость ок = да
       
    7. Проверьте текущую конфигурацию.Ваш файл конфигурации /etc/samba/smb.conf samba на этом этапе должен выглядеть примерно так, как показано ниже:
        [global]
         рабочая группа = РАБОЧАЯ ГРУППА
         строка сервера =% h сервер (Samba, Ubuntu)
         файл журнала = /var/log/samba/log.%m
         максимальный размер журнала = 1000
         logging = файл
         паническое действие = / usr / share / samba / panic-action% d
         роль сервера = автономный сервер
         соблюдать ограничения pam = да
         синхронизация паролей unix = да
         программа passwd = / usr / bin / passwd% u
         passwd chat = * Введите \ snew \ s * \ spassword: *% n \ n * Введите \ snew \ s * \ spassword: *% n \ n * пароль \ успешно обновлен *.изменение пароля pam = да
         сопоставить гостю = плохой пользователь
         usershare разрешить гости = да
      [принтеры]
         comment = Все принтеры
         browseable = нет
         путь = / var / spool / samba
         printable = да
         гость ок = нет
         только чтение = да
         создать маску = 0700
      [печать $]
         comment = Драйверы принтера
         путь = / var / lib / samba / printers
         browseable = да
         только чтение = да
         гость ок = нет
      [дома]
         comment = Домашние каталоги
         browseable = да
         только чтение = нет
         создать маску = 0700
         маска каталога = 0700
         допустимые пользователи =% S
      [общедоступный]
        комментарий = публичный анонимный доступ
        путь = / var / samba /
        browsable = да
        создать маску = 0660
        маска каталога = 0771
        Writable = да
        гость ок = да
        
    8. Наша основная конфигурация сервера Samba готова.Не забывайте всегда перезапускать сервер samba после внесения любых изменений в файл конфигурации /etc/samba/smb.conf :
      $ sudo systemctl перезапуск smbd
       
    9. (необязательно) Создадим несколько тестовых файлов. После того, как мы успешно смонтируем наши общие ресурсы Samba, в нашем распоряжении должны появиться следующие файлы:
      $ touch / var / samba / public-share
      $ touch / home / linuxconfig / home-share
       
    10. На этом этапе мы готовы обратить внимание на MS Windows.Каталоги подключения сетевых дисков могут немного отличаться для каждой версии MS Windows. В этом руководстве MS Windows 10 используется в роли клиента Samba.

      Для начала откройте Проводник Windows , затем щелкните правой кнопкой мыши Сеть и щелкните Подключить сетевой диск ... вкладку .

    11. Выберите букву диска и введите расположение общего ресурса Samba, которое представляет собой IP-адрес вашего сервера Samba или имя хоста, за которым следует имя домашнего каталога пользователя. Убедитесь, что вы отметили Подключиться с использованием других учетных данных , если ваше имя пользователя и пароль отличаются от тех, которые были созданы ранее на шаге 3.

    12. Введите пароль пользователя, созданный на шаге 3.

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

    14. Повторите шаги монтирования также для общедоступного анонимного общего ресурса каталога samba.

    15. Подтвердите, что у вас есть доступ к общедоступному общему каталогу samba.

    16. Все готово. Теперь не стесняйтесь добавлять дополнительные функции в конфигурацию вашего общего сервера Samba.

    Samba в Ubuntu Linux — Добавление пользователей Samba

    Это вторая статья из нашей серии об установке, настройке и управлении Samba в Ubuntu Linux. Первый пост можно найти здесь.

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

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

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

    Добавление пользователя Samba на сервер Ubuntu

    Чтобы добавить пользователя Samba на сервер Ubuntu, откройте терминал и выполните следующие команды.

     
     smbpasswd -a имя пользователя 

    Имя пользователя

    следует заменить фактическим именем учетной записи пользователя.

    Когда вы запустите приведенную выше команду, она должна предложить вам создать пароль для пользователя.Создайте его, возможно, тот, который соответствует паролю вашей учетной записи Ubuntu.

    Затем, чтобы предоставить пользователю доступ к конкретному общему ресурсу, откройте файл smb.conf по адресу /etc/samba/smb.conf и создайте общий ресурс, как показано ниже.

     
     [база данных]
     
     comment = Файл базы данных
     
     путь = / данные / база данных
     
     действительных пользователей = имя пользователя
     
     public = нет
     
     записываемый = да 

    замените имя пользователя фактическим именем учетной записи и сохраните файл.

    Добавление пользователя Samba на рабочий стол Ubuntu

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

    Далее выберите Preferences -> Samba Users

    Затем нажмите «Добавить» и выберите существующую учетную запись пользователя, затем создайте имя пользователя и пароль Windows для учетной записи.Это то же самое, что мы сделали для настройки сервера Ubuntu.

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

    Так создаются пользователи Samba и получают доступ к ресурсам.

    Наслаждайтесь!

    Глава 21. Первая учетная запись пользователя samba

    Глава 21.samba первая учетная запись пользователя

    Мы создадим пользователя для нашего файлового сервера samba и сделаем этого пользователя владельцем каталога и всех его файлов. Этот анонимный пользователь получает четкое описание, но не получает оболочку входа в систему.

     [root @ RHEL52 samba] # useradd -s / bin / false sambanobody
    [root @ RHEL52 samba] # usermod -c "Анонимный доступ к Samba" sambanobody
    [root @ RHEL52 samba] # passwd sambanobody
    Смена пароля для пользователя sambanobody.
    Новый пароль UNIX:
    Введите новый пароль UNIX еще раз:
    passwd: все токены аутентификации успешно обновлены.

    Мы можем использовать этого пользователя в качестве владельца файлов и каталогов вместо использования учетной записи root. Этот подход более понятен и безопасен.

     [root @ RHEL52 samba] # chown -R sambanobody: sambanobody / srv / samba /
    [root @ RHEL52 samba] # ls -al / srv / samba / Writable /
    всего 12
    drwxrwxrwx 2 sambanobody sambanobody 4096 21 января, 06:11.
    drwxr-xr-x 6 sambanobody sambanobody 4096 21 января, 06:11 ..
    -rwxr - r-- 1 sambanobody sambanobody 6 21 января 06:16 hoi.txt 

    Учетная запись пользователя sambanobody, которую мы создали в предыдущих примерах, еще не используется samba.Ему просто принадлежат файлы и каталоги, которые мы создали для наших общих ресурсов. Цель этого раздела — заставить владение файлами, созданными через общий ресурс samba, принадлежать нашему пользователю sambanobody. Помните, что наш сервер по-прежнему доступен для всех, никому не нужно знать эту учетную запись пользователя или пароль. Нам просто нужен чистый Linux-сервер.

    Для этого мы сначала должны сообщить Samba об этом пользователе. Мы можем сделать это, добавив учетную запись в smbpasswd .

     [root @ RHEL52 samba] # smbpasswd -a sambanobody
    Новый пароль SMB:
    Введите новый пароль SMB еще раз:
    Добавлен пользователь sambanobody.

    Чтобы узнать, где Samba хранит эту информацию (на данный момент), используйте smbd -b . Переменная PRIVATE_DIR покажет вам, где находится база данных smbpasswd.

     [root @ RHEL52 samba] # smbd -b | grep ЧАСТНЫЙ
       ЧАСТНЫЙ_КАТАЛОГ: / etc / samba
    [root @ RHEL52 samba] # ls -l smbpasswd
    -rw ------- 1 root root 110 21 января 06:19 smbpasswd 

    Вы можете использовать простой cat для просмотра содержимого базы данных smbpasswd . У пользователя sambanobody есть пароль (это секрет).

     [root @ RHEL52 samba] # cat smbpasswd
    sambanobody: 503: AE9 ... 9DB309C528E540978: [U]: LCT-4976B05B: 

    Обратите внимание, что в последних версиях Samba tdbsam по умолчанию используется для параметра passdb backend .

     root @ ubu1110: ~ # testparm -v 2> / dev / null | grep 'passdb backend'
    
    passdb backend = tdbsam 

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

    Ниже приведено обновленное определение нашей доли в smb.conf.

    [pubwrite]
     путь = / SRV / самба / для записи
     комментарий = файлы для записи
     заставить пользователя = sambanobody
     группа сил = sambanobody
     только чтение = нет
     гость ок = да
    

    Когда вы повторно подключаетесь к общему ресурсу и записываете файл, этот пользователь sambanobody будет владеть только что созданным файлом (и никому не нужно знать пароль).

    практика: первая учетная запись пользователя samba

    1. Создайте учетную запись пользователя для использования с samba.

    2. Добавьте этого пользователя в базу данных samba.

    3. Создайте доступный для записи общий каталог и используйте директивы «force user» и «force group» для принудительного владения файлами.

    4. Протестируйте работу принудительного пользователя с помощью smbclient, net use и Windows Explorer.

    решение: первая учетная запись пользователя samba

    1. Создайте учетную запись пользователя для использования с samba.

     useradd -s / bin / false smbguest 
     usermod -c 'samba guest' 
     passwd smbguest 

    2.Добавьте этого пользователя в базу данных samba.

     smbpasswd -a smbguest 

    3. Создайте доступный для записи общий каталог и используйте директивы force user и force group для принудительного владения файлами.

    [userwrite]
     путь = / srv / samba / userwrite
     comment = все записывают файлы, принадлежащие smbguest
     только чтение = нет
     гость ок = да
     заставить пользователя = smbguest
     группа силы = smbguest
    

    4.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *