В ритме самбы Anton Karpov Хакер, номер #072, стр. 072-100-4 После этого для каждого юзверя нужно будет создать домашний каталог с поддиректорией profile, куда будут складываться windows-настройки пользователя (т.н. перемещаемый профиль), а также каталог на публичный ресурс (/usr/local/samba/public/имя_юзера). Набивать каждый раз одни и те же команды - убийство, поэтому привожу скрипт для добавления одного пользователя, который при желании легко модифицировать, чтобы он понимал сразу несколько параметров-имен пользователей на входе. Разумеется, для разных ОС аргументы, передаваемые команде useradd, будут отличаться. Все комментарии смотри по ходу скрипта. mkuser.sh - скрипт для добавления Samba-пользователя #!/bin/sh [ $# -ne "3" ] && echo "usage: $0 loginname name lastname" && exit 1 # Добавляем пользователя /etc/passwd, определяя его в созданную ранее группу users, создаем ему домашний каталог и сразу лочим пользователя. echo "[+] Adding user $1" pw useradd $1 -c "$2 $3" -g users -s /sbin/nologin -m && \ pw lock $1 # Создаем каталог профиля пользователя в его хоумдире. mkdir /home/$1/profile chown -R $1 /home/$1 && \ # Добавляем его в базу самбы без пароля (!). Пользователь должен сменить себе пароль после первого логина! echo "[+] Adding $1 into smb accounts" smbpasswd -a -e -n $1 && \ smbpasswd -e $1 && \ # По правилам, пользователь может заходить в домен только с машины, которая присутствует в домене (trusted host). Пусть имена машин будут такими же, как и имена юзеров, но с постфиксом comp. Также заметь, что учетная запись машины имеет символ $ на конце. Проделываем для машин все то же, что и для пользователей, только домашнего каталога у них не будет. echo "[+] Adding machine for $1" pw useradd "$1"comp$ -s /sbin/nologin -d /nonexistent -g 1008 -c "Machine &" && \ pw lock "$1"comp$ # А вот аргументы команде smbpasswd для юзера и для машины разные. smbpasswd -a -m "$1"comp$ && \ # Создаем публичную диру для пользователя. mkdir /usr/local/samba/public/$1 && \ chown $1 /usr/local/samba/public/$1 && \ chgrp users /usr/local/samba/public/$1 chmod 770 /usr/local/samba/public/$1 echo "[+] Done!" exit 0 # ./mkuser.sh pupkin Pupkin Vasiliy Ничто не мешает сделать аналогичный скрипт и для удаления. rmuser.sh - удаление пользователя из системы и базы Samba #!/bin/sh if [ $# -lt 1 ]; then echo "Usage: $0 user" exit 1 fi # Удаляем пользователя из PDC. smbpasswd -x $1 # Удаляем пользователя и его машину из системы. pw userdel $1 pw userdel "$1"comp$ # Сносим все каталоги пользователя. rm -rf /usr/local/samba/public/$1 rm -rf /home/$1 # ./rmuser.sh pupkin Ключ на старт! Стартовый скрипт во FreeBSD расположился в каталоге /usr/local/etc/rc.d/samba.sh. Однако если ты запустишь его, ничего не произойдет. Скрипт использует систему rcNG (man rc.subr), поэтому необходимость запуска программ определяет по наличию соответствующих переменных в /etc/rc.conf. Для samba.sh такими переменными являются samba_enable или, более детально, nmbd_enable и smbd_enable. Чтобы самба стартовала, добавь в /etc/rc.conf |