Skip to content


Раздаем права в samba по IP-адресу

Представим ситуацию: есть samba-пользователь vasya, который ходит на samba-сервер с компьютеров с IP-адресами 172.16.0.7 и 172.16.0.13, и нужно сделать так, чтобы при подключении с 172.16.0.7 у него был доступ на запись в общий ресурс NashaShara, а при подключении с 172.16.0.13 – доступ только на чтение. Решается эта задача с помощью макро-подстановок (man 5 smb.conf, раздел "VARIABLE SUBSTITUTIONS") следующим образом:

  1. Создаем директорию /etc/samba/per-ip-configs
  2. В директории /etc/samba/per-ip-configs создаем файл с именем 172.16.0.7.conf:
    1. [NashaShara]
    2.     comment = Read-Write access
    3.     path = /var/spool/samba/nashashara
    4.     valid users = vasya
    5.     write list = vasya
    6.     create mask = 644
    7.     directory mask = 755
    8.     printable = no
  3. Потом в той же директории /etc/samba/per-ip-configs создаем файл уже с именем 172.16.0.13.conf:
    1. [NashaShara]
    2.     comment = Read-only access
    3.     path = /var/spool/samba/nashashara
    4.     valid users = vasya
    5.     create mask = 644
    6.     directory mask = 755
    7.     printable = no
  4. В конфигурационном файле smb.conf в самом начале раздела, где описываются общие ресурсы, добавляем строку:
    1. include = /etc/samba/per-ip-configs/%I.conf

Таким образом, теперь при подключении нового клиента samba будет подгружать ту часть конфига, которая соответствует IP-адресу клиента (он подставляется вместо %I). Если клиент подключится с другого IP-адреса (для которого нет соответствующего файла в /etc/samba/per-ip-configs) и в основном конфиге smb.conf не будет определения для общего ресурса NashaShara, то клиент просто этот ресурс не увидит и доступа к нему не получит.

Размещено в категории *nix, Howto. Теги: , .

Комментариев: 1

Чтобы быть всегда в курсе здесь происходящего, Вы можете подписаться на RSS feed для комментариев на эту заметку.

  1. foxiys said

    Спасибо!!! Как раз то что искал!

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