Bind 9.9 установка

Начиная с FreeBSD 10, в базовый состав операционной системы не входит DNS-сервер и его нужно устанавливать из портов отдельно. Этим мы и займемся.
Настройка будет серверная, а потому наш named, как и положено на защищенном сервере, будет резвиться в песочнице и отдавать только свои зоны.
Использованные версии ПО:
# uname -sr
FreeBSD 10.0-STABLE
# pkg info | grep bind
bind99-9.9.5_12                BIND DNS suite with updated DNSSEC and DNS64

Установка

# cd /usr/ports/dns/bin99
# make install clean

Настройки:

 [ ] DOCS            Build and/or install documentation
 [ ] FILTER_AAAA     Enable filtering of AAAA records
 [ ] FIXED_RRSET     Enable fixed rrset ordering
 [ ] GSSAPI          GSSAPI support
 [x] IDN             International Domain Names support
 [x] IPV6            IPv6 protocol support
 [x] LARGE_FILE      64-bit file support
 [ ] LINKS           Create conf file symlinks in /usr/local
 [ ] NEWSTATS        Enable alternate xml statistics channel format
 [ ] REPLACE_BASE    Replace base BIND (FreeBSD 9.x and earlier)
 [ ] RPZ_NSDNAME     Enable RPZ NSDNAME policy records
 [ ] RPZ_NSIP        Enable RPZ NSIP trigger rules
 [ ] RPZ_PATCH       RPZ improvements
 [ ] RRL             Response Rate Limiting
 [ ] SIGCHASE        dig/host/nslookup will do DNSSEC validation
 [x] SSL             Build with OpenSSL (Required for DNSSEC)
 [x] THREADS         Threading support
 ???????????????????????? Dynamically Loadable Zones ??????????????????????
 [ ] DLZ_POSTGRESQL  DLZ Postgres driver
 [ ] DLZ_MYSQL       DLZ MySQL driver (no threading)
 [ ] DLZ_BDB         DLZ BDB driver
 [ ] DLZ_LDAP        DLZ LDAP driver
 [ ] DLZ_FILESYSTEM  DLZ filesystem driver
 [ ] DLZ_STUB        DLZ stub driver

Настройка

 /etc/rc.conf:
 named_enable="YES"
 named_flags="-t /var/named"
 /var/named - это и есть наша песочница, где named будет жить
 Делаем песочницу, которая раньше делалась в FreeBSD автоматом
 # mkdir -p /var/named/usr/local/etc/
 # mkdir -p /var/named/var/dump
 # mkdir -p /var/named/var/run/named
 # mkdir -p /var/named/var/stats
 # mv /usr/local/etc/namedb /var/named/usr/local/etc/
 # cd /usr/local/etc
 # ln -s /var/named/usr/local/etc/namedb
 # cd /var/run
 # ln -s /var/named/var/run/named
последнюю строчку возможно придется вбить после запуска named, если вдруг ругнется на отсутствие файла и не захочет делать ссылку.
Создаем правила для devfs. Правим /etc/devfs.conf
 # Custom rules for the named chroot dev
 [devfsrules_named_chroot=4]
 add hide
 add path run unhide
 add path random unhide
Добавляем в /etc/fstab
devfs           /var/named/dev  devfs   rw,ruleset=4      0     0
Монтируем
mount /var/named/dev

Однако когда named уже запущен, может появиться необходимость перезапустить его по каким-либо причинам, в том числе и для того, чтобы сервер имен проверил наличие обновлений в файлах зон. Для этих целей пакет BIND включает в себя инструмент удаленного управления сервером имен (Remote Name Daemon Control), rndc(8).

Настройка rndc

rndc взаимодействует с демоном named(8) через безопасное TCP-соединение, даже на локальном компьютере. Это означает, что у вас есть возможность управлять серверами имен на удаленных системах, не выполняя вход в них. Однако для создания безопасного соединения необходим ключ. Пакет BIND содержит сценарий rndc-confgen(8), который генерирует ключи и выполняет рутинные задачи по настройке rndc. Чтобы создать конфигурационный файл для rndc, достаточно запустить команду rndc-confgen:

# rndc-confgen > /etc/namedb/rndc.conf

Полученный файл включает в себя все необходимые параметры настройки rndc, а также ряд параметров настройки для включения в файл named.conf. Раздел с настройками для named.conf закомментирован символами решетки (#) и выглядит примерно так:

Самая интересная часть — это ключ, необходимый для обеспечения возможности управления сервером имен. Ключи в rndc.conf и named.conf должны совпадать, в противном случае rndc не сможет подключиться к серверу. Здесь также указываются IP-адрес и порт TCP, на котором named ожидает управляющие соединения , далее выдается разрешение на управление с указанного IP-адреса при наличии указанного ключа. Есть возможность выдать разрешение на управление сервером имен нескольким клиентам и каждому клиенту выдать свой собственный ключ. За подробностями обращайтесь к страницам руководства rndc и rndc.conf.

Скопируйте закомментированные строки из файла rndc.conf в файл named.conf, удалите символы решетки и перезапустите демон named командой /etc/rc.d/named restart. После этого вы сможете управлять сервером имен с помощью rndc.

Работа с rndc

Теперь, когда все препоны установки и настройки rndc позади, — что еще можно сказать об этой программе? Полный список ее возможностей приведен на странице руководства rndc(8). Наиболее типичные задачи, решаемые с ее помощью: перезапуск сервера имен, повторная загрузка зон, обновление зон, перенастройка named и проверка состояния демона.

Перезагрузка сервера имен командой rndc reload вынуждает named(8) повторно прочитать и обработать конфигурационные файлы, загрузить из текстовых файлов информацию о первичных доменах и проверить наличие обновлений для вторичных доменов. Эта операция обычно выполняется при изменении конфигурационных файлов и файлов зон.

В промежутках между перезагрузками и полным перезапуском сервера имен с помощью команды rndc reconfig можно заставить named проверить наличие новых зон.

Для повторной загрузки зоны без перезагрузки всего сервера имен в команде rndc reload следует указать имя домена. Обычно такая операция выполняется в случае, когда сервер имен испытывает серьезную нагрузку и повторная перезагрузка может потребовать слишком длительного времени или вызвать неприятности в сети.

Выполнение операции обновления зоны вынуждает вторичный сервер немедленно проверить наличие обновлений для указанной зоны на первичном сервере. Например, заставить вторичный сервер absolutefreebsd.com проверить наличие обновлений на первичном сервере можно с помощью команды rndc refresh absolutefreebsd.com.

Программа rndc не дает возможности перезапустить named. Для полного перезапуска демона следует применить команду /etc/rc.d/named restart.

С помощью команды rndc status можно получить разнообразную информацию о сервере имен, включая количество обслуживаемых им доменов, число клиентов, обратившихся к серверу, и т. д.

 

 

Черновик

 /usr/local/etc/namedb/named.conf
acl localnet { 192.168.0.0/22; 127.0.0.1;};.
acl all { any; };
options {
// Запрет отдавать номер версии сервера.
 version none;
// Запрет отдавать имя хоста, на котором работает BIND
 hostname none;
// запрет отдавать запросы об идентификаторе
 server-id none;
// Разрешаем по-умолчанию днс запросы только от доверенных сетей
 allow-query { localnet; };
// Разрешать ли рекурсивные запросы, или отдавать только те зоны, которые держит сам сервак.
 recursion yes;
// Посылка рекурсивных запросов
// разрешена только клиентам подсети
 allow-recursion { localnet; };
// Игнорировать запросы blackhole
// DNS-сервер не посылает запросы к DNS-серверам из этого списка
// и не отвечает на за, получаемые от этих серверов.
 blackhole {

 0.0.0.0/8;
 10.0.0.0/8;
 169.254.0.0/16;
 172.16.0.0/12;
 192.0.2.0/24;
 192.168.0.0/16;
 224.0.0.0/4;
 240.0.0.0/4;

};
 };
  • allow-query: указывает список хостов, которым разрешено запрашивать все зоны name-сервера или конкретную зону внутри name-сервера.
  • allow-recursion: указывает список хостов, которым разрешено создавать рекурсивные запросы к name-серверу для всех зон или для конкретной зоны, обслуживаемой name-сервером.
  • allow-transfer: указывает список хостов, которым разрешено инициировать запросы зонной пересылки к name-серверу для всех зон или для конкретной зоны внутри name-сервера. Данное утверждение обязательно требуется в конфигурации первичного name-сервера.
  • allow-update: указывает список хостов, которым разрешено инициировать запросы динамического обновления.
  • allow-update-forwarding: указывает список хостов, которым разрешено перенаправление запросов динамического обновления (независимо от того, кто является источником запроса).
  • allow-notify: указывает список хостов, с которых можно принимать сообщения DNS NOTIFY, говорящих об изменениях в зонном файле. Данный список относится только к конфигурации вторичного name-сервера.
  • blackhole: указывает список хостов, которые входят в черный список (запрещен доступ) для инициализации любых транзакций с данным name-сервером.
image_pdfimage_print

Блокировка перезаписи файлов

13 Авг 2009
После перезагрузки сервера, файл /etc/resolv.conf постоянно перезаписывается, поскольку один из сетевых интерфейсов получает ip по DHCP.
Блокировка файла выполняется так
chflags schg ./filename
Соотвественно снятие блокировки
chflags noschg ./filename
image_pdfimage_print

DNS определение

и как добиться имени в днс-сервере:
типа вот так:
C:\Documents and Settings\Loner>nslookup lissyara.su 8.8.8.8
Server: google-public-dns-a.google.com
Address: 8.8.8.8
Non-authoritative answer:
Name: lissyara.su
Address: 91.227.16.27
DNS имя для IP прописывается в реверс зоне in-addr.arpa
если IP DNS сервера 10.10.0.250 то надо запустить зону 0.10.10.in-addr.arpa. а в ней для 250 создать PTR запись.
Код: Выделить всё
$TTL 300
0.10.10.in-addr.arpa.   IN   SOA   ns1.scholl1.kg. hostmaster.scholl1.kg. (
2011103100   ;serial
7200      ;refresh
900      ;retry
2592000      ;expire
3600      ;neg. ttl
)
NS   ns1.scholl1.kg.
250.0.10.10.in-addr.arpa.   PTR   ns1.scholl1.kg.
спасибо.
теперь во всем разобрался.
image_pdfimage_print

hostname

Узнать имя хоста
#hostname
Переиминовать хост
#hostname mail.tst-amo.p.ua
Полное имя хоста
#hostname -f
Краткое имя хоста
#hostname -s
image_pdfimage_print

Моя установка FreeBSD

1. FreeBSD install
разбивка диска
GPT
/  root freebsd-ufs
swap = 2*mem swap freebsd-swap
/tmp tmp freebsd-ufs
/usr usr freebsd-ufs
/var var freebsd-ufs

2. Настройка
rc.conf
hostname=”test.example.com”
ifconfig_rl0=”inet 192.168.1.1 netmask 255.255.255.0″
sshd_enable=”YES”

mausechar
koi8-

image_pdfimage_print

netstat

Использование netstat

#netstat -I em0 => посмотреть ошибки интерфейса
#systat -ifstat => вывод
#netstat –na => просмотр всех открытых портов
#netstat -w 1 -h -d => весь трафик
#netstat -w 1 -h -d -I rl0 => трафик с интерфейса rl0
#netstat –nat – просмотр всех открых TCP-портов 
#netstat –nau — просмотр всех открых UDP-портов 
#netstat –npl — просмотр всеx прослушиваемых портов(TCP,UDP,unix-сокеты) 
#netstat –nptl — просмотр всеx прослушиваемых портов TCP 
#netstat –npul — просмотр всеx прослушиваемых портов UDP 
#netstat –nplx — просмотр всеx прослушиваемых unix-сокетов 
#netstat –s => просмотр статистики всех протоколов() 
#netstat –st — просмотр статистики TCP-протокола 
#netstat –su — просмотр статистики UDP-протокола 
#netstat –r => просмотр таблицы маршрутизации 
#netstat –i => просмотр статистики сетевых интерфейсов 
#netstat -nid => 
#netstat -ic 2 – просмотр статистики сетевых интерфейсов в режиме реального времени с обновлением каждые 2 секунды. 
#netstat –ie – просмотр расширенной информации о сетевых интерфейсах (аналог ifconfig)

Использование Netstat для определения DoS/DDoS

Отображение количества подключений на каждый IP-адрес в состоянии ESTABLISHED

netstat -naltp | grep ESTABLISHED | awk ‘{print $5}’ | awk -F: ‘{print $1}’ | sort -n | uniq -c

или

netstat -nalpt | grep ESTABLISHED | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -rn

Отобразить все активные Интернет-подключения на 80 порт сервера с их сортировкой
Полезно для определения большого количества запросов с одного IP-адреса(DoS)

netstat -na | grep :80 | sort

Подсчет количества подключений с каждого Ip-адреса на 80-порт сервера.

netstat -npla | grep :80 | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort –rn

Определение количества запросов на соединение было получено из сети

Число должно быть достаточно низким(менее 5).Во время DoS/DDoS-атаки такое количество может иметь высокое значение.Однако значение всегда зависит от системы(высокое значение на одном сервере может быть средним на другом)

netstat -np | grep SYN_RECV | wc –l

Список всех IP-адресов, с которых поступают соединения со статусом SYN_RECV

netstat -np | grep SYN_RECV | awk ‘{print $5}’ | awk -F: ‘{print $1}’

Подсчет количества подключений с каждого IP-адреса

netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort –rn

Подсчет количества подключений с каждого IP-адреса по протоколу TCP или UDP

netstat -nap | grep ‘tcp\|udp’ | awk ‘{print $5}’ | cut -d: -f1| sort | uniq -c | sort –rn
image_pdfimage_print

Apache24+php56+MySQL56+phpmyadmin

Устанавливаем Apache 2.4 из портов

cd /usr/ports/www/apache24
make all install clean
В файл /etc/rc.conf добавляем строчку
apache24_enable=»YES»

В файле /usr/local/etc/apache24/httpd.conf  раскомментируем строчку ServerName

ServerName www.localserver12.ru:80

Находим строчку DirectoryIndex и допишем в неё:

DirectoryIndex index.html index.htm index.php index.shtml

Теперь запускаем службу Apache:

service apache24 start

Если запуск не выдал никакой ошибки, переходим к следующему шагу.

Устанавливаем сервер MySQL версии 5.6 из портов:

cd /usr/ports/databases/mysql56-server
make all install clean
В файл /etc/rc.conf добавим строку
mysql_enable=»YES»
Запускаем службу:
service mysql-server start
После этого необходимо запустить скрипт mysql_secure_installation
/usr/local/bin/mysql_secure_installation
В нём создаются пароль root для сервера БД и необходимые параметры.
Затем перезапускаем службу:
service mysql-server restart

Если запуск не выдал никакой ошибки, переходим к следующему шагу.

Устанавливаем PHP версии 5.6 из портов:

cd /usr/ports/lang/php56
make all install clean

В появившемся диалоговом окне оставляем всё по умолчанию.

Затем переходим к установке расширений PHP 5.6 из портов:
cd /usr/ports/lang/php56-extensions
make all install clean
В появившемся диалоговом окне отмечаем:
BCMATH BZ2 CALENDAR CTYPE CURL DOM FILTER GD HASH ICONV JSON MBSTRING MCRYPT MYSQL MYSQLI
Готово.

Теперь устанавливаем модуль PHP версии 5.6 для Apache из портов:

cd /usr/ports/www/mod_php56
make all install clean
В папке /usr/local/etc/apache24/Includes создаём файл
php-application.conf
и внесём в него 2 строчки:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps-source
После этого переходим в папку /usr/local/etc и создадим в нём файл php.ini из файла php.ini-production
cd /usr/local/etc
cp php.ini-production php.ini
и присвоим ему необходимые права
chmod u+w php.ini
Перезагружаем машину:
shutdown -r now
После перезагрузки для проверки в папке /usr/local/www/apache24/data создадим файл info.php с таким содержанием:
<?php phpinfo(); ?>
и на другой машине в сети в браузере вводим:
http://IP-адрес-сервера/info.php

Появится страница с информацией о системе и сервере.

Затем устанавливаем phpMyAdmin из портов:

cd /usr/ports/databases/phpmyadmin
make all install clean
После установки переходим в папку /usr/local/etc/apache24/Includes и в нём создадим файл с таким содержанием:
Alias /phpmyadmin «/usr/local/www/phpMyAdmin/»
<Directory «/usr/local/www/phpMyAdmin/»>
Options none AllowOverride Limit Order Deny,Allow Require all granted
</Directory>
Перезапускаем службу:
service apache24 restart
и на другой машине в сети в браузере вводим:
http://IP-адрес-сервера/phpmyadmin/setup/
Появится страница установки phpMyAdmin. Какие действия там надо совершить думаю, описывать не стоит. Там и так всё понятно. далее, при наличии DNS-сервера и A и CNAME записей можно описать виртуальные хосты и SSL, для этого в файле /usr/local/etc/apache24/httpd.conf найдём и раскомментируем строчку:
Include etc/apache24/extra/httpd-vhosts.conf

затем открываем файл /usr/local/etc/apache24/extra/httpd-vhosts.conf, закомментируем или удалим ненужные строки (которые прописаны по умолчанию), и пропишем в нём примерно такие:

для subdomain.localserver12.ru и localserver34.ru
<VirtualHost *:80>
 ServerName subdomain.localserver12.ru
 ServerAdmin admin@localserver12.ru
 DocumentRoot /usr/local/www/apache24/vhosts/subdomain.localserver12.ru/www 
 ServerAlias www.subdomain.localserver12.ru
 ErrorLog ${APACHE_LOG_DIR}/error.log 
 CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost><VirtualHost *:80>
 ServerName localserver34.ru
 ServerAdmin admin@localserver34.ru
 DocumentRoot /usr/local/www/apache24/vhosts/localserver34.ru/www
 ServerAlias www.localserver34.ru
 ErrorLog ${APACHE_LOG_DIR}/error.log
 CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Строчка DocumentRoot может быть у каждого своя, в зависимости от того, где располагаются файлы данного сайта. ServerName — это доменное имя, которое обязательно должно быть описано в A и CNAME-записях.
Перезапускаем Apache
service apache24 restart

и проверяем на другой машине в сети в браузере.
Для виртуальных хостов SSL также необходимо в первую очередь в файле /usr/local/etc/apache24/httpd.conf раскомментировать строчку

Include etc/apache24/extra/httpd-ssl.conf

и сделать всё аналогичным образом, как описано в файле httpd-ssl.conf, не забывая при этом про A и CNAME-записи.
Сервер готов!

image_pdfimage_print

Apache

проверяю кол-во апачей:
Код:
ps aux|grep apache2|wc -l
503
Думаю как то много,смотрю что за апач:
Код:
apache2ctl -V|grep “Server MPM”
Server MPM:     ITK
3. Смотрю что у меня в конфиге апача для ITK
Код:
<IfModule mpm_itk_module>
StartServers          5
MinSpareServers       5
MaxSpareServers      10
MaxClients          250
MaxRequestsPerChild 0
</IfModule>
image_pdfimage_print

adduser

Создание пользователей во FreeBSD

Вероятно, одной из самых часто решаемых задач, в процессе администрирования, является управление учетными записями пользователей. За выражением “управление учетными записями пользователей”, скрывается целый ряд действий, осуществляемых администратором системы, настройка классов пользователей, создание учетных записей пользователей, изменение учетных записей, удаление или блокировка учетных записей, управление пользовательскими паролями, управление группами. Операционная система FreeBSD, предоставляют удобные инструменты, для облегчения жизни администратору сервера.

Создание учетной записи пользователя в операционных системах FreeBSD, программа adduser

Самым простым и удобным вариантом, для создания учетной записи пользователя в операционной системе FreeBSD, на мой взгляд является утилита adduser. Запущенная без параметров, adduser, переходит в интерактивный режим, то есть в процессе, вам будет задан ряд вопросов, а введенная вами информация будет использована для создания учетной записи. Выглядит это следующим образом:
vds-admin /root# adduser
Итак, запускаем программу
Username: newuser
вводим имя создаваемого пользователя
Full name: vasya pupkin
полное имя, можно оставить пусты, просто нажать Enter
Uid (Leave empty for default):
user id, можно ввести самому, начиная с номера 1001, либо нажать Enter, система выберет сама
Login group [newuser]:
группа в которую входит создаваемый пользователь, по умолчанию совпадает с именем
Login group is newuser. Invite newuser into other groups? []:
включить-ли пользователя в другие группы, если нет, жмем Enter
Login class [default]:

класс пользователя, о них поговорим чуть позже, на данном этапе, жмем Enter

Shell (sh csh tcsh nologin) [sh]: csh
здесь предлагается выбрать системную оболочку, если вы не собираетесь давать данной учетной записи, удаленный доступ к системе, например через SSH, вписываем nologin,
либо выбираем из предложенных вариантов, я обычно ставлю csh
Home directory [/home/newuser]:
назначаем домашнюю директорию, если значение по-умолчанию устраивает, жмем Enter
Home directory permissions (Leave empty for default):
права доступа на домашнюю директорию, что-бы оставить по-умолчанию, жмем Enter
Use password-based authentication? [yes]:
использовать-ли авторизацию по паролю
Use an empty password? (yes/no) [no]:
можно-ли использовать пустые пароли
Use a random password? (yes/no) [no]:
система предлагает сгенерировать вам пароль, что-бы согласиться, нужно написать yes
на заключительном этапе создания учетной записи, будет показан сгенерированный пароль
если предпочитаете ставить пароль вручную, жмите Enter
Enter password:
вводим пароль, имейте в виду, программа не покажет, что вы вообще что-либо вводите
так что будьте внимательны
Enter password again:
повторный ввод пароля
Lock out the account after creation? [no]:
заблокировать-ли учетную запись после создания.
Далее, для подтверждения, будут показаны введенные вами данные
 Username   : newuser
 Password   : *****
 Full Name  :
 Uid        : 1011
 Class      :
 Groups     : newuser
 Home       : /home/newuser
 Home Mode  : 777
 Shell      : /bin/csh
 Locked     : no
 OK? (yes/no): yes
Если все устраивает, пишем yes и жмем Enter. После этого, программа спросит, приступать-ли ей к созданию следующей учетной записи:
Add another user? (yes/no): no
Ограничимся одним пользователем, набираем no, жмем Enter. Итак, что произошло в момент создания учетной записи пользователя
  • запись о новом пользователе была добавлена в файл /etc/passwd
  • создана домашняя директория пользователя, в нашем случае /home/newuser
  • в домашнюю директорию, были скопированы файлы из директории /usr/share/skel
  • пользователь был добавлен в соответствующую группу, запись об этом добавлена в файл /etc/group.
  • в директории /var/mail был создан почтовый файл с именем пользователя
Вот собственно и все. Довольно просто, не правда-ли ?

Пакетное создание учетных записей пользователей в операционных системах FreeBSD, программа adduser

Утилита adduser, позволяет выполнять добавление целого списка пользователей разом. Это может понадобится, например если вам нужно добавить десяток одинаковых пользователей на несколько серверов. Что-бы воспользоваться этой возможностью, нужно создать конфигурационный файл и использовать опцию -f, команды adduser.
Конфигурационный файл представляет из себя обычный текстовый файл в котором перечислены все параметры для создаваемых учетных записей. Каждый пользователь прописан на отдельной строке, строка в свою очередь состоит из 10 полей, разделенных знаком “:”. Вот содержимое файла:
vds-admin /# cat users.txt
newuser1:3000:3000::::vasya pupkin:/home/newuser1:/bin/sh:12345
newuser2:3001:3001::::vova tyapkin:/home/newuser2:/bin/csh:67890
newuser3:3002:3002::::kisa vorobyaninov:/home/newuser3:/bin/tcsh:1234567890
Что собственно тут написано, по сути все то-же самое, что мы вводим при создании учетной записи, в интерактивном режиме. Заметьте, в нашем случае, заполнены не все поля, это вполне нормально.
Имя пользователя
Идентификатор пользователя, UserID, должен быть уникальным в системе, то есть нужно выбирать тот, который еще не используется, для удобства можно оставить пустым, ID будет назначен автоматически
Идентификатор группы, GroupID, для него справедливо все сказанное о UserID
Класс пользователя, мы оставили поле пусты, будет назначен класс по-умолчанию
Срок действия пароля пользователя
Срок действия учетной записи пользователя
Полное имя пользователя
Домашняя директория
Оболочка, как и в случае интерактивного создания пользователя, можно выбрать из нескольких или запретить использовать nologin, я всем назначил разные
Пароль пользователя
Обратите внимание, пароли пользователей в конфигурационном файле лежат в открытом виде, тогда как после создания учетных записей, они будут закодированы в файл /etc/master.passwd, поэтому настоятельно рекомендую держать конфигурационный файл подальше от посторонних глаз.
Прежде чем использовать утилиту adduser с этим конфигурационным файлом, нужно проделать еще одно действие, а именно, добавить необходимые группы, просто прописав их в файл /etc/group в следующем формате:
newuser1:*:3000:
newuser2:*:3001:
newuser3:*:3002:
Что-бы не заморачиваться с UserID и GroupID, можно, в нашем конфигурационном файле, просто оставить соответствующие поля пустыми, система сама выберет свободные значения и назначит их, при этом будут автоматически созданы необходимые записи в файле /etc/group.
Запускаем:
vds-admin /# adduser -f ./users.txt  Передаем наш конфиг утилите adduser
adduser: INFO: Successfully added (newuser1) to the user database.
adduser: INFO: Successfully added (newuser2) to the user database.
adduser: INFO: Successfully added (newuser3) to the user database.

Как видите все прошло успешно.

Установка значений “по-умолчанию” для создаваемых учетных записей пользователей в операционных системах FreeBSD

При желании можно создать конфигурационный файл /etc/adduser.conf, откуда программа adduser будет брать значения при создании новых учетных записей. Лучше всего это сделать, запустив adduser с ключом -C. Процесс выглядит следующим образом:
vds-admin /# adduser -C
Uid (Leave empty for default):
Login group []:
Enter additional groups []:
Login class [default]:
Shell (sh csh tcsh nologin) [sh]: csh
Home directory [/home/]:
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Lock out the account after creation? [no]:
Pass Type  : yes
Class      :
Groups     :
Home       : /home/
Home Mode  :
Shell      : /bin/csh
Locked     : no
OK? (yes/no): yes
Значения, которые вы планируете устанавливать сами в процессе работы утилиты adduser, просто оставляйте пустыми. В итоге будет создан файл конфигурации /etc/adduser.conf, примерно такого содержания:
vds-admin /# cat /etc/adduser.conf
# Configuration file for adduser(8).
# NOTE: only *some* variables are saved.
# Last Modified on Thu Jun 25 06:49:19 UTC 2009.
defaultHomePerm=
defaultLgroup=
defaultclass=
defaultgroups=
passwdtype=yes
homeprefix=/home
defaultshell=/bin/csh
udotdir=/usr/share/skel
msgfile=/etc/adduser.msg
disableflag=
uidstart=1011

При необходимости, данный файл, всегда можно отредактировать вручную, полный список возможных опций можно посмотреть командой man adduser.conf. Теперь при создании учетной записи пользователя, программа adduser, запущенная без ключей, то есть в интерактивном режиме, будет предлагать значения указанные в файле конфигурации.

Опции команды adduser и их использование при создании учетной записи в операционной системе FreeBSD

Любые значения определенные в файле /etc/adduser.conf, можно переопределить из командной строки с помощью опций утилиты adduser. Например, назначить другое местоположение домашней директории пользователя, можно следующим образом:
vds-admin /# adduser -d /otherhome
в данном случае домашняя директория будет /otherhome/user_name
Назначить другую оболочку:
vds-admin /# adduser -s /bin/sh
в качестве оболочки будет использован /bin/sh
Так-же можно переопределить файлы, которые копируются в домашнюю директорию пользователя при создании учетной записи. Посмотреть их можно командой
vds-admin /# ls -l /usr/share/skel
total 18
-rw-r--r--  1 root  wheel  751 Mar  9 16:37 dot.cshrc
-rw-r--r--  1 root  wheel  248 Mar  9 16:37 dot.login
-rw-r--r--  1 root  wheel  158 Mar  9 16:37 dot.login_conf
-rw-------  1 root  wheel  373 Mar  9 16:37 dot.mail_aliases
-rw-r--r--  1 root  wheel  331 Mar  9 16:37 dot.mailrc
-rw-r--r--  1 root  wheel  766 Mar  9 16:37 dot.profile
-rw-------  1 root  wheel  276 Mar  9 16:37 dot.rhosts
-rw-r--r--  1 root  wheel  975 Mar  9 16:37 dot.shrc
Если вам нужно что-бы при создании учетной записи, в домашней директории пользователя, создавались еще какие-то файлы или папки ( например папка public_html ), просто добавьте их в данную директорию, при выполнении adduser скопирует их. Кроме того, можно создать свою заготовку для директорий, создаваемых пользователей и назначить ее для использования командой adduser, в командной строке.
vds-admin /# adduser -k /usr/share/newskel
Что-бы совсем проигнорировать настройки из файла /etc/adduser.conf и использовать системные значения по-умолчанию, можно использовать ключ -N:
vds-admin /# adduser -N
Если вам не нужно что-бы при создании учетной записи, создавалась домашняя директория пользователя, используйте следующий вариант:
vds-admin /# adduser -D
По-умолчанию, утилита adduser, использует класс пользователей “default”, что-бы изменить это значение, используйте:
vds-admin /# adduser -L newclass

 

image_pdfimage_print
Filed under Uncategorized