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

Получил паспорт, после вклейки фотки, выгляжу лучше чем в 16:) Но сегодня не обо мне, а о пользователях во FreeBSD
0. Управление пользователями FreeBSD
1. Перенос пользователей с другого сервака
2. Работа с пакетами для конкретного пользователя
3. Меняем стандартный shell на самописный
4. Делаем удаленную консольку русской с UTF8

adduser Добавить пользователя
-С конфигурирование профиля по умолчанию /etc/adduser.conf
Чтобы не отвечать каждый раз на одинаковые вопросы, делаем профиль и по нему создаем пользователей:)

Полезные параметры настройки для файла adduser.conf
defaultGroup Имя группы по умолчанию, к которой будут добавляться новые пользователи (если значение не определено, для каждого пользователя будет создаваться его собственная группа)
defaultclass Класс доступа по умолчанию
passwdtype Может иметь значения nо (учетная запись останется заблокированной, пока root не назначит пароль), none (пароль не установлен), yes (пароль устанавливается при создании учетной записи) или random (будет назначен случайный пароль)
homeprefix Каталог, где будут размещаться домашние каталоги пользователей (например, /home)
defaultshell Командная оболочка, назначаемая по умолчанию (здесь можно указать любую командную оболочку из /etc/shells)
udotdir Каталог, где находятся заготовки файлов пользователя, имена которых начинаются с символа «точка»
msgfile Файл, содержащий текст электронного письма, отправляемого каждому пользователю сразу после создания учетной записи.

Файлы /etc/master.passwd, /etc/passwd, /etc/spwd.db и /etc/pwd.db хранят информацию об учетных записях пользователей.
Файл /etc/master.passwd является источником информации для аутентификации и содержит пароли пользователей в зашифрованном виде. Доступно только rooty. приоритетный файл.
В файле /etc/passwd перечислены все учетные записи без привилегированной информации (например, без зашифрованных паролей).
Файл /etc/spwd.db создается непосредственно из /etc/master.passwd и содержит секретную информацию о пользователях, этот файл доступен для чтения только пользователю root. Файл /etc/pwd.db доступен для чтения всем пользователям, но содержит ограниченный набор сведений, содержащихся в файле /etc/passwd.

pwd_mkdb автоматически запускается для синхронизации между файлами, далее будет пример с использованием этой утилиты
passwd изменение пароля простой пользователь
passwd имя_пользователя смена пароля любого пользователя root
chpass изменение учетных данных пользователя втч класс доступа
chpass имя_пользователя под root
vipw редактирует файл /etc/master.passwd напрямую

Каждой учетной записи соответствует отдельная строка в файле /etc/ master.passwd, которая состоит из 10 полей, разделенных двоеточиями. Это следующие поля:
Имя учетной записи:Зашифрованный пароль:Числовой идентификатор пользователя (UID):Числовой идентификатор группы (GID):Класс доступа:Срок действия пароля(в секундах с начала времен):Срок действия учетной записи:Личные данные(полное имя, адрес,телефон, итд):Домашний каталог пользователя:Командный интерпретатор
Пользователи с несуществующим домашним каталогом по умолчанию не могут заходить в систему, хотя такое поведение можно изменить с помощью параметра настройки requirehome в файле login.conf

rmuser удаление пользователя
pw управление пользователями
pw lock имя заблокировать учетку
id узнать имя текущего пользователя

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

Всякий раз, когда пользователь пытается войти в систему, FreeBSD проверяет содержимое файла /etc/login.access..
В файле /etc/login.access есть три поля, разделенных двоеточиями. Первое поле предоставляет (+) или отнимает (-) право на вход в систему; второе поле — список пользователей или групп; третье — список источников подключений. Можно также использовать выражения ALL (все) и ALL EXCEPT (все, за исключением) например
-:ALL EXCEPT wheel: console
-:ALL EXCEPT wheel:ALL EXCEPT 192.168.89.128 192.168.170.44
Описания классов доступа находятся в файле /etc/login.conf и определяют, какие данные и какие ресурсы могут предоставляться пользователям.
После редактирования login.conf необходимо обновить базу данных login, чтобы изменения вступили в силу:
# cap_mkdb /etc/login.conf

Переменные login.conf для ограничения ресурсов
cputime Максимальное время процессора, которое может использовать любой процесс
filesize Максимальный размер одного файла
datasize Максимальный объем памяти, который может потреблять один процесс для хранения данных
stacksize Максимальный объем стека, доступный одному процессу
coredumpsize Максимальный размер дампа памяти
memoryuse Максимальный объем памяти, который процесс может заблокировать
maxproc Максимальное количество процессов, которые могут быть одновременно запущены одним пользователем
openfiles Максимальное количество открытых файлов на один процесс
sbsize Максимальный размер буфера сокета, который может задействовать приложение пользователя
Имеется возможность задать текущие (current) ограничения на ресурсы — носят рекомендательный характер, и пользователь может менять их по своему желанию.
Для задания текущего ограничения добавьте -cur к имени переменной. Для установления жесткого лимита добавьте -max.
:mахрrос-сur: 30:\
:mахрrос-mах: 60:\
Задание параметров среды по умолчанию в login.conf
hushlogin Если присутствует в определении класса, системная информация не выдается при входе в систему.
ignorenologin Если присутствует в определении класса, пользователь может войти в систему, даже когда файл /var/run/nologin существует.
ftp-chroot Если присутствует в определении класса, пользователи при работе с FTP помещаются chroot-окружение.
manpath Список каталогов для переменной окружения $ MAN PATH.
nologin Если присутствует, пользователь не может войти в систему.
path Список каталогов для переменной окружения $РАТН.
priority Приоритет (nice) пользовательских процессов по умолчанию
setenv Список переменных окружения, разделенных запятыми, с их значениями.
umask Значение umask по умолчанию (см. builtin(1)). Это значение всегда должно начинаться с 0.
welcome Полный путь к файлу, содержащему приветственное сообщение.
shell Полный путь к командному процессору, который будет запущен после входа в систему. Эта запись подменяет командный процессор, указанный в /etc/master.passwd. Однако переменная окружения $SHELL будет указывать на командный процессор, заданный в файле паролей, поэтому окружение будет противоречивым. Изменение значения этой переменной — замечательный способ раздосадовать пользователей
term Тип терминала по умолчанию. Чуть ли не каждая программа, пытающаяся установить тип терминала, подменяет эту запись
timezone Значение по умолчанию переменной окружения $TZ.
Параметры настройки аутентификации:
minpasswordlength Задает минимальную длину пароля.
\:minpasswordlen=28:\
passwd_format Задает алгоритм, применяемый для шифрования паролей в /etc/master.passwd. Значение по умолчанию - md5. Другие допустимые значения — des (DES), blf (Blowfish) и nthash (Windows NT). DES наиболее полезен, когда необходимо иметь одинаковые пароли на компьютерах с различными операционными системами. Blowfish — очень ресурсоемкий алгоритм. Алгоритм nthash кака.
mixpasswordcase Если это свойство задано, то при следующем изменении паролей пользователи не смогут задавать в них только строчные буквы.
host.allow Пользователи в классе с этим значением могут применять rlogin и rsh. Такая установка настоятельно не рекомендуется.
host.deny Это значение используется при работе с rlogin и rsh. Избегайте их как несвежего мяса.
times.allow Определяет промежуток времени, когда пользователь может входить в систему. Для задания времени необходимо в полях, разделенных двоеточиями, указать дни и периоды времени. Дни обозначаются двумя первыми буквами названия дня недели (Su, Mo, Tu, We, Th, Fr и Sa). Время указывается в стандартном 24-часовом формате. Например, если пользователю разрешено входить в систему только по средам между 8.00 и 17.00, подойдет такая запись:
:times.allow=We8-17:\
times.deny Определяет промежуток времени, когда пользователю нельзя входить в систему.

Полный список флагов файлов chflags(1).
sappnd Системный флаг «только добавление», который может устанавливать только root. Этот флаг нельзя изменить, когда система работает на уровне безопасности 1 и выше.
schg Системный флаг «неизменяемости», нельзя редактировать, перемещать, заменять, который может устанавливать только root. Этот флаг нельзя изменить, когда система работает на уровне безопасности 1 и выше.
sunlnk Системный флаг «запрет на удаление», который может устанавливать только root. Этот флаг нельзя изменить, когда система работает на уровне безопасности 1 и выше.
uappnd Пользовательский флаг «только добавление», который может устанавливать только владелец файла или root. Как в случае с установленным системным флагом sappnd, в файл с флагом uappnd можно добавлять записи, однако этот файл нельзя удалять или редактировать. Владелец файла и root могут удалить этот флаг в любое время.
uchg Пользовательский флаг «неизменяемости», который может устанавливать только владелец файла или root.
uunlnk Пользовательский флаг «запрет на удаление», который может установить только владелец файла или root.
например
# chflags schg /boot/kernel/kernel
или рекурсивно
# chflags -R schg /bin
ls -lo просмотреть флаги файлов
снятие флага с помощью префикса no
# chflags noschg /boot/kernel/kernel

Уровень безопасности системы, вступающий в силу при начальной загрузке, можно задать с помощью параметра
kern_securelevel_enable=»YES»
kern_securelevel=0 в файле rc.conf.

Уровень безопасности -1 устанавливаемый по умолчанию,
Уровень безопасности 0 используется только в начале загрузки системы. Он не предлагает никаких специальных функций. Когда система переходит в многопользовательский режим, уровень безопасности автоматически увеличивается до 1. Установка kern_securelevel=0 в /etc/ rc.conf эквивалентна установке kern_securelevel=1. Однако это может быть полезно, если во время загрузки системы запускаются сценарии, которые не могут выполнять необходимые действия на более высоких уровнях безопасности.
Уровень безопасности 1
Системные флаги файлов не могут быть сняты.
Нельзя загружать и выгружать модули ядра
Программы не могут записывать данные напрямую в системную память через устройства /dev/mem или /dev/kmem.
Закрыт доступ к /dev/io.
На монтированные диски нельзя записывать данные напрямую, а значит, нельзя форматировать разделы. (Файлы можно записывать на диск через стандартный интерфейс ядра, нельзя лишь обращаться к диску, как к физическому устройству.)
Уровень безопасности 2 Это уровень 1+:
Нельзя записывать данные напрямую в монтированные и немонтированные файловые системы.
Системное время за раз можно изменить не более чем на 1 секунду.
Уровень безопасности 3 Это уровень 2+
не допускает изменений правил пакетного фильтра.

Дополнения:
A. После переноса с одного сервака на другой учетных записей, за это отвечают(/etc/master.passwd и /etc/group.) записываем на новой машине полученные файлы в каталог /etc. И потом:
#pwd_mkdb master.passwd

B. Настройка работы с пакетами /etc/csh…
PKG_TMPDIR задает каталог, в который распаковываются временные файлы
# setenv PKG_TMPDIR /home/user/garbage
PACKAGEROOT предпочитаемый FTP для скачки пакета
PACKAGESITE Это полный путь к хранилищу (репозитарию) пакетов. Применяется, если требуется использовать пакеты определенного «выпуска» или в системе есть локальное хранилище пакетов.
PKGDIR Этот каталог определяет место для размещения копий пакетов, загруженных командой pkg_add -Kr, и позволяет организовать хранение загруженных пакетов.

C. Меняем стандартный шелл на самописный:)
1. В файлике /etc/shells добавляем строку с полным путем к нашему нестандартному шелу(для примера буду использовать /usr/bin/passwd).
2. Сохраняем
3. Создаем нового пользователя с помощью команды adduser
4. Во время создания когда спросят какой шелл хотим, смело выбирайте passwd(да, у нас появиться такой пунктик:))))
Можно конечно и поменять шелку у текущего, никто Вам этого не запрещает, в моем случае создавался новый пользователь.

D. Руссификация консольки UTF-8
1. Включить в файл /etc/login.conf описание класса пользователей с поддержкой русского языка:

Russian_utf8|Russian Users Accounts UTF8:\ :charset=UTF-8:\ :lang=ru_RU.UTF-8:\ :tc=default:

2. Выполнить команду cap_mkdb /etc/login.conf
3. Воспользоваться программой pw:

# pw user mod -L russian_utf8

Ttyv0 "/usr/libexec/getty Pc" cons25r on secure ttyv1 "/usr/libexec/getty Pc" cons25r on secure ttyv2 "/usr/libexec/getty Pc" cons25r on secure ttyv3 "/usr/libexec/getty Pc" cons25r on secure ttyv4 "/usr/libexec/getty Pc" cons25r on secure ttyv5 "/usr/libexec/getty Pc" cons25r on secure ttyv6 "/usr/libexec/getty Pc" cons25r on secure ttyv7 "/usr/libexec/getty Pc" cons25r on secure

5. В файле /etc/rc.conf закомментировать строки(если есть):

#font8x8="koi8-r-8x8" #font8x14="koi8-r-8x14" #font8x16="koi8-r-8x16" #keymap="ru.koi8-r.win"

6. Прописать переменные в используемом шелле /etc/csh.cshrc:

Setenv LANG ru_RU.UTF-8 setenv LC_CTYPE ru_RU.UTF-8 setenv LC_COLLATE POSIX setenv LC_ALL ru_RU.UTF-8

Можно конечно добавлять и каждому конкретному пользователю, но это дело по вкусу:)


В unix системах действует определенная иерархия пользователей. Следует понять, что в системе существует главный пользователь обладающий всеми правами — root. Остальные пользователи так или иначе ограничены в своих правах. Отсюда существует правило — работать в системе под ограниченным пользователем, и только для выполнения административных задач переключаться в суперпользователя root. У каждого пользователя в системе существует свой домашний каталог, в котором хранятся все личные настройки в виде конфигурационных файлов, по умолчанию этот каталог располагается в /usr/home, на который ведет символическая ссылка /home. Грубо говоря, для того чтобы установить ПО, управлять системными процессами, вносить изменения в системные файлы, настраивать сеть, монтировать диски, нужно будет переключаться в суперпользователя root. А для обычной повседневной деятельности (работа с документами, интернет, мультимедия и т.д.) достаточно простого пользователя. Если игнорировать это правило и использовать аккаунт root для повседневной деятельности, на порядок повышается уязвимость системы, так как все процессы будут запущены с правами суперпользователя, к примеру — браузер запущенный таким образом — грубейшее игнорирование правил безопасности системы. Злоумышленник, используя какую-либо уязвимость браузера, теоретически сможет получить полный доступ к управлению системой. К примеру, такой неправильный подход к безопасности — как работа интернет браузера с полными правами, реализован в операционных системах семейства Windows (собственно, там фактически нет нормального разделения прав пользователей), что приводит к простому механизму поражения системы, при помощи простого захода на зараженный сайт. Чтобы свести подобные вероятности к минимуму следует работать в системе в качестве пользователя и только при необходимости переключаться в суперпользователя root.

Каждый пользователь в системе может принадлежать к одной или нескольким группам. Членство в какой то определенной группе дает пользователю дополнительно те или иные права. К примеру, чтобы наш пользователь смог переключаться в суперпользователя, его следует поместить в группу wheel, это группа системных администраторов системы, к которой принадлежит root. В системе каждый пользователь (и группа) имеет свой идентификационный номер, пользователь root и группа wheel имеют при этом нулевые идентификаторы. В системе так же имеется масса пользователей не имеющих возможности подключиться в систему и не имеющие пароля авторизации, для системных нужд. Пример — пользователь ftp, от его имени выполняется штатный ftp сервер. Таких пользователей несколько.
Итак, наша задача создать пользователя — системного администратора, с авторизацией по паролю и возможностью входа в систему. Для этого входим в систему как суперпользователь root и набираем команду:

# adduser

После выполнения на дисплее появится следующий диалог для ввода данных. Запросы идут друг за другом, следует вводить необходимые данные и нажимать «enter»:

Username: alex — набираем имя пользователя (в данном случае «alex»), которое будет использоваться для входа в систему
Full name: Alexey — набираем полное имя, это имя будет фигурировать в личном профиле пользователя, его можно пропустить просто нажав «enter»
Uid (Leave empty for default): — в этой строке можно принудительно указать идентификационный номер пользователя, в нашем случае мы просто нажимаем «enter», представляя системе самой присвоить свободный идентификатор
Login group : wheel — в эту строку следует ввести группу к которой будет принадлежать пользователь в системе, по умолчанию имя группы аналогично имени пользователя, такая группа не будет обладать никакими дополнительными правами, а наша задача состоит в том, чтобы создать системного администратора, поэтому мы вводим имя группы системных администраторов «wheel» и нажимаем «enter»
Login group is wheel. Invite alex into other groups? : — данный запрос мы тоже пропускаем, это запрос о том, стоит ли сделать пользователя членом еще каких либо групп в системе, в нашем случае достаточно лишь одной группы «wheel», которую мы уже указали выше
Login class : — этот запрос мы тоже пропускаем, изменение этого параметра мы будем рассматривать ниже в статье о русификации, фактически в этой строке можно сразу задать класс пользователя «russian» для определения локали — раскладки и языка пользователя
Shell (sh csh tcsh nologin) : — этот запрос означает выбор командного процессора консоли, который собственно интерпритирует команды набранные на клавиатуре, по умолчанию командный процессор для пользователя — sh, поэтому пропускаем этот параметр нажимая «enter», изменение командного процессора мы рассмотрим в дальнейших статьях на сайте
Home directory : — в этой строке можно принудительно указать домашний каталог пользователя, в данном случае нас устраивает это размещение, поэтому снова нажимаем «enter»
Home directory permissions (Leave empty for default): — в этой строке можно принудительно задать права доступа для директории пользователя, в нашем случае так же оставляем все «по умолчанию» нажимая «enter»
Use password-based authentication? : — использовать ли пароль для авторизации пользователя в системе, по умолчанию стоит «yes» (да), если ответить «no» (нет) то штатным образом в систему войти мы не сможем, поэтому нажимаем «enter» тем самым отвечая «да»
Use an empty password? (yes/no) : — оставить ли пустой пароль для авторизации пользователя, в данном случае если ответить «да», то в систему возможно будет войти без пароля, что является неприемлимым, поэтому нажимаем «enter» тем самым отвечая «нет», т. к. по умолчанию указан ответ «no» (нет)
Use a random password? (yes/no) : — присвоить ли пользователю случайный пароль, в нашем случае тоже пропускаем этот вопрос нажимая «enter» и тем самым отвечая «no» (нет), т.к. пароль мы зададим самостоятельно
Enter password: — в данной строке следует ввести пароль пользователя, который будет ему присвоен, при этом ввод символов никак не отобразится в строке
Enter password again: — следует повторить ввод пароля
Lock out the account after creation? : — на этот вопрос следует так же ответить «no» (нет), т.к. вопрос гласит «Заблокировать ли аккаунт после создания?», нажимаем «enter»

После чего на экране появится профиль пользователя с запросом:

Username: alex
Password: *****
Full Name: Alexey
Uid: 1001
Class:
Groups: wheel
Home: /home/alex
Home Mode:
Shell: /bin/sh
Locked: no
OK? (yes/no):

На вопрос следует набрать «yes» (да) и нажать «enter», если набрать «no» (нет), то пользователь создан не будет. Итак набираем «yes» и нажимаем «enter»:
OK? (yes/no): yes
adduser: INFO: Successfully added (alex) to the user database.
На дисплее появится следующий запрос:
Add another user? (yes/no): no — на него уже следует ответить отрицательно, он гласит «Добавить ли еще одного пользователя?».
Goodbye!

Теперь в систему можно будет войти набрав логин — «alex» и пароль указанный в процессе создания пользователя. Для того, чтобы пользователю состоящему в группе wheel переключиться в режим суперпользователя root, следует набрать команду:
$ su
Password:
И после набора пароля суперпользователя root, аккаунт переключится. Возврат из режима суперпользователя в данном случае выполняется по команде:
# exit
Так же повторный набор этой команды уже из режима пользователя приведет к выходу из системы.

На этом процесс добавления пользователя закончен.

Для выполнения некоторых команд в системе FreeBSD требуется повышенные права (sudo ). В прошлой статья я уже рассматривал, сегодня разберемся, как создать пользователя во FreeBSD и выдать ему sudo права.

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

Для начала нам необходимо получить повышенные права (root ). Для этого выполним команду su и введем пароль от пользователя root :

Su Password: root@freebsd:/home/username #

Теперь переходим к созданию пользователя. Для это воспользуемся командой adduser :

# adduser

Username: sysadmin имя создаваемого пользователя Full name: Ivan Ivanov полное имя, можно оставить пусты, просто нажать Enter Uid (Leave empty for default): user id, можно ввести самому, начиная с номера 1001, либо нажать Enter, система выберет сама Login group : группа в которую входит создаваемый пользователь, по умолчанию совпадает с именем Login group is sysadmin. Invitesysadmin into other groups? : включить-ли пользователя в другие группы, если нет, жмем Enter Login class : класс пользователя, о них поговорим чуть позже, на данном этапе, жмем Enter Shell (sh csh tcsh nologin) : sh здесь предлагается выбрать системную оболочку, если вы не собираетесь давать данной учетной записи, удаленный доступ к системе, например через SSH, вписываем nologin, либо выбираем из предложенных вариантов, я обычно ставлю sh Home directory : назначаем домашнюю директорию, если значение по-умолчанию устраивает, жмем Enter Home directory permissions (Leave empty for default): права доступа на домашнюю директорию, что-бы оставить по-умолчанию, жмем Enter Use password-based authentication? : использовать-ли авторизацию по паролю Use an empty password? (yes/no) : можно-ли использовать пустые пароли Use a random password? (yes/no) : система предлагает сгенерировать вам пароль, если вы хотите согласиться, нужно написать yes на заключительном этапе создания учетной записи, будет показан сгенерированный пароль если предпочитаете ставить пароль вручную, жмите Enter Enter password: вводим пароль, имейте в виду, программа не покажет, что вы вообще что-либо вводите так что будьте внимательны Enter password again: повторный ввод пароля Lock out the account after creation? : заблокировать-ли учетную запись после создания

Если Вы планируете выдать в дальнейшем данному пользователю повышенные права, то сразу можно его при создании поместить в группу wheel .
В принципе создание пользователя на этом завершено

. Настройка sudo (root права) пользователю во FreeBSD

Для начала нам необходимо установить sudo . Устанавливать будем из пакетов. Для начала обновим пакеты:

Pkg update

Теперь установим сам пакет sudo

Pkg install sudo

После установки у нас появится файл sudoers в директории /usr/local/etc. Давайте проверим, появился ли он?:

Да, файл есть, все хорошо. Данный файл создается с атрибутами «только чтение». Нам необходимо разрешить его редактирование:

# chmod u+w /usr/local/etc/sudoers

Давайте теперь отредактируем файл:

# mcedit /usr/local/etc/sudoers

находим файле строку root ALL=(ALL) ALL и под ней добавим нашего созданного пользователя:

... ## ## Runas alias specification ## ## ## User privilege specification ## root ALL=(ALL) ALL sysadmin ALL=(ALL) ALL ## Uncomment to allow members of group wheel to execute any command # %wheel ALL=(ALL) ALL ## Same thing without a password # %wheel ALL=(ALL) NOPASSWD: ALL ## Uncomment to allow members of group sudo to execute any command # %sudo ALL=(ALL) ALL

Для того, чтобы разрешить всей группе права суперпользователя, необходимо просто раскомментировать строчку %wheel ALL=(ALL) NOPASSWD: ALL Если вы ее расскоментируете в том виде, в котором она есть, то при вызове команды от суперпользователя пароль запрашиваться не будет. Чтобы пароль запрашивался, уберите надпись NOPASSWD . На этом все. Теперь, для того, чтобы вызвать команду с повышенными правами необходимо вначале набрать su . Например:

$ su service zabbix-server restart

Вроде бы мы подробно рассмотрели, как создать нового пользователя в операционной системе FreeBSD и как добавить ему права суперпользователя. Если у Вас что-то не получается или остались вопросы — задавайте их в комментариях, постараемся ответить и помочь.

Модель полномочий и пользователей, используемая в операционной системе 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.

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




Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: