понедельник, 6 апреля 2009 г.

Скрипт для ежедневного удаления и создания каталогов

Пишется такой скрипт в /var/cron/tabs/root:
1       0       *       *       *       /bin/rm -r /samba/shares/plotter/*; /bin/mkdir -m 0777 -p /samba/shares/plotter/ASO
Все просто.

понедельник, 2 марта 2009 г.

Конфигурирование nfs-клиента в OpenBSD

Имеется nfs-ресурс, который нужно монтировать. Делается так:
  1. Меняем значение переменной. Здесь указывается количество одновременных потоков ввода-вывода.
    # sysctl -w vfs.nfs.iothreads=4 

  2. Далее раскомментируем строку vfs.nfs.iothreads=4 в /etc/sysctl.conf
  3. Второй раз это делается для того, чтобы не делать этого вручную как в первый раз, после перезагрузки системы.
  4. В /etc/fstab задал опции монтирования nfs-ресурсов:
    10.100.100.253:/srv/smb/mail /samba/shares/mail nfs ro,auto,dev,async,nouser,suid 0 0
Все. На это настройка закончена. Далее будет описание опций монтирования.
В OpenBSD нет общей опции defaults, как в Linux, в которую входит набор нескольких опций сразу. Поэтому тут я поименно указал опции, которые входят в defaults
Захотелось разузнать поподробнее об этих опциях (ro,auto,dev,async,nouser,suid) подробнее. Вот что мне удалось узнать/понять:
ro - read-only Понятно. Монтирование в режиме "только чтение"
auto - разрешает монтироваться по команде mount -a. проще говоря автомонтирование
dev - позволяет различать файловые системы символьно-специальных и блочно-специальных устройств. Которые в свою очередь означают:
  • блочно-специальное устройства - устройства с файловой системой использующие кластер-блок (магнитные диски, флешки и т.п).
  • символьно-специальные устройста - устройства не использующие кластер-блок (терминал, некоторые виды магнитной ленты и т.п.). На самом деле, это очень сложная тема, о которой может быть, я почитаю позже.
async - все операции ввода/вывода будут выполняться асинхронно. Думаю, это должно быть облегчает потоки "туда-сюда". Становится легче обмениваться потоками информации.
nouser - запрещает обычному пользователю (не-root) монтировать эту файловую систему.
suid - разрешает SUID и SGID.
Конечно опций монтирования очень много, но я остановился только на тех опциях, которые входят в linux-опцию defaults

среда, 11 февраля 2009 г.

smbd, nmbd при старте системы

Поскольку, для контроллера домена удобно чтобы демоны smbd и nmbd при старте-перезагрузке системы поднимались сами, без посторонней помощи. В rc.local пишется такой скрипт:
if [ -x /usr/local/libexec/smbd ]; then
echo -n ' smbd'
/usr/local/libexec/smbd
fi
if [ -x /usr/local/libexec/nmbd ]; then
echo -n ' nmbd'
/usr/local/libexec/nmbd
fi

четверг, 5 февраля 2009 г.

ssh и разные кодировки

OpenBSD у меня использует локаль KOI8-R. Захожу на него, обычно с машин, использующие utf8. Соответственно получаются проблемы при чтении файлов с кириллицей.
На помощь приходит следующее

$ luit -encoding "KOI8-R" ssh xxxxxxx

четверг, 4 декабря 2008 г.

Контроллер домена на OpenBSD 4.4+Samba 3.0.31

Настраивал OpenBSD 4.4 + Samba 3.0.31. Но думаю, что данный мануал может также подойти к большинству linux дистрибутивов.
Практически вся работа сводится к настройке /etc/samba/smb.conf. Обошелся чистой самбой, без winbind, ldap

#Что-нибудь свое
workgroup = hello
#Сюда можно какое-нибудь описание
server string = Domain Controller Head Office
#Это обязательно нужно для контроллера
security = user
#Здесь можно ограничить по адресу подсети, типа "192.168.0.", но я не стал этого делать
hosts allow =
#Весь этот блок вроде бы несложен для понимания
domain master = yes
preferred master = yes
domain logons = yes
logon script = %m.bat
logon script = %U.bat
logon path = \\%L\Profiles\%U
wins support = yes
add user script = /usr/sbin/useradd %u
add group script = /usr/sbin/groupadd %g
add machine script = /usr/sbin/adduser -n -g machines -c Machine -d /dev/null -s /sbin/nologin %u
delete user script = /usr/sbin/userdel %udelete user from group script = /usr/sbin/deluser %u %g
delete group script = /usr/sbin/groupdel %g
dos charset = 866
unix charset = UTF-8
domain admin group = root @wheel administrator
time server = yes

#Здесь хранятся хомы.
[homes]
comment = Home Directories
browseable = no
writable = yes
#Тут хранятся батники, которые выполняются при входе пользователя в домен. У меня их нет, #но каталог имеется на всякий пожарный
follow symlinks = no

[netlogon]
comment = Network Logon Service
path = /home/netlogon
browseable = no
share modes = yes
#Отключает автономное кэширование. Это исключит порчу профилей при отключении сети в #момент его перемещения
csc policy = disable

#По-моему один из важнейших каталогов. Все настройки Windows окружения, файлы, каталог #сохраняются именно сюда. Процесс сохранения происходит при выключении машины. Кажется.
[Profiles]
path = /home/profiles
browseable = no
writable = yes
veto files = /*.exe/*.cmd/*.pif/*.inf/delete
veto files = yes

#Все остальное шары. О них отдельный разговор. Шары можно создавать по своему вкусу.
[antivirus]
path = /samba/shares/antivirus/
guest ok = Yes

[mail]path = /samba/shares/mail
read only = No
guest only = Yes
guest ok = Yes
only user = Yes

[plotter]
path = /samba/shares/plotter/
public = yes
writeable = yes
browseable = yes

[obmen]
path = /samba/shares/obmen/
public = yes
writeable = yes
browseable = yes

Создадим администратора. Здесь попросят вбить пароль
# smbpasswd -a root
Активизируем администратора
# smbpasswd -е root

Теперь можно вводить имеющиеся машины в домен. Символ "$" при вводе машин в домен обязателен. Имя должно соответствовать тому имени, которое уже существует в Windows (в свойствах "Мой компьютер")
# useradd -g users -d /dev/null -s /sbin/nologin machinename$

Потом
# smbpasswd -a -m machinename

Потом
# smbpasswd -e -m machinename

Итак вводим необходимое количество машин. После нужно создать пользователей.
Сначала
useradd -m -d /home/username -s /sbin/nologin -g users username

Потом знакомое уже
smbpasswd -a username
и
smbpasswd -e username

Все. На этом настройка закончилась. Теперь можно запустить
# /usr/local/libexec/smbd -D
# /usr/local/libexec/nmbd -D

А теперь начинается ввод самих машин в доменную зону. Для этого на Windows машине отрубаем все шары. Правой кнопкой на ярлыку "Мой компьютер" -> "Отключить сетевой диск", а там уже все просто. Можно также отключить средствами cmd, но я не помню как это сделал :)

Теперь правой кнопкой далее открываем свойства "моего компьютера", вкладка "Имя компьютера", кнопка "Изменить", и делаем членом домена (тупо пишем workgroup, который указали в конфиге). Потом перегрузиться. После перезагрузки выйдет окошко входа, где нужно будет вбить данные администратора этой машины (не администратор домена!). Доменного root'a надо ввести в группу "Администраторы" локальной машины. Наверное это не надо объяснять как это сделать. Единственное надо упомянуть. что система перед этим попросит имя и пароль доменного root'a. А потом заходим на эту же машину доменным root'ом, урезаем права местному администратору или меняем ему пароль, на тот, который не будет знать юзер. Вот и все. Теперь на эту машину можно будет логиниться от имени любого пользователя, которого вы создали в домене.

Теперь кратенько о принципе работы контроллера домена. Значит в данном случае все настройки и файлы из Documents and Settings/username каждого пользователя хранятся в /home/profiles. Файлы лучше не сохранять на рабочем столе, так как это чревато долгой загрузкой при входе. Все внесенные изменения сохраняются на сервере при выключении клиентской машины.

Далее, необходимо запретить пользователям называть файлы и каталоги именами более 64-х символов. Запретить устно :) Как сделать это системно, я пока еще не знаю. Файлы и каталоги, имена которых более 64-символов не будут бэкапиться по NFS, архивироваться и т.д.

Администратору надо следить чтобы вывод
# fstat | wc -l
не превышал вывод
sysctl -a | grep kern.maxfiles
Если первое будет приближаться к числу второго, то будет необходимо корректировать в файле /etc/sysctl.conf строку kern.maxfiles= (если нет, то добавить). Это отвечает за количество обращений к файлам. Вроде так :)

Конечно на этом дело не заканчивается. Но все остальное - тонкости, основная задача решена.

среда, 26 ноября 2008 г.

Hello, world!
Привет, мир!