В ритме самбы Anton Karpov Хакер, номер #072, стр. 072-100-3 # echo -e "net use H: \\\\servername\\$USER \n net use G: \\\servername\\public" > /usr/local/samba/netlogon/logon.bat Т.е. заставить каждый раз при логоне пользователя в домен выполнять нужные нам операции монтирования. Но мы пойдем другим путем, а именно в секцию [netlogon] пропишем следующее: root preexec = /usr/local/samba/bin/make_logon_script '%m' '%U' '%a' '%g' '%L' Make_logon_script - shell-скрипт, который создает на лету специфичный для каждого пользователя исполняемый сценарий имя_юзера.cmd. В нашем случае он будет делать то же самое - монтировать диск пользователя и публичный диск, но подумай, какие возможности открывает директива preexec, с учетом того, что в нее можно запихнуть любую команду. А если вспомнить, что есть и postexec, то в голову сразу же приходит метод «на коленке» для раздачи инета только тем юзерам, которые вошли в домен, - для этого скрипт должен, например, добавлять/удалять правило файрвола для пропуска в сеть машины клиента. Наш logon script выглядит так: # vi /usr/local/samba/bin/make_logon_script #!/bin/sh umask 022 SAMBA_DIR=/usr/local/samba exec 2> > "$SAMBA_DIR/var/logon_script.err" write () { echo "$@"; echo '\r'; } CLIENT_MACHINE="$1" USER="$2" SYSTEM_TYPE="$3" GROUP="$4" SERVER_NAME="$5" SUFFIX=cmd SCRIPT="$SAMBA_DIR/netlogon/$USER.$SUFFIX" exec 1> "$SCRIPT" chmod o+x "$SCRIPT" write "@ECHO off" write "ECHO." write "ECHO Type : $SYSTEM_TYPE." write "ECHO." write "ECHO Computer : $CLIENT_MACHINE - User : $USER - Group : $GROUP." write "ECHO." write "NET USE P: \\\\\\\\$SERVER_NAME\\\\public" write "NET USE Q: \\\\\\\\$SERVER_NAME\\\\$USER" Директива root preexec в [netlogon] указывает скрипту выполняться с нужными параметрами и генерировать сценарий подключения дисков, который эти диски затем и монтирует. Пользователи на автопилоте Осталось добавить пользователей. Согласно документации, надо добавить samba-пользователя с помощью команды smbpasswd. Вся информация о нем запишется в /usr/local/samba/private/smbpasswd, причем права к этому файлу должны быть проставлены самым строгим образом (600) - самба следит за этим. Но этого мало - для начала пользователь должен присутствовать в системе, т.е. информация о нем должна быть в /etc/passwd и /etc/master.passwd. Разработчики обещают позже убрать это требование, но пока - селяви. Разумеется, вместо системных аккаунтов можно прикрутить к самбе LDAP и засунуть пользователей туда, но это уже совсем другая история. В случае же системного пользователя, чтобы ограничить его доступ на сервер только самбой, которая все равно берет пароли из своего файла, юзеру нужно назначить невалидный шелл (/sbin/nologin). Учти, что этот шелл никогда не должен присутствовать в /etc/shells! С учетом того, что самба не использует пароли в /etc/master.passwd, учетную запись пользователя можно залочить (pw lock username). |