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

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

Some HTML is OK

(required)

(required, but never shared)

, или ответить через trackback.

Страница 1 из 11