Я в основном спрашиваю об управлении пользователями из командной строки (например, в системе, где нет доступных графических инструментов). В прошлом я использовал несколько различных программ для добавления или удаления пользователей и групп или изменять их атрибуты: adduser
, useradd
, usermod
, gpasswd
, и , возможно , другие я забыл. Я также слышал пару раз, что некоторые из этих программ являются низкоуровневыми и их следует избегать для общего использования, но я никогда не могу вспомнить, какие именно. Поэтому я хотел бы получить четкий ответ, для каких программ рекомендуются хотя бы следующие задачи:
- Создать нового пользователя
- Добавить пользователя в группу
- Удалить пользователя из группы
- Изменить основную группу пользователя
- Изменить пользовательскую оболочку входа или домашний каталог
- Удалить пользователя
Я ищу стандартные инструменты, которые, как я ожидаю, будут доступны практически в любой системе Linux (любого дистрибутива).
groupmod
. Я не собираюсь делать это ответом ... но самый стандартный способ - это, вероятно, использовать ваш текстовый редактор ... помните, что затронутые файлы - это просто текст с разделителями./etc/passwd
это всего лишь одна часть сложной системы)Ответы:
К сожалению, ни одна из этих операций не была стандартизирована.
Некоторые операционные системы предлагают эту функциональность как часть ОС, например, Linux, но даже если ваша система Linux включает их, со временем и во всех дистрибутивах Linux инструменты и их имена меняются, так что вы не можете зависеть от стандартного набора инструментов, который нужно делать эти задачи.
Вы должны иметь набор инструментов для каждой операционной системы.
источник
На Debian (и производных) системах,
adduser
иdeluser
являются высокоуровневыми оболочками вокругuseradd
и связанной с ними функциональностью. Создание обложки, добавление и вычитание членства в группах и удаление пользователей. Соответствующие команды создания / удаления групп, достаточно разумно,addgroup
иdelgroup
.usermod
появляется, чтобы охватить оставшийся вариант использования, который вы назвали.источник
Вы упоминаете Linux в последней части вашего вопроса, но поскольку название носит общий характер, я отвечу за FreeBSD.
FreeBSD имеет команды, аналогичные Linux, но они передаются
pw
утилите:и так далее. Тем не менее, можно разбить команду на две части:
user
иmod
; существительное и глагол. Кроме того, можно также использоватьgroup
иdel
:например, удалить группу. Итак, вот что я считаю действительно классным: порядок не имеет значения, а также интервал! Это означает, что вы можете вспомнить, как звонить, думая о том, что вы хотите сделать (в любом случае на английском языке):
и более!
pw
Утилита также позволяет блокировать и разблокировать счета:Все параметры и передаваемые вами параметры стандартизированы (хотя не всегда применяются к командам вызова), поэтому запоминание сведено к минимуму. В целом, хороший способ делать вещи.
Примечание: эллипсы в приведенных выше примерах представляют опции и параметры, передаваемые
pw
не дополнительным пользователям или группам.источник
Просто для полноты, в низкоуровневом конце спектра я бы упомянул vipw (8) и vigr (8), чуть выше «vi / etc / passwd» и «cat> / etc / passwd», но прямо под «useradd». ». Да, и они существуют в большинстве вариантов Unix.
источник
Все эти инструменты созданы для редактирования текстовых файлов. Если вы хотите знать, как управлять пользователями и группами в системах, вам следует ознакомиться с этими текстовыми файлами. К счастью для вас, их всего двое,
/etc/passwd
и/etc/group
. Есть также дополнительные/etc/shadow
и/etc/gshadow
файлы для теневого копирования passwd и group соответственно.источник
Во многих ситуациях знание того, как редактировать «/ etc / passwd», все еще полезно.
источник
Если вы используете бэкэнд, отличный от бэкэнда локального компьютера по умолчанию (OpenLDAP является наиболее распространенным), тогда cpu (утилита смены пароля) может быть той командой, которую вы ищете. Он может быть запущен на компьютерах, отличных от мастера LDAP, если он настроен правильно, и его синтаксис в основном такой же, как и
useradd
т. Д. С префиксомcpu
. Чтобы добавить себя, я мог бы сделатьСмотрите man-страницу процессора для более подробной информации.
источник
Если ваш вопрос был ограничен
но все системы имеют сетевой доступ к одному серверу. Вы можете использовать что-то вроде NIS или YP. Таким образом, этот ответ ограничен администраторами в пределах одной организации.
У вас все еще есть проблема, когда почти в каждом дистрибутиве есть немного разные способы настройки YP, но конфигурация происходит только один раз. Кроме того, этот тип сети не является тривиальным.
В пределах одного сайта / сети вы получите много, делая это. В сочетании с автомонтированием, мой любимый - возможность SSH подключаться к любой машине * nix и иметь все свои домашние файлы и инструменты, доступные мне.
Кстати, распределение, которое вы выбираете для мастера, - это система, которую вы используете для управления пользователями. После этого у вас будет единый набор инструментов / документации для управления пользователями и группами.
На мастере можно даже использовать что-то вроде инструментов LDAP и samba. Использование samba также позволяет мне иметь доступ к моим домашним файлам на компьютерах с Windows.
источник
Самое близкое к стандарту, которое вы получите
vi /etc/passwd
, этоvi /etc/shadow
, иvi /etc/groups
. (Еретики могут заменитьemacs
.) Все, что я обнаружил с тех пор, будет работать только на некоторых системах.Серьезно, узнайте, какие инструменты есть в вашей ОС, и используйте их. Только не ожидайте, что они будут работать одинаково на всех системах. Было бы хорошо, если бы они были стандартизированы, но это не так.
источник
/etc/passwd
,/etc/shadow
,/etc/group
, и/etc/gshadow
. Для этого и нужны инструменты. Люди подвержены ошибкам, в то время как инструменты были протестированы и (надеюсь) не содержат ошибок./etc/passwd
и друзей напрямую. Используйтеvipw
иvigr
, который: заблокировать файл от одновременного издания; запустите ваш любимый редактор ($VISUAL
); не меняйте файл, если вы допустили синтаксическую ошибку; в некоторых системах (например, FreeBSD) также регенерируйте другие файлы, которые должны быть синхронизированы.