В моем любимом Windows окружение появился ноут с Debian. И конечно мне захотелось расшарить его на сеть, а это задача оказалась не как в винде, парой нажатий кнопок. На выручку пришел программный пакет Samba.
Вообще Samba это очень мощный инструмент, которые позволяют обращаться к сетевым дискам и принтерам на различных операционных системах по протоколу SMB/CIFS. Samba может выступать в роли контроллера домена и сервиса Active Directory, совместимого с реализацией Windows 2000, и способна обслуживать все поддерживаемые Microsoft версии Windows-клиентов, в том числе Windows 10. Samba включена практически во все дистрибутивы Linux. Скорей всего у вас он тоже есть, проверьте это )
whereis samba
Если вдруг нету (
apt-get install samba
Basic настройка Samba
Конфигурационный файл /etc/samba/smb.conf содержит все основные настройки.
- какие именно папки и принтеры будут видны пользователям других машин в сети;
- кто и при каких условиях будет иметь доступ к файлам и принтерам;
- смогут ли клиенты не только читать, но и записывать данные;
- каким образом будут вестись логи;
- каким образом будет осуществляться подключение и т. д.
Давайте создадим папочку папочку для читани и записи всем желающим. Для начала нам придется сделать пользователя и назначит иму эту папку:
adduser --system share # --system значит создаем системного пользователя с минимальным наборам прав.
chown share /home/share
Добавим теперь настройки в файл /etc/samba/smb.conf , не забудьте сделать резервную копию на всякий случай )
[public_share] comment = No limits here. # Описание и т.д path = /home/share # Путь к папке guest ok = yes # Разрешает подключаться без логина и пароля, синоним public browseable = yes # Определяет, будет ли наша шара видна внутри сети writable = yes # Разрешает запись create mask = 0644 directory mask = 0755 force user = share # принудительно определяет каждого подключившегося как пользователя share
Управление доступом.
В качестве пользователей Samba рассматривает уже существующих пользователей Linux. Но пароль для них надо устанавливать отдельно. Для этого существует утилита smbpasswd.
smbpasswd -a username #Установить пароль для пользователя username
smbpassword -e username # Деактивировать пользователя
Вместо username подставьте имя нужного (и обязательно существующего!) пользователя Linux. В процессе потребуется дважды ввести пароль.
Если у вас или других пользователей есть компьютер с Windows, где имя пользователя отличается от используемого в Linux, очень удобно создать псевдоним (алиас), указав его в файле /etc/samba/smbusers. По умолчанию этого файла нету создадим новый:
username = admin serega
usermane — имя пользователя в Linux, admin & serega алиасы. Имена пользователей на компьютере с Windows. Так же нам надо добавить наши настройки в файл /etc/samba/smb.conf ,секцию [global] :
username map = /etc/samba/smbusers
Папки с ограниченным доступом.
Если папка еще не существует, создайте ее и убедитесь, что она доступна для записи и чтения нужным пользователям. Теперь добавим новый раздел в наш smb.conf.
[secret] path = /путь/к/вашей/папке browseable = no writable = yes read list = username #список пользователей, имеющих доступ только для чтения write list = username username2 #пользователи, имеющие право записи; valid users = username username2 #ограничивает список пользователей, которые имеют право подключаться. guest ok = no
С помощью опций hosts allow можно разрешить подключаться определенным IP или запретить hosts deny.