В заметке рассматривается установка на CentOS Samba для совместного использования файлов по сети по протоколу smb. В приведенном примере установка производилась на CentOS 6.2 с включенной опцией SELinux. Базовая установка производится с помощью привычной команды yum:
#yum install samba После установки нужно откорректировать файл /etc/samba/smb.conf.
Внизу файла находятся заготовки для создания расшареных папок. Их можно
раскомментировать, получив готовые к шаре, к примеру, общую папку для
всех пользователей или расшарить домашние папки пользователя. Расшариваемые настройки интуитивно понятны. Кроме настроек внизу файла советую обратить на строку
hosts allow = {кто_может_подключиться}
У
меня значение установлено как 127. 192.168.0 - позволяет подключаться
или самому себе или любым иннтерфейсам сети 192.168.0. (пустым местом
можно считать классовую маску, здесь /24). Пользователи, подключающиеся
через интерфейс, который смотрит в Internet не смогут получить доступ к
Samba. Пароли и пользователи в SambaВозможно
вы захотите сделать копию файла passwd, который содержит обычные пароли
системы для использования тех же учетных записей в Samba. Для этого
выполните команду:
#cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
Это не отменяет команду #smbpasswd username для установки пароля пользователя при подключении. Также, в конфигурационном файле /etc/samba/smb.conf
в этом случае необходимо будет включить опцию, которая бы указывала,
что пароли идут в шифрованном виде. Если соответствующей в файле нет,
пропишите ее самостоятельно:
encrypt passwords = yes smb passwd file = /etc/samba/smbpasswd Это базовая настройка Samba на CentOS 6.2, расширенные опции всегда можно найти в документации или хелпе. Samba и SELinuxВозможная проблема
- после того как все настройки были сделаны, пользователи на удаленных
компьютерах видят расшаренные папки в системе CentOS через Samba, но не
могут получить к ним доступ. Изменение прав на эти папки проблему не
решает. Это вызвано действием SELinux, который по умолчанию
включен. Необходимо указать контекст для SELinux по отношению к этим
папкам. Для примера, общую расшаренную папку в CentOS можно пометить
как:
chcon -R -t samba_share_t /{путь_к_общему_ресурсу} ВНИМАНИЕ! Минус и тире - разные вещи :) В случае, если необходимо расшарить доступ к домашним папкам пользователя, необходимо выполнить команду:
#setsebool -P samba_enable_home_dirs 1
это
установка типа Boolean, соответственно, если вы хотите чтобы через
Samba нельзя было получить доступ к домашним папкам в CentOS - просто
выполните идентичную команду с 0 в конце. Совмещение Apache и SambaЕсли
есть непосредственный доступ к Web-серверу CentOS, в случае работы над
Web-проектом было бы удобно обращаться на прямую по сети с сайтом как с
локальной папкой. Решением для этого может быть объединение прав на
Самбу и Апач. Однако, SELinux имеет разные контексты для работы
двух демонов этих сервисов. Решением может быть применение общего
контекста, который разрешен для обоих (вместо /var/www укажите место,
где крутятся ваши сайты):
#chcon -R -t public_content_rw_t /var/www
После
применения этого контекста общий доступ будет только на чтение, через
Samba сохнарять изменения будет нельзя. Чтобы этого избежать, можно
добавить флаг, разрешающий анонимные записи демоном smbd:
#setsebool -P allow_smbd_anon_write 1
http://it-student.com.ua/verkhnee-menju/administrirovanie/centos-sabma-ustanovka-i-nastroika-s-selinux.html
|