Добавляем пользователя freebsd в группу. Добавление пользователя FreeBSD

26.06.2019

Добавить пользователя или группу можно несколькими способами (sysinstall, adduser, pw …). Рассмотрим самые популярные программы для управления пользователями в ОС freeBSD .

1. Добавление пользователей используя adduser

И так рассмотрим указанную выше программу adduser (за слешами будет // мой комментарий) :

#adduser
Username: test // указываем имя будующего пользователя
Full name: Test User // полное имя
Uid (Leave empty for default): // юзер АйДи (индификационный номер в системе) желательно оставить пстым, система сама назначит
Login group : // вносим пользователя в его группу. оставляем пустым
Login group is test. Invite test into other groups? : wheel // можно добавить пользователя в другую группу если есть необходимость
Login class : // оставим пустым
Shell (sh csh tcsh zsh nologin) : tcsh // выбираем ‘оболочку’ командной строки, лучше вписать tcsh, sh не удобен IMHO
Home directory : // домашняя папка можно разместить где удобно но лучше оставить по дефолту
Use password-based authentication? : // оставляем пустым
Use an empty password? (yes/no) : // пользователь с пустым паролем это не безопасно, выбор по умолчанию no
Use a random password? (yes/no) : // система может генерировать случайный пароль по умолчанию no
Enter password: // если вы отвергли 2 верхних пункта вам предложено ввести пароль самостоятельно
Enter password again: // повторите ввоб пароля
Lock out the account after creation? : // заблокировать учетную запись пользователя после создания
Username: test
Password: ****
Full Name: Test User
Uid: 1001
Class:
Groups: test wheel
Home: /home/test
Shell: /usr/local/bin/tcsh
Locked: no
OK? (yes/no): yes // если вышеуказанное совпадает с тем что вы хотели вводите yes
adduser: INFO: Successfully added (test) to the user database.
Add another user? (yes/no): no // предложение добавить еще пользователя, ненасытный, ему только пользователей подавай
Goodbye! // и вам не хворать
#

2. Удаление пользователей используя rmuser

И так добавить - добавили. Теперь нужно знать как удалить /> Помните «ломать - не строить!» Удалить куда проще чем добавить пользователя и назначить ему нужные настройки и права.
Удаляем следующей программой: rmuser
Что может эта программа:

  1. Удаление записи пользователя из crontab (если она присутствует).
  2. Удаляет задачи at , принадлежащие пользователю.
  3. Уничтожает все процессы, принадлежащие пользователю.
  4. Удаляет пользователя из локального файла паролей.
  5. Удаляет домашний каталог пользователя (если он принадлежит пользователю).
  6. Удаляет принадлежащую пользователю входящую почту из /var/mail .
  7. Удаляет все файлы, принадлежащие пользователю, из каталогов с временными файлами, например /tmp .
  8. Наконец, удаляет имя пользователя из всех групп, которым оно принадлежит, в /etc/group.

# rmuser test // удаляем пользователя test
Matching password entry:
test:*:1001:1001::0:0:Test User:/home/test:/usr/local/bin/tcsh
Is this the entry you wish to remove? y // перестраховка, того ли юзера вы собрались удалять
Remove user’s home directory (/home/test)? y // удалить пользовательскую папку со всем содержимым?
Updating password file, updating databases, done.
Updating group file: trusted (removing group test - personal group is empty) done.
Removing user’s incoming mail file /var/mail/test: done.
Removing files belonging to test from /tmp: done.
Removing files belonging to test from /var/tmp: done.
Removing files belonging to test from /var/tmp/vi.recover: done. // всё! пользователь ушел в мир иной и все папки за ним подчищены .
#

Если желаете что бы программа не грузила Вас всеми этими вопросами - используйте параметр -y (rmuser -y ) фактически мы соглашаемся на все условия.

3. Смена пароля программами passwd и chpass

Как изменить пароль у пользователя freeBSD? - спросите Вы. Элементарно! - ответит вам любой читавший дальше =).
Программки для смены пароля: passwd и chpass .
passwd - это обычный способ изменения собственного пароля пользователя, или пароля другого пользователя суперпользователем.
Предствим на минутку что Вы простой юзер с именем test и хотите себе поменять пароль:

% passwd

Old password: // вводим старый пароль
New password: //вводим новый пароль
Retype new password: // повторяем новый пароль
passwd: updating the database…
passwd: done // готово пароль изменен

Теперь представим что Вы суперпользователь и хотите изменить пароль простому смертному юзеру:

# passwd test // обязательно укажите имя пользователя иначе измените свой пароль
Changing local password for test.
New password: // новый пароль (как видите старый пароль знать не нужно - преимущества суперюзера)
Retype new password: //повторим пароль
passwd: updating the database…
passwd: done // готово, хехе

Рассмотрим теперь более функциональную примочку - chpass .
chpass - может не только менять пароль пользователя, а и остальные его данные.
Только системные администраторы с правами суперпользователя могут изменять информацию и пароли других пользователей с помощью программы chpass . Простые пользователи тоже могут использовать эту программу, но изменять позволено лишь небольшую часть этой информации, и только для своей учетной записи.
И так работа программы chpass для суперюзера:

#Changing user database information for test .
Login: test
Password: *
Uid [#]: 1001
Gid [# or name]: 1001
Change :
Expire :
Class:
Home directory: /home/test
Shell: /usr/local/bin/tcsh
Full Name: Test User
Office Location:
Office Phone:
Home Phone:
Other information:

4. Управление пользователями и группами используя pw

Ну и самое вкусное в конце. pw - это утилита командной строки для создания, удаления, модифицирования и отображения пользователей и групп. Она функционирует как внешний интерфейс к системным файлам пользователей и групп. У pw очень мощный набор параметров командной строки, что делает это программу подходящей для использования в shell скриптах, но новым пользователям она может показаться более сложной, чем другие представленные здесь команды.
Добавим юзера test с помощью утилиты pw :

# pw useradd test -s /bin/tcsh -c «Test user» -m -b /home -e 03-07-2011 -p 02-07-2011

Пояснение использованных ключей:
-s – указывает какой терминал будет использоваться, поле shell
– комментарии к созданному пользователю, поле gecos
-e – время жизни аккуанта, поле expire. Формат поля аналогичен опции ‘-p’
-p – время жизни пароля, поле change. Формат задания даты или времени таков:
dd-mm-yy, где dd – день, mm – месяц, yy – год. Или используется следующий
формат: +0mhdwoy, где m – минуты, h – часы, d – дни, w – недели, o – месяц, y - год
-m – заставляет создать домашний каталог пользователя и скопировать в него стандартные файлы
и каталога /usr/share/skel
-b – базовая директория в которой будет находится домашний каталог пользователя, поле home_dir
-L – задаёт класс для пользователя из файла login.conf, поле class

Что бы создать группу noname и переместить в нее пользователя test используем следующую комбинацию:

# pw groupadd noname -M test

Что бы добавить пользователя test в уже существующую группу wheel используем:

# pw usermod test -g wheel

Расписывать все возможности pw можно долго. Основные возможности перед Вамм.

5. Перечень всех известных программ и утилит о управлению учетными записями и группами пользователей

Ну и в завершении перечислю все возможные приложения и утилиты для мониторинга/изменения/добавления пользователей и групп:

pw(8) – создание, удаление, изменение, отображение пользователей и групп;
adduser(8) – интерактивное добавление нового пользователя;

Пример 13-2. Добавление пользователя в FreeBSD 5.X

# adduser

Username: jru

Full name: J. Random User

Uid (Leave empty for default):

Login group :

Login group is jru. Invite jru into other groups? : wheel

Login class :

Shell (sh csh tcsh zsh nologin) : zsh

Home directory :

Use password-based authentication? :

Use an empty password? (yes/no) :

Use a random password? (yes/no) :

Enter password again:

Lock out the account after creation? :

Full Name: J. Random User

Groups: jru wheel

Shell: /usr/local/bin/zsh

OK? (yes/no): yes

adduser: INFO: Successfully added (jru) to the user database.

Add another user? (yes/no): no

13.6.2. rmuser

Для полного удаления пользователя из системы вы можете использовать rmuser(8). Эта программа выполняет следующие действия:

1. Удаление записи пользователя из crontab(1) (если она присутствует).

2. Удаляет задачи at(1), принадлежащие пользователю.

3. Уничтожает все процессы, принадлежащие пользователю.

4. Удаляет пользователя из локального файла паролей.

5. Удаляет домашний каталог пользователя (если он принадлежит пользователю).

6. Удаляет принадлежащую пользователю входящую почту из /var/mail.

7. Удаляет все файлы, принадлежащие пользователю, из каталогов с временными файлами, например /tmp.

8. Наконец, удаляет имя пользователя из всех групп, которым оно принадлежит, в /etc/group.

Замечание: Если после этого удаления группа остается пустой и имя группы совпадает с именем пользователя, она удаляется; Это необходимо для удаления пользовательских уникальных групп, создаваемых adduser(8).

rmuser(8) не может использоваться для удаления учетной записи суперпользователя, поскольку это почти всегда означает разрушение системы.

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

Пример 13-3. Интерактивное удаление учетной записи с помощью rmuser

# rmuser jru

Matching password entry:

jru:*:1001:1001::0:0:J. Random User:/home/jru:/usr/local/bin/zsh

Is this the entry you wish to remove? y

Remove user"s home directory (/home/jru)? y

Updating password file, updating databases, done.

Updating group file: trusted (removing group jru -- personal group is empty) done.

Removing user"s incoming mail file /var/mail/jru: done.

Removing files belonging to jru from /tmp: done.

Removing files belonging to jru from /var/tmp: done.

Removing files belonging to jru from /var/tmp/vi.recover: done.

13.6.3. chpass

chpass(1) изменяет информацию в базе данных пользователей: пароли, оболочки, персональную информацию.

Только системные администраторы с правами суперпользователя могут изменять информацию и пароли других пользователей с помощью chpass(1).

При запуске без параметров (кроме опционального имени пользователя), chpass(1) вызывает редактор, содержащий информацию о пользователе. Когда пользователь выходит из редактора, база данных пользователей обновляется этой информацией.

Замечание: В FreeBSD 5.X, после выхода из редактора будет запрошен пароль (если вы не суперпользователь.

Пример 13-4. Интерактивная работа с chpass суперпользователя

Gid [# or name]: 1001

Change :

Expire :

Home directory: /home/jru

Shell: /usr/local/bin/zsh

Full Name: J. Random User

Office Location:

Other information:

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

Пример 13-5. Интерактивная работа с chpass обычного пользователя

#Changing user database information for jru.

Shell: /usr/local/bin/zsh

Full Name: J. Random User

Office Location:

Other information:

Замечание: chfn(1) и chsh(1) это всего лишь ссылки на chpass(1), как и ypchpass(1), ypchfn(1) и ypchsh(1). NIS поддерживается автоматически, так что указание yp перед командой не обязательно. Если это непонятно, не беспокойтесь, NIS будет рассмотрен в Гл. 23.

13.6.4. passwd

passwd(1) это обычный способ изменения собственного пароля пользователя, или пароля другого пользователя суперпользователем.

Замечание: Для предотвращения случайного или неавторизованного изменения, перед установкой нового пароля необходимо ввести старый.

Пример 13-6. Изменение пароля

% passwd

Retype new password:

Пример 13-7. Изменение пароля другого пользователя суперпользователем

# passwd jru

Changing local password for jru.

Retype new password:

passwd: updating the database...

Замечание: Как и с chpass(1), yppasswd(1) это всего лишь ссылка на passwd(1), так что NIS работает с обеими командами.

13.6.5. pw

pw(8) это утилита командной строки для создания, удаления, модифицирования и отображения пользователей и групп. Она функционирует как внешний интерфейс к системным файлам пользователей и групп. У pw(8) очень мощный набор параметров командной строки, что делает это программу подходящей для использования в shell скриптах, но новым пользователям она может показаться более сложной, чем другие представленные здесь команды.

13.7. Ограничение пользователей

Если у вас есть пользователи, может появиться мысль о возможности ограничения нагрузки на систему. FreeBSD предоставляет администратору несколько способов ограничения объема занимаемых пользователями системных ресурсов. Существует два вида ограничений: дисковые квоты и другие ограничения ресурсов.

Дисковые квоты ограничивают объем пространства, занимаемого пользователями, это способ быстрой проверки объема без вычисления его каждый раз. Квоты обсуждаются в Разд. 16.14.

Другие ограничения ресурсов включают способы ограничения использования CPU, памяти и других ресурсов, которые могут потребляться пользователем. Ограничения накладываются с помощью классов учетных записей и обсуждаются в этом разделе.

Классы учетных записей определяются в /etc/login.conf. Описание полной семантики выходит за пределы обсуждаемого здесь материала, она детально описана в странице справочника login.conf(5). Достаточно сказать, что каждому пользователю присвоен класс (default по умолчанию), и каждому классу присвоен набор характеристик. Характеристика определяется в виде пары имя =значение , где имя это определенный идентификатор, а значение это произвольная строка, обрабатываемая в зависимости от имени. Настройка классов и характеристик довольно проста и также описана в login.conf(5).

Замечание: Система не читает настройки в /etc/login.conf непосредственно, она обращается к файлу базы данных /etc/login.conf.db. Для создания /etc/login.conf.db из /etc/login.conf, выполните следующую команду:

# cap_mkdb /etc/login.conf

Ограничения на ресурсы отличаются от обычных характеристик: во-первых, для каждого ограничения существует “мягкое” (текущее) и “жесткое” ограничение. Мягкое ограничение может настраиваться пользователем или приложением, но не может превышать жесткое ограничение. Последнее может быть уменьшено пользователем, но никогда не увеличено. Во-вторых, большинство ограничений ресурсов применяются к процессам определенного пользователя, а не к пользователю вообще. Обратите внимание, что эти различия реализуются специфической обработкой лимитов, а не реализацией структуры характеристик учетных записей (т.е. это не настоящий специальный случай характеристик).

Ниже приведен список наиболее часто используемых ограничений на ресурсы (остальные, вместе с другими характеристиками можно найти в login.conf(5)).

Ограничение на размер файла core, генерируемого программой, по очевидным причинам подчиняющееся другим ограничениям на используемое дисковое пространство (например, filesize, или дисковые квоты). Тем не менее, оно часто используется как менее строгий метод контролирования потребления дискового пространства: поскольку пользователь не создает файлы core самостоятельно, и зачастую не удаляет их, установка этого параметра может предохранить его от выхода за пределы дисковых квот, если большая программа (например, emacs ) создаст core файл.

Это максимальное количество времени CPU, потребляемого пользователем. Превысившие это время процессы будут уничтожены ядром.

Замечание: Это ограничение потребляемого времени CPU, а не процентов использования CPU, которые отображаются в некоторых полях top(1) и ps(1). Ограничения на них на время написания этого материала невозможны и такие ограничения практически бесполезны: компилятор - вполне законное приложение - иногда может легко использовать почти 100% CPU.

Это максимальный размер файла, который может обрабатываться пользователем. В отличие от дисковых квот, это ограничение применяется к отдельным файлам, а не ко всему набору принадлежащих пользователю файлов.

Это максимальное число процессов, которые могут быть запущены пользователем. В это число включаются и консольные и фоновые процессы. По очевидным причинам, они не могут быть больше, чем системное ограничение, указываемое через переменную sysctl(8) kern.maxproc. Имейте ввиду, что установка слишком жестких ограничений может стать помехой работе пользователя: зачастую полезно входить в систему с нескольких консолей или использовать каналы. Некоторые задачи, такие как компиляция большой программы, также порождают множество процессов (например, make(1), cc(1) и другие препроцессоры).

Это максимальный объем памяти, блокировка которого может быть запрошена процессом (см. например mlock(2)). Некоторые критически важные для системы программы, такие как amd(8), блокируют память так, что при выгрузке они не создают системе дополнительных проблем.

Это максимальный объем памяти, которая может быть занята процессами. Он включает основную и основную память и использование подкачки. Это ограничение не снимает все вопросы, связанные с использованием памяти, но для начала это подходящее ограничение.

Это максимальное количество файлов, которые могут быть открыты процессами. В FreeBSD, файлы также используются для представления сокетов и каналов IPC; не устанавливайте слишком маленькое значение. Ограничение этого параметра, устанавливаемое для всей системы, определяется переменной sysctl(8) kern.maxfiles.

Это ограничение потребляемого пользователем объема сетевой памяти, т.е. mbufs. Оно было введено как ответ на старые DoS атаки, при которых создавалось множество сокетов, но обычно может быть использовано и для ограничения сетевых соединений.

Это максимальный размер, до которого может вырасти стек процесса. Сам по себе этот параметр не может ограничить размер используемой программой памяти, следовательно, его необходимо использовать вместе с другими ограничениями.

Существуют несколько других аспектов, которые необходимо учитывать при установке ограничений ресурсов. Ниже приведены некоторые общие подсказки, советы и различные комментарии.

Процессам, загружаемым при старте системы скриптами /etc/rc присваивается класс daemon.

Хотя /etc/login.conf, поставляемый с системой, это хороший источник подходящих значений для большинства ограничений, только вы, администратор, можете знать подходящие значения для вашей системы. Установка слишком слабых ограничений может повлечь злоупотребления системой, а установка слишком сильных ограничений может стать помехой производительности.

Пользователи X Window System (X11) возможно должны получить больше ресурсов, чем другие пользователи. X11 сама по себе потребляет много ресурсов, а также провоцирует пользователей на одновременный запуск большего количества программ.

Помните, что многие ограничения применяются к отдельным процессам, а не к пользователю вообще. Например, установка openfiles в 50 означает, что каждый процесс, запущенный пользователем, может открывать до 50 файлов. Таким образом, общее количество файлов, которые могут быть открыты пользователем, вычисляется как openfiles, помноженное на maxproc. Это также применимо к потребляемой памяти.

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

13.8. Персонализация пользователей

Локализация это окружение, настраиваемое системным администратором или пользователем для работы с различными языками, наборами символов, стандартами даты и времени, и так далее. Это обсуждается в главе локализация.

13.9. Группы

Группа это просто список пользователей. Группа идентифицируется по имени и GID (Group ID, идентификатор группы). В FreeBSD (и большинстве других UNIX-подобных системах) ядро для определения прав процесса использует два фактора: его ID пользователя и список групп, которым он принадлежит. Когда вы слышите что-то о “group ID” пользователя или процесса, это обычно означает только первую группу из списка.

Имена групп связываются с ID групп в файле /etc/group. Это текстовый файл с четырьмя разделенными двоеточием полями. Первое поле это имя группы, второе это зашифрованный пароль, третье это ID группы, а четвертое это разделенный запятыми список членов группы. Этот файл может быть безопасно отредактирован вручную (предполагается, конечно, что вы не сделаете синтаксических ошибок!). За более полным описанием синтаксиса обратитесь к странице справочника group(5).

Если вы не хотите редактировать /etc/group вручную, используйте команду pw(8) для добавления и редактирования групп. Например, для добавления группы, называемой teamtwo, и проверки ее существования вы можете использовать:

Пример 13-8. Добавление группы с использованием pw(8)

# pw groupadd teamtwo

# pw groupshow teamtwo

Число 1100 это ID группы teamtwo. На данный момент в, teamtwo нет членов, и поэтому она практически бесполезна. Давайте изменим эту ситуацию, добавив jru в группу teamtwo.

Пример 13-9. Добавление пользователя в группу с использованием pw(8)

# pw groupmod teamtwo -M jru

# pw groupshow teamtwo

teamtwo:*:1100:jru

Аргумент к параметру -M это разделенный запятыми список пользователей, являющихся членами группы. Из предыдущих разделов мы знаем, что файл паролей также указывает группу для каждого пользователя. Пользователь автоматически добавляется системой к списку групп; пользователь не будет показан как член группы при использовании pw(8) groupshow, но эта информация будет показана при использовании id(1) или похожего инструмента. Другими словами, с этим параметром программа pw(8) работает только с файлом /etc/group; она никогда не будет пытаться получить дополнительную информацию из файла /etc/passwd.

Пример 13-10. Использование id(1) для определения принадлежности к группам

% id jru

uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo)

Как вы можете видеть, jru является членом групп jru и teamtwo.

За дальнейшей информацией о pw(8), обратитесь к ее странице справочника, а за дополнительной информацией о формате файла /etc/group к странице справочника group(5).

Примечания

1. Конечно, пока не используется множество терминалов, но мы оставим эту тему для Гл. 20.

2. Возможно использование UID/GID вплоть до 4294967295, но эти ID могут вызвать серьезные проблемы с программами, делающими предположения о значениях ID.

3. С параметром -s adduser(8) не будет выводить информацию. Позже для изменения настроек по умолчанию мы используем параметр -v.

Глава 14. Безопасность

Большая часть этой главы была взята из страницы справочника security(7) которую написал Matthew Dillon. Перевод на русский язык: Денис Пеплин.

14.1. Краткое описание

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

FreeBSD предоставляет массу утилит и механизмов для обеспечения целостности и безопасности системы и сети.

После прочтения этой главы вы узнаете:

Основные концепции безопасности системы, специфику FreeBSD.

О различных механизмах шифрования в FreeBSD, таких как DES и MD5.

Как настроить аутентификацию с использованием одноразовых паролей.

Как настроить KerberosIV в релизах FreeBSD до 5.0.

Как настроить Kerberos5 в релизах FreeBSD после 5.0.

Как создать межсетевые экраны с помощью IPFW.

Как настроить IPsec и создать VPN между компьютерами на FreeBSD/Windows.

Как настроить и использовать OpenSSH , реализацию SSH в FreeBSD.

Как настроить и загрузить модули расширения контроля доступа, использующие концепцию TrustedBSD MAC.

Что такое ACL и как их использовать.

Как работать с сообщениями безопасности FreeBSD.

Перед чтением этой главы вам потребуется:

Понимание основных концепций FreeBSD и интернет.

14.2. Введение

Безопасность это первая и основная функция системного администратора. Хотя все многопользовательские системы BSD UNIX уже снабжены некоторой защитой, работа по созданию и поддержке дополнительных механизмов безопасности, обеспечивающих защищенную работу пользователей, это одна из самых серьезных задач системного администратора. Компьютеры безопасны настолько, насколько вы сделаете их безопасными и требования безопасности всегда находятся в противоречии с удобством работы пользователей. Системы UNIX способны одновременно работать с огромным количеством процессов и многие из этих процессов серверные - это означает, что с ними могут взаимодействовать внешние программы. Сегодня десктопы заменили мини-компьютеры и мэйнфрэймы, и поскольку компьютеры в наши дни подключены к сети интернет, безопасность важна как никогда.

Наилучшая реализация системы безопасности представима в виде “послойной” системы. Вообще говоря все, что нужно сделать, это создать столько слоев безопасности, сколько необходимо и затем внимательно следить за вторжениями в систему. Не переусердствуйте в настройке системы безопасности, иначе она сделает невозможной обнаружение вторжений, являющееся одним из наиболее важных аспектов механизма безопасности. Например, нет большого смысла в установке флага schg (chflags(1)) на каждый исполняемый файл системы, поскольку хотя таким способом можно временно защитить исполняемые файлы, это помешает обнаружению факта взлома системы.

Безопасность системы также относится к различным формам атак, имеющих своей целью вызвать крах системы, или сделать систему недоступной другим способом, но не пытающихся получить доступ к учетной записи root (“break root”). Угрозы безопасности могут быть поделены на несколько категорий:

1. Отказ в обслуживании (Denial of service, DoS).

2. Взлом пользовательских учетных записей.

3. Взлом учетной записи root через доступные сервисы.

4. Взлом учетной записи root через учетные записи пользователей.

5. Создание backdoor.

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

Взлом учетной записи пользователя обычно встречается чаще, чем DoS атаки. Многие системные администраторы все еще используют стандартные сервисы telnetd , rlogind и ftpd на своих серверах. Эти сервисы по умолчанию не работают с зашифрованными соединениям. В результате при среднем количестве пользователей пароль одного или нескольких пользователей, входящих в систему через внешнее соединение (это обычный и наиболее удобный способ входа в систему), будет перехвачен. Внимательный системный администратор должен анализировать логи удаленного доступа на предмет подозрительных адресов пользователей даже в случае успешного входа.

Кто-то может предположить, что атакующий при наличии доступа к учетной записи пользователя может взломать учетную запись root. Однако, реальность такова, что в хорошо защищенной и поддерживаемой системе доступ к учетной записи пользователя не обязательно даст атакующему доступ к root. Разница между доступом к обычной учетной записи и к root важна, поскольку без доступа к root атакующий обычно не способен скрыть свои действия, и в худшем случае сможет лишь испортить файлы пользователя или вызвать крах системы. Взлом пользовательских учетных записей встречается очень часто, поскольку пользователи заботятся о безопасности так, как системные администраторы.

Системные администраторы должны помнить, что существует множество потенциальных способов взлома учетной записи root. Атакующий может узнать пароль root, найти ошибку в сервисе, работающем с привилегиями и взломать учетную запись root через сетевое соединение с этим сервисом, или узнать об ошибке в suid-root программе, позволяющей атакующему взлом root с помощью взломанной учетной записи пользователя. Если атакующий нашел способ взлома root, ему может не понадобиться установка backdoor. Многие из обнаруженных и закрытых на сегодняшний день брешей в системе, позволяющие взлом root, требуют от атакующего серьезной работы по заметанию следов, поэтому большинство атакующих устанавливают backdoor. Backdoor предоставляет атакующему простой способ восстановления доступа к системе с привилегиями root, но также дает системному администратору удобный способ обнаружения вторжения. Устранение возможности установки backdoor возможно повредит безопасности системы, поскольку это не устранит брешь, позволившую проникнуть в систему.

FreeBSD Проект Документации FreeBSD Руководство FreeBSD Проект Документации FreeBSD Опубликовано Февраль 1999 Copyright © ... с дистрибьюцией. Важно: ЭТА ДОКУМЕНТАЦИЯ ПОСТАВЛЯЕТСЯ ПРОЕКТОМ ДОКУМЕНТАЦИИ FREEBSD "КАК ЕСТЬ" И ЛЮБЫЕ ЯВНЫЕ...

  • Руководство FreeBSD по созданию портов

    Руководство

    Такие обозначения появляются в этой книге, и Проекту FreeBSD известно о торговой марке, к обозначению добавляется... , поставляемых с дистрибьюцией. Важно: ЭТА ДОКУМЕНТАЦИЯ ПОСТАВЛЯЕТСЯ ПРОЕКТОМ ДОКУМЕНТАЦИИ FREEBSD "КАК ЕСТЬ" И ЛЮБЫЕ ЯВНЫЕ ИЛИ...

  • Проект плану-графіка підвищення кваліфікації керівників і фахівців товариства у філії “центр післядипломної освіти” ват “укртелеком” у 2010 році

    Документ

    ... ій управління проектом ▪ Типи проект ів та складання плану проекту в MS Projeсt ... нтерфейсу користувача (на прикладі FreeBSD та Linux); адміністрування... документи ▪ Складні випадки правопису в документац ії. Синтаксичні структури діловодства. Пунктуація...

  • Модель полномочий и пользователей, используемая в операционной системе FreeBSD и большинстве систем семейства UNIX достаточно простая и одноуровневая. Не то, что Windows со своими вложенными одна в другую группами:-).

    В FreeBSD существует только два типа пользователей: обычные пользователи и суперпользователь root. Ну и соответственно плоское пространство групп.

    На первый взгляд может показаться, что эта схема менее практична, чем схема Windows. Но всё-таки у любой из схем есть свои плюсы и минусы. Сложная иерархическая система групп, пользователей и полномочий Windows позволяет более гибко настроить политику доступа, но также увеличивает вероятность того, что что-то может пойти не так. Да и велика вероятность допустить ошибку, степень которой может варьироваться в широких пределах. Ладно б там, начальник не получил доступ к своей папке. А если все получили доступ к закрытым документам?

    Каждый обычный пользователь системы FreeBSD обладает ограниченными полномочиями и имеет закреплённое за собой место хранения файлов (домашняя директория). Когда мы подключаемся к компьютеру удалённо, то являемся там, как правило, рядовым пользователем. Мы сразу попадаем в свой домашний каталог, в котором можем изменять файлы. И то только потому, что являемся их владельцем.

    Для того, чтобы олицетворить себя суперпользователем, используем команду su. Потребуется ввести пароль суперпользователя, который является “ключом от всех дверей” нашей системы. После получения доступа на уровне суперпользователя мы получим такие возможности для создания или удаления файлов на компьютере, какие не сможем получить ни на одной системе под управлением Windows.

    Важно помнить, что работая в системе под root нужно соблюдать повышенные меры безопасности. Система не будет сомневаться в компетентности root-а, если он сказал – удалить важные каталоги, значит так нужно.

    Для того, чтобы выполнить команду su, нужно быть членом группы, называемой “wheel”. В эту группу входят те пользователи, которым полномочно становиться суперпользователями.

    “Кто все эти люди?”

    Есть ещё одна особенность. Наряду с регистрирующимися пользователями (люди, которые подключаются к системе), существуют и автоматические пользователи (bin, daemon, nobody, operator, www и прочие). Эти учётные записи существуют, чтобы владеть некоторыми системными процессами. Важно понимать тут, что каждый процесс, как и файл, должен принадлежать некоторому пользователю и все процессы ограничены полномочиями тех пользователей, которым они принадлежат.

    Пользователи никогда не обращаются к своим файлам напрямую. Все, что делает пользователь со своими файлами с помощью команд – на самом деле выполняет процесс, от имени пользователя. Процессы оперируют файлами или другими процессами. Процессы, принадлежащие пользователю ivan могут работать только с файлами и процессами, которые принадлежат пользователю ivan. В доступе может быть отказано, если один из этих процессов попытается изменить файл или процесс пользователя andrey.

    Для чего же нужны псевдопользователи? Представим, что пользователь ivan стал вдруг суперпользователем. Все процессы, выполняемые от имени ivan станут обладать абсолютной властью по отношению к процессам другого пользователя. А что, если один из таких процессов читает особый конфигурационный файл и изменяет параметры системы? А что, если по причине какой-либо ошибки любой может получить доступ к конфигурационному файлу или иным способом передать потенциально небезопасные параметры в программу, выполняющуюся с абсолютными правами? Система может быть уничтожена. Без вопросов и лишних предупреждений. Поэтому каждый сервис должен быть запущен от имени определённого псевдопользователя и быть “запертым” в пространстве своих “владений”, чтобы ненароком не повредить остальную часть системы.

    Для чего нужны группы?

    Каждый пользователь принадлежит определённой первичной группе, которая, как правило, имеет то же имя, что и пользователь. Фактически пользователь является единственным членом своей первичной группы. Но ничто не мешает нам создать группу, например ftpusers и добавить пользователей в неё. Кстати, управлять принадлежностью пользователей может только суперпользователь root.

    В общем случае группы нужды для того, чтобы предоставить определённым пользователям возможность совместной работы с некоторыми файлами или процессами. Ведь нежелательно, чтобы разные люди использовали одну учётную запись для доступа к файлам, нежелательно, чтобы один пароль был известен кому-то ещё. И группы могут предоставить разным пользователям равные привилегии.


    | |

    Как и в любой другой Unix-подобной операционной системе, в FreeBSD учетные записи пользователей могут обеспечивать интерактивный доступ к системе. При разумном подходе к управлению пользователями учетные записи создают дополнительный слой безопасности системы, предоставляя возможность ограничивать пользователей только файлами и каталогами, необходимыми им для работы.

    Данное руководство посвящено управлению пользователями в системе FreeBSD; оно охватывает следующие темы:

    • Как добавить пользователя;
    • Как передать права суперпользователя;
    • Удаление пользователя;
    • Блокировка и разблокировка учетной записи.

    Требования

    Для выполнения руководства нужно иметь root-доступ к серверу FreeBSD или расширенные привилегии sudo.

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

    Для создания пользователя проще всего использовать утилиту adduser, которая основана на команде pw. Команда adduser добавляет пользователя в систему, выполняя все необходимые действия в файлах passwd, master.passwd и group, и создает новый домашний каталог. Команду можно запустить в интерактивном режиме (т.е., с запросами информации о новом пользователе) или в нон-интерактивном режиме (что удобнее при создании группы пользователей). В данном руководстве рассматривается использование команды в интерактивном режиме.

    Чтобы использовать adduser в интерактивном режиме, что позволяет создавать одного пользователя за один раз, просто запустите команду без аргументов:

    На данном этапе нужно будет предоставить информацию о новом пользователе, ответив на серию вопросов. Эти вопросы выглядят так (условные ответы на них выделены красным):

    Username: finn
    Full name: Finn Human
    Uid (Leave empty for default):
    Login group :
    Login group is finn. Invite finn into other groups? : wheel
    Login class :
    Shell (sh csh tcsh nologin) :
    Home directory :
    Home directory permissions (Leave empty for default):
    Use password-based authentication? :
    Use an empty password? (yes/no) :
    Use a random password? (yes/no) :
    Enter password: password
    Enter password again: password
    Lock out the account after creation? :

    Многие поля можно оставить незаполненными, это установит значения по умолчанию (как, например, в вышеприведенном коде); однако есть и пара важных строк:

    • Username: введите имя нового пользователя.
    • Login group is . Invite into other groups?: это поле позволяет добавить пользователя в другие группы, указав названия групп через пробел. Обычно это используется для предоставления новому пользователю привилегий sudo путем добавления его в группу wheel. В FreeBSD пользователи группы wheel могут запускать команды с привилегиями суперпользователя. Чтобы оставить пользователю его стандартные права, не заполняйте это поле.

    Все остальные поля довольно очевидны; везде, кроме поля для паролей, можно оставить значения по умолчанию. Более подробное описание всех полей можно получить при помощи команды man adduser.

    После заполнения полей на экране появится основная информация о новом пользователе.

    Username: finn
    Password: *****
    Full Name: Finn Human
    Uid: 1002
    Class:
    Groups: finn wheel
    Home: /home/finn
    Home Mode:
    Shell: /bin/sh
    Locked: no
    OK? (yes/no): yes

    Просмотрите информацию о пользователе и, если все верно, ответьте yes в поле «OK?», после чего пользователь будет добавлен в систему, а на экране появится подтверждение:

    adduser: INFO: Successfully added (finn) to the user database.

    Затем команда спросит, нужно ли создать еще одного пользователя:

    Add another user? (yes/no): no
    Goodbye!

    Если больше не нужно создавать пользователей, выберите no. В противном случае введите yes и повторите весь вышеописанный процесс

    Как передать привилегии Sudo

    В FreeBSD, как и в других Unix-подобных ОС, пользователи, имеющие доступ к команде sudo, могут запускать команды с привилегиями суперпользователя. То есть, команда sudo расширяет привилегии обычного пользователя до привилегий пользователя root.

    В FreeBSD такими привилегиями обладают все пользователи, входящие в группу wheel; причиной такого поведения является следующая строка в файле sudoers (/usr/local/etc/sudoers):

    %wheel ALL=(ALL) NOPASSWD: ALL

    То есть, чтобы пользователь получил расширенные привилегии, нужно добавить его в группу wheel; для этого используйте команду pw groupmod (не забудьте указать имя своего пользователя):

    sudo pw groupmod wheel -m finn

    Эта команда добавит указанного пользователя в группу wheel в файле /etc/group, и таким образом пользователь сможет выполнять команды как суперпользователь.

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

    Для удаления пользователя из системы FreeBSD используется команда rmuser. Ее можно запустить без аргументов или же сразу задать имя пользователя, которого нужно удалить:

    Если имя пользователя, которого нужно удалить, не было задано в качестве аргумента, команда попросит указать имя, затем подтвердить запуск команды и удаление домашнего каталога пользователя.

    Please enter one or more usernames: finn
    Matching password entry:
    finn:*:1002:1002::0:0:Finn Human:/home/finn:/bin/sh
    Is this the entry you wish to remove? y
    Remove user"s home directory (/home/finn)? y
    Removing user (finn): mailspool home passwd.

    Блокировка пользователей

    Чтобы отключить пользователя в системе, но не удалять его учетную запись и домашний каталог, можно просто заблокировать его. Для этого используется команда pw lock + имя пользователя в качестве аргумента:

    sudo pw lock username

    Данная команда добавляет префикс *LOCKED* перед записью пользователя в файле /etc/master.passwd. Такие пользователи не могут войти в систему до тех пор, пока не будут разблокированы.

    Разблокировка пользователей

    Чтобы разблокировать пользователя, используйте команду pw unlock:

    sudo pw unlock username

    Эта команда удаляет префикс *LOCKED* перед записью пользователя в файле /etc/master.passwd.

    Заключение

    Как видите, управление пользователями – довольно простая рутинная задача любого администратора сервера FreeBSD.

    Tags: ,

    Добавить пользователя или группу можно несколькими способами (sysinstall, adduser, pw …). Рассмотрим самые популярные программы для управления пользователями в ОС freeBSD.

    1. Добавление пользователей используя adduser

    И так рассмотрим указанную выше программу adduser (за слешами будет // мой комментарий):

    #adduser
    Username: test // указываем имя будующего пользователя
    Full name: Test User // полное имя
    Uid (Leave empty for default): // юзер АйДи (индификационный номер в системе) желательно оставить пстым, система сама назначит
    Login group : // вносим пользователя в его группу. оставляем пустым
    Login group is test. Invite test into other groups? : wheel // можно добавить пользователя в другую группу если есть необходимость
    Login class : // оставим пустым
    Shell (sh csh tcsh zsh nologin) : tcsh // выбираем ‘оболочку’ командной строки, лучше вписать tcsh, sh не удобен IMHO
    Home directory : // домашняя папка можно разместить где удобно но лучше оставить по дефолту
    Use password-based authentication? : // оставляем пустым
    Use an empty password? (yes/no) : // пользователь с пустым паролем это не безопасно, выбор по умолчанию no
    Use a random password? (yes/no) : // система может генерировать случайный пароль по умолчанию no
    Enter password: // если вы отвергли 2 верхних пункта вам предложено ввести пароль самостоятельно
    Enter password again: // повторите ввоб пароля
    Lock out the account after creation? : // заблокировать учетную запись пользователя после создания
    Username: test
    Password: ****
    Full Name: Test User
    Uid: 1001
    Class:
    Groups: test wheel
    Home: /home/test
    Shell: /usr/local/bin/tcsh
    Locked: no
    OK? (yes/no): yes // если вышеуказанное совпадает с тем что вы хотели вводите yes
    adduser: INFO: Successfully added (test) to the user database.
    Add another user? (yes/no): no // предложение добавить еще пользователя, ненасытный, ему только пользователей подавай
    Goodbye! // и вам не хворать
    #

    2. Удаление пользователей используя rmuser

    И так добавить - добавили. Теперь нужно знать как удалить /> Помните «ломать - не строить!» Удалить куда проще чем добавить пользователя и назначить ему нужные настройки и права.
    Удаляем следующей программой: rmuser
    Что может эта программа:

    1. Удаление записи пользователя из crontab (если она присутствует).
    2. Удаляет задачи at, принадлежащие пользователю.
    3. Уничтожает все процессы, принадлежащие пользователю.
    4. Удаляет пользователя из локального файла паролей.
    5. Удаляет домашний каталог пользователя (если он принадлежит пользователю).
    6. Удаляет принадлежащую пользователю входящую почту из /var/mail.
    7. Удаляет все файлы, принадлежащие пользователю, из каталогов с временными файлами, например /tmp.
    8. Наконец, удаляет имя пользователя из всех групп, которым оно принадлежит, в /etc/group.

    # rmuser test // удаляем пользователя test
    Matching password entry:
    test:*:1001:1001::0:0:Test User:/home/test:/usr/local/bin/tcsh
    Is this the entry you wish to remove? y // перестраховка, того ли юзера вы собрались удалять
    Remove user’s home directory (/home/test)? y // удалить пользовательскую папку со всем содержимым?
    Updating password file, updating databases, done.
    Updating group file: trusted (removing group test - personal group is empty) done.
    Removing user’s incoming mail file /var/mail/test: done.
    Removing files belonging to test from /tmp: done.
    Removing files belonging to test from /var/tmp: done.
    Removing files belonging to test from /var/tmp/vi.recover: done. // всё! пользователь ушел в мир иной и все папки за ним подчищены.
    #

    Если желаете что бы программа не грузила Вас всеми этими вопросами - используйте параметр -y (rmuser -y) фактически мы соглашаемся на все условия.

    3. Смена пароля программами passwd и chpass

    Как изменить пароль у пользователя freeBSD? - спросите Вы. Элементарно! - ответит вам любой читавший дальше =).
    Программки для смены пароля: passwd и chpass.
    passwd - это обычный способ изменения собственного пароля пользователя, или пароля другого пользователя суперпользователем.
    Предствим на минутку что Вы простой юзер с именем test и хотите себе поменять пароль:

    % passwd

    Old password: // вводим старый пароль
    New password: //вводим новый пароль
    Retype new password: // повторяем новый пароль
    passwd: updating the database…
    passwd: done // готово пароль изменен

    Теперь представим что Вы суперпользователь и хотите изменить пароль простому смертному юзеру:

    # passwd test // обязательно укажите имя пользователя иначе измените свой пароль
    Changing local password for test.
    New password: // новый пароль (как видите старый пароль знать не нужно - преимущества суперюзера)
    Retype new password: //повторим пароль
    passwd: updating the database…
    passwd: done // готово, хехе

    Рассмотрим теперь более функциональную примочку - chpass.
    chpass - может не только менять пароль пользователя, а и остальные его данные.
    Только системные администраторы с правами суперпользователя могут изменять информацию и пароли других пользователей с помощью программы chpass. Простые пользователи тоже могут использовать эту программу, но изменять позволено лишь небольшую часть этой информации, и только для своей учетной записи.
    И так работа программы chpass для суперюзера:

    #Changing user database information for test .
    Login: test
    Password: *
    Uid [#]: 1001
    Gid [# or name]: 1001
    Change :
    Expire :
    Class:
    Home directory: /home/test
    Shell: /usr/local/bin/tcsh
    Full Name: Test User
    Office Location:
    Office Phone:
    Home Phone:
    Other information:

    4. Управление пользователями и группами используя pw

    Ну и самое вкусное в конце. pw - это утилита командной строки для создания, удаления, модифицирования и отображения пользователей и групп. Она функционирует как внешний интерфейс к системным файлам пользователей и групп. У pw очень мощный набор параметров командной строки, что делает это программу подходящей для использования в shell скриптах, но новым пользователям она может показаться более сложной, чем другие представленные здесь команды.
    Добавим юзера test с помощью утилиты pw:

    # pw useradd test -s /bin/tcsh -c «Test user» -m -b /home -e 03-07-2011 -p 02-07-2011

    Пояснение использованных ключей:
    -s – указывает какой терминал будет использоваться, поле shell
    – комментарии к созданному пользователю, поле gecos
    -e – время жизни аккуанта, поле expire. Формат поля аналогичен опции ‘-p’
    -p – время жизни пароля, поле change. Формат задания даты или времени таков:
    dd-mm-yy, где dd – день, mm – месяц, yy – год. Или используется следующий
    формат: +0mhdwoy, где m – минуты, h – часы, d – дни, w – недели, o – месяц, y - год
    -m – заставляет создать домашний каталог пользователя и скопировать в него стандартные файлы
    и каталога /usr/share/skel
    -b – базовая директория в которой будет находится домашний каталог пользователя, поле home_dir
    -L – задаёт класс для пользователя из файла login.conf, поле class

    Что бы создать группу noname и переместить в нее пользователя test используем следующую комбинацию:

    # pw groupadd noname -M test

    Что бы добавить пользователя test в уже существующую группу wheel используем:

    # pw usermod test -g wheel

    Расписывать все возможности pw можно долго. Основные возможности перед Вамм.

    5. Перечень всех известных программ и утилит о управлению учетными записями и группами пользователей

    Ну и в завершении перечислю все возможные приложения и утилиты для мониторинга/изменения/добавления пользователей и групп:

    pw(8) – создание, удаление, изменение, отображение пользователей и групп;
    adduser(8) – интерактивное добавление нового пользователя;
    rmuser(8) – удаление пользователя из системы;