Как расшарить папку в CentOS с помощью Samba
Привет! В сегодняшней статье я опишу как «расшарить» папку на CentOS сервере – то есть предоставить ей общий доступ без указания пароля. Сделать это возможно с помощью установки сервера Samba и нескольких дополнительных манипуляций.
Доступ будет производиться по протоколу SMB/CIFS (Server Message Block/Common Internet File System
Установка
Перед установкой необходимо понять, в каком статусе у вас находится SELinux – для этого нужно выполнить команду selinuxenables && echo enabled || echo disabled . В случае если результат такой же, как на скриншоте ниже – можете смело приступать непосредственно к самому процессу установки (ниже):
В противном случае, вам необходимо будет его отключить – для этого откройте конфигурационный файл по пути /etc/selinux/config любым текстовым редактором – например, Vi — vi /etc/selinux/config и поставьте значение SELINUX в положение disabled и выполните перезагрузку системы командой reboot
SELinux – дополнение к стандартной системе контроля доступа Linux, но его настройка довольна трудоёмка и оно включено по умолчанию. Без каких-либо манипуляций SELinux часто может блокировать изменения, вызываемые при запуске различных служб или программ.
Далее приступаем к установке Samba сервера. Для этого нужно выполнить команду:
yum install samba samba-common cups-libs samba-client
Теперь создадим папку – вводим команду mkdir –p /root/SHAREDFOLDER (имя папки и директория, соответственно, могут быть произвольными).
Далее устанавливаем на неё права:
chown –R root:users /root/SHAREDFOLDER chmod –R 775 /root/SHAREDFOLDER
Конфигурация
Открываем текстовым редактором основный файл конфигурации Samba – воспользуемся Vi: vi /etc/samba/smb.conf .
В данном файле необходимо проверить чтобы в секции global присутствовали следующие строки:
[global] security = user passdb backend = tdbsam workgroup = MYGROUP map to guest = Bad User server string = Samba Server Version %v
Затем закомментируйте (проставьте точку с запятой) перед аргументами в разделах [homes] (доступ к гостевым директориям) и в [printers] (доступ к принтерам).
Теперь добавьте конфиг для вашей созданной папке, выглядеть это должно следующим образом:
[SHAREDFOLDER] comment = Everybody has access path = /root/SHAREDFOLDER force group = users create mask = 0666 directory mask = 0777 writable = yes guest ok = yes browseable = yes
Наконец, сохраним файл конфигурации и настроим автозапуск службы samba – для этого необходимо выполнить следующую команду:
chkconfig –levels 235 smb on /etc/init.d/smb restart
Помните – Samba использует порты 137, 138, 139 и 445. Эта информация вам может понадобится при пробросе портов и настройке iptables.
Благодаря вышеописанной процедуре, вы сможете легко передавать файлы с сервера на рабочие машины в вашей сети, и, более того, решать многие прикладные задачи – к примеру, расшарить папку с записями разговоров, чтобы непосредственно иметь к ним доступ.
Открываем общий доступ к папкам и файлам через Samba
После установки открываем конфиг /etc/samba/smb.conf, и начинаем его править под свои нужды. В секции [Global] правим следующие параметры: Если ваш компьютер является еще в добавок и маршрутизатором, и имеет более чем 1 сетевую карту, будет не лишним указать, какой из имеющихся интерфейсов слушать:
interfaces = eth1 bind interfaces only = yes
Доступ без авторизации
После каждого изменения конфига Samba должна быть перезагружена — /sbin/service smb restart в CentOS/RedHat или service samba restart в Debian/Ubuntu.
Расшарим папку music по адресу /var/music для всех пользователей (авторизация не будет требоваться). Имя папки, с которым её будут видеть пользователи которые зашли на шару задается в квадратных скобках (в данном случае — Music).
[Music] browseable = yes create mode = 0766 guest ok = yes path = /var/music writeable = yes
В данную папку будет иметь доступ кто угодно, но не сможет записывать (загружать, заливать) и удалять файлы без авторизации. Для того, чтобы дать неавторизованному пользователю полный доступ для работы с файлами и папками, воспользуемся параметром force user . Данный параметр отвечает за то, под каким пользователем будут выполняться операции с файлами в данной директории — например, если мы создадим пользователя samba-guest, и выдадим ему полные права на данную папку, а в force user пропишем значение samba-guest, то дадим полный доступ к директории:
[Music] browseable = yes create mode = 0766 force user = samba-guest guest ok = yes path = /var/music writeable = yes
Доступ с авторизацией
Теперь перейдем к тому, чтобы разрешить доступ к папке только определенному пользователю — к примеру, пользователю crazysysadmin. Samba как и большинство приложений Linux использует для своих нужд уже существующих пользователей системы, поэтому нужно использовать либо уже имеющуюся учетную запись, либо создать новую. Создать нового пользователя можно командой useradd:
useradd crazysysadmin -m -G users
smbpasswd -a crazysysadmin
smbpasswd -e crazysysadmin
Теперь сделаем доступ к шаре music только для чтения для неавторизованных пользователей, и полный доступ для пользователя crazysysadmin:
[Music] admin users = crazysysadmin browseable = yes comment = Music create mode = 0766 guest ok = yes path = /var/music writable = yes
Как должно быть понятно из примера выше, то все отличие заключается в строчке admin users — туда задаются пользователи с правами полного доступа на директорию. Так же туда можно добавлять и целые группы из системы — для этого перед её именем нужно поставить символ @ — например @admins. Если же нужно сделать так, чтобы никто кроме пользователя crazysysadmin не имел доступа к этому каталогу (даже на просмотр), то просто меняем параметр guest ok на no:
[Music] admin users = crazysysadmin browseable = yes comment = Music create mode = 0766 guest ok = no path = /var/music writable = yes
База знаний
Привет! В сегодняшней статье я опишу как «расшарить» папку на CentOS сервере – то есть предоставить ей общий доступ без указания пароля. Сделать это возможно с помощью установки сервера Samba и нескольких дополнительных манипуляций.
Доступ будет производиться по протоколу SMB/CIFS (Server Message Block/Common Internet File System
Установка
Перед установкой необходимо понять, в каком статусе у вас находится SELinux – для этого нужно выполнить команду selinuxenables && echo enabled || echo disabled . В случае если результат такой же, как на скриншоте ниже – можете смело приступать непосредственно к самому процессу установки (ниже):
В противном случае, вам необходимо будет его отключить – для этого откройте конфигурационный файл по пути /etc/selinux/config любым текстовым редактором – например, Vi – vi /etc/selinux/config и поставьте значение SELINUX в положение disabled и выполните перезагрузку системы командой reboot
SELinux – дополнение к стандартной системе контроля доступа Linux, но его настройка довольна трудоёмка и оно включено по умолчанию. Без каких-либо манипуляций SELinux часто может блокировать изменения, вызываемые при запуске различных служб или программ.
Далее приступаем к установке Samba сервера. Для этого нужно выполнить команду
yum install samba samba-common cups-libs samba-client
Теперь создадим папку – вводим команду mkdir –p /root/SHAREDFOLDER (имя папки и директория, соответственно, могут быть произвольными).
Далее устанавливаем на неё права:
chown –R root:users /root/SHAREDFOLDER chmod –R 775 /root/SHAREDFOLDER
Конфигурация
Открываем текстовым редактором основный файл конфигурации Samba – воспользуемся Vi: vi /etc/samba/smb.conf .
В данном файле необходимо проверить чтобы в секции global присутствовали следующие строки:
[global] security = user passdb backend = tdbsam workgroup = MYGROUP map to guest = Bad User server string = Samba Server Version %v
Затем закомментируйте (проставьте точку с запятой) перед аргументами в разделах [homes] (доступ к гостевым директориям) и в [printers] (доступ к принтерам).
Теперь добавьте конфиг для вашей созданной папке, выглядеть это должно следующим образом:
[SHAREDFOLDER] comment = Everybody has access path = /root/SHAREDFOLDER force group = users create mask = 0666 directory mask = 0777 writable = yes guest ok = yes browseable = yes
Наконец, сохраним файл конфигурации и настроим автозапуск службы samba – для этого необходимо выполнить следующую команду:
chkconfig –levels 235 smb on /etc/init.d/smb restart
Помните – Samba использует порты 137, 138, 139 и 445. Эта информация вам может понадобится при пробросе портов и настройке iptables.
Благодаря вышеописанной процедуре, вы сможете легко передавать файлы с сервера на рабочие машины в вашей сети, и, более того, решать многие прикладные задачи – к примеру, расшарить папку с записями разговоров, чтобы непосредственно иметь к ним доступ.