Главная | Контакты



Главная > Операционные системы > UNIX > BSD > FreeBSD

Как добавить юзера?

Ответ на этот вопрос не такой простой, как может показаться. Все зависит от того - какого юзера вы хотите зарегистрировать.

Заметьте, что, для того, чтобы пустить в свою систему реального юзера, надо не только добавить новую учетную карточку для него. Еще надо создать ему домашнюю директорию и, желательно, положить туда некоторые стартовые файлы (типа config.sys и autoexec.bat в DOS'е). При этом надо правильно установить права нового юзера на эти файлы.

Для того, чтобы не делать эту работу вручную, существует специальная утилита (см. ниже). Но, если вам нужно зарегистрировать псевдо-юзера или "почтового юзера", она не очень подходит. В этом случае лучше воспользоваться более примитивными средствами.

Итак. Программы для регистрации (и не только) нового пользователя.

pwd_mkdb

Собственно, эта утилита только преобразует файл master.passwd в три остальных файла.

Вы можете любым текстовым редактором добавить строчку в master.passwd, взяв за образец любую из тех строчек, которые там уже есть (желательно, перед этим внимательно прочитать man 5 passwd). Если, после этого запустить команду
pwd_mkdb -p /etc/master.passwd
то она сделает соответствующие изменения в spwd.db, pwd.db, passwd.

Не забудьте, что пароль в учетной карточке хранится в зашифрованном виде. Поэтому, при составлении записи, это поле учетной карточки лучше оставить пустым, а потом занести пароль утилитой, которая специально для этого предназначена:
passwd <имя юзера>

Конечно, это самый сложный способ, но... Если вы когда-нибудь возьметесь написать свою программу для регистрации, то она должна будет просто сформировать правильную строчку для файла master.passwd, занести ее в этот файл, а потом просто вызвать pwd_mkdb. Кстати, остальные программы, о которых дальше идет речь, именно так и делают.

vipw

Эта программа слегка :-) автоматизирует процесс описанный выше. Она сама запускает текстовый редактор, а, по выходу из редактора, pwd_mkdb.

Облегчение состоит в том, что вам не надо помнить - какой файл вы редактируете и как правильно вызвать pwd_mkdb.

Запись в master.passwd вам все равно придется составить самостоятельно. При этом не забудьте, что Name и userID должны быть уникальными для каждого юзера.

Важное замечание по поводу текстового редактора. Программа vipw сама редактором не является. Она запускает текстовый редактор, который задан переменной окружения EDITOR, а если таковой не найдет, то редактор vi. Причем, обычно, при установке FreeBSD в стартовых файлах для root эта переменная устанавливается, но это тот же vi.

Дело в том, что работать с этим редактором без подготовки достаточно сложно. Поэтому, установите переменную EDITOR, выбрав свой любимый редактор. Если любимого редактора у вас пока нет, можно воспользоваться редактором /bin/ee.

adduser

Это самая "продвинутая" программа для добавления нового юзера. Она задает вопросы касающиеся нового юзера, сама проверяет имя и user ID на уникальность (причем, для user ID она сама предложит подходящее значение), создает домашнюю директорию для юзера и копирует туда заготовки настроечных файлов, и даже может послать приветственное письмо вновь зарегистрированному юзеру. Естественно, она же делает запись в БД учетных карточек.

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

Например, вам нужно зарегистрировать "почтового юзера". Для такого юзера не нужна домашняя директория (а тем более заготовки стартовых файлов) и Shell у этого юзера должен быть нестандартный. Так вот - заставить эту программу не делать домашнюю директорию очень трудно (если вообще возможно). Кроме того, она не даст вам указать в качестве Shell произвольную программу.

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

pw useradd

Возможно, вам покажется более удобной утилита pw. Эта программа, по замыслу авторов, должна быть универсальной утилитой для администратора в вопросах создания/изменения/удаления юзеров и групп. Поэтому, для данной задачи (регистрации нового юзера) ее надо запускать в виде:
pw useradd .....

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

Но, с другой стороны она имеет и ряд достоинств:

  • обычно, достаточно ей указать только имя нового юзера, все остальное она "сочинит" сама. Например:
    pw useradd vasia
    (программа сама подберет подходящий userID, и заполнит поля group, Home dir, Shell и т.п., взяв их из своего конфигурационного файла)
  • все данные, подставляемые "по умолчанию", можно легко поменять, запустив эту же программу в виде
    pw useradd -D ...
    или отредактировав напрямую конфигурационный файл /etc/pw.conf
    (если у вас в /etc такого файла нет, то просто наберите команду pw useradd -D и он сам создастся).
  • при этом можно иметь несколько различных конфигурационных файлов, для разных типов юзеров, и явно указывать в команде - какие "умолчания" использовать для создания данного юзера. Например, у вас есть юзеры трех различных типов (отличающися своими group, Home dir, Shell и т.п.). Сделайте три разных конфигурационных файла (просто "растиражируйте" /etc/pw.conf и подправьте в каждом то, что нужно.) Теперь, чтобы создать юзера с "умолчаниями" из файла /etc/pw1.conf, наберите команду
    pw useradd vasia -C/etc/pw1.conf

Подробнее о всех параметрах (ключах) этой программы можно посмотреть в соответствующем man'уале (man pw), краткий список ключей можно "спросить" у самой программы, командой
pw useradd help
(но man pw все равно лучше прочитать, хотя бы раз :-)

Здесь я хочу только обратить внимание на ключь -m. Дело в том, что pw useradd "по умолчанию" делает только запись в учетной карточке. А с этим ключем
pw useradd vasia -m
она, также, создаст домашнюю директорию для юзера и скопирует туда соответствующие стартовые и настроечные файлы.

Материал взят с сайта: http://pascal.tsu.ru/unix/users/users5.html

Главная > Операционные системы > UNIX > BSD > FreeBSD