Создание пользователя
Модераторы: Warderer, Модераторы разделов
-
spool
- Сообщения: 126
- ОС: CentOS 6.6
Создание пользователя
Здравствуйте. Необходимо создать юзера с определенными правами: создание / удаление юзера, запуск/остановка процессов, распаковка архивов, создание / удаление папок и возможность смены паролей для созданных юзеров. Как сие можно осуществить? Зараннее спасибо.
-
Bizdelnick
- Модератор
- Сообщения: 21416
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Создание пользователя
А что, с этим есть проблемы?
man sudoers, man useradd, man userdel.
Только для юзеров, созданных данным конкретным юзером? Сие невозможно.
Пишите правильно:
| в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
spool
- Сообщения: 126
- ОС: CentOS 6.6
Re: Создание пользователя
Не пробовал еще. Спросил на всякий случай
Да, я читал маны, но то ли лыжи не едут, то ли я... Потому был бы благодарен за конкретное решение.
Bizdelnick писал(а): ↑17.04.2012 17:43Только для юзеров, созданных данным конкретным юзером? Сие невозможно.
То есть этот юзер сможет и пасс от рута поменять, в случае чего, если это невозможно?
-
Bizdelnick
- Модератор
- Сообщения: 21416
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Создание пользователя
Да вроде ничего сверхсложного нет. Прописываете в sudoers что-то вроде
Код: Выделить всё
user ALL = (root) /usr/sbin/useradd, /usr/sbin/userdelДа.
Пишите правильно:
| в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: Создание пользователя
Можно обернуть /usr/bin/passwd, /usr/sbin/useradd и т.п. в скрипты, которые будут контролировать (например, все пользователи, созданные псевдоадмином, будут добавляться в дополнительную группу оберткой вокруг useradd, а обертка вокруг passwd будет проверять). А уже к этим оберткам дать доступ через sudoers, не давая доступа к оригиналам.Bizdelnick писал(а): ↑17.04.2012 17:43Только для юзеров, созданных данным конкретным юзером? Сие невозможно.
Мои розовые очки
-
spool
- Сообщения: 126
- ОС: CentOS 6.6
Re: Создание пользователя
Bizdelnick писал(а): ↑17.04.2012 18:44Да вроде ничего сверхсложного нет. Прописываете в sudoers что-то вродеКод: Выделить всё
user ALL = (root) /usr/sbin/useradd, /usr/sbin/userdel
Можете подробнее объяснить, что за что отвечает в данной прописи?
watashiwa_daredeska писал(а): ↑17.04.2012 19:03Можно обернуть /usr/bin/passwd, /usr/sbin/useradd и т.п. в скрипты, которые будут контролировать (например, все пользователи, созданные псевдоадмином, будут добавляться в дополнительную группу оберткой вокруг useradd, а обертка вокруг passwd будет проверять). А уже к этим оберткам дать доступ через sudoers, не давая доступа к оригиналам.Bizdelnick писал(а): ↑17.04.2012 17:43Только для юзеров, созданных данным конкретным юзером? Сие невозможно.
Мне здесь остается сделать только умное лицо и покивать, ибо я ничего не понял)
-
drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Создание пользователя
делать юзеров и менять пароли может ТОЛЬКО рут. А вам советуют кривые костыли.
-
spool
- Сообщения: 126
- ОС: CentOS 6.6
-
drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Создание пользователя
юзеру можно дать права рута. Можно одному юзеру дать права другого. Можно на одну команду. Можно после этого лишится всех своих прав.
-
Bizdelnick
- Модератор
- Сообщения: 21416
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Создание пользователя
Можно, конечно. Но конкретно управление пользователями возможно только от имени рута.
Пишите правильно:
| в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: Создание пользователя
Да, я знаю, что sudo — кривой костыль, но уж чем богаты :)
Можно, но… Набор действий, на выполнение которых можно более-менее стандартно дать права, довольно ограничен. Необходимые Вам действия в стандартный набор не укладываются. Поэтому я и предлагаю свести Ваши нестандарные действия (на которые нельзя стандартным образом выдать права) к стандартным (т.е. к праву запуска определенных команд) путем написания скриптов-оболочек, которые не будут позволять делать то, чего нельзя.
Для примера, скрипт, аналогичный по набору параметров команде /usr/sbin/useradd, но включающий всех добавляемых через него пользователей в группу admin-managed:
Код: Выделить всё
#!/bin/bash
# -*- mode: sh; coding: utf-8; -*-
set -e
FORCED_GROUP=admin-managed
opts="$(getopt -o "+b:c:d:De:f:g:G:k:K:lmMNop:rR:s:u:UZ:" -l "base-dir:,comment:,home:,defaults,expiredate:,inactive:,gid:,groups:,skel:,key:,no-log-init,create-home,no-user-group,non-unique,password:,system,root:,shell:,user-group,selinux-user:" -- "$@")"
eval "set -- $opts"
while [ "x--" != "x$1" ]; do
case "$1" in
-b|-c|-d|-e|-f|-g|-k|-K|-p|-R|-s|-u|-Z|--base-dir|--comment|--home|--expiredate|--inactive|--gid|--skel|--key|--password|--root|--shell|--selinux-user)
command_args=("${command_args[@]}" "$1" "$2")
shift
;;
-D|-l|-m|-M|-N|-o|-r|-U|--defaults|--no-log-init|--create-home|--no-user-group|--non-unique|--system|--user-group)
command_args=("${command_args[@]}" "$1")
;;
-G|--groups)
if echo -n ",$2," | grep ",$FORCED_GROUP," 2>/dev/null; then
command_args=("${command_args[@]}" "$1" "$2")
else
command_args=("${command_args[@]}" "$1" "${FORCED_GROUP},$2")
fi
group_forced=yes
;;
esac
shift
done
if [ "$group_forced" != "yes" ]; then
command_args=("${command_args[@]}" -G "$FORCED_GROUP")
fi
/usr/sbin/useradd "${command_args[@]}" "$@"Мои розовые очки
Спасибо сказали:
-
sciko
- Сообщения: 1744
- Статус: Ъ-участник
- ОС: Debian/Ubuntu/etc
-
spool
- Сообщения: 126
- ОС: CentOS 6.6
Re: Создание пользователя
Ну вот вы сейчас работаете над проектом, связанным именно с работой подобного юзера. Как вы это осуществили?
watashiwa_daredeska писал(а): ↑17.04.2012 21:56Для примера, скрипт, аналогичный по набору параметров команде /usr/sbin/useradd, но включающий всех добавляемых через него пользователей в группу admin-managed:Если дать на него права через sudo, то пользователь сможет добавлять только членов группы admin-managed и никак иначе. Аналогичная обертка вокруг passwd — и вуаля, наш админ может добавлять пользователей и менять пароли только им, и никому другому.Код: Выделить всё
#!/bin/bash # -*- mode: sh; coding: utf-8; -*- set -e FORCED_GROUP=admin-managed opts="$(getopt -o "+b:c:d:De:f:g:G:k:K:lmMNop:rR:s:u:UZ:" -l "base-dir:,comment:,home:,defaults,expiredate:,inactive:,gid:,groups:,skel:,key:,no-log-init,create-home,no-user-group,non-unique,password:,system,root:,shell:,user-group,selinux-user:" -- "$@")" eval "set -- $opts" while [ "x--" != "x$1" ]; do case "$1" in -b|-c|-d|-e|-f|-g|-k|-K|-p|-R|-s|-u|-Z|--base-dir|--comment|--home|--expiredate|--inactive|--gid|--skel|--key|--password|--root|--shell|--selinux-user) command_args=("${command_args[@]}" "$1" "$2") shift ;; -D|-l|-m|-M|-N|-o|-r|-U|--defaults|--no-log-init|--create-home|--no-user-group|--non-unique|--system|--user-group) command_args=("${command_args[@]}" "$1") ;; -G|--groups) if echo -n ",$2," | grep ",$FORCED_GROUP," 2>/dev/null; then command_args=("${command_args[@]}" "$1" "$2") else command_args=("${command_args[@]}" "$1" "${FORCED_GROUP},$2") fi group_forced=yes ;; esac shift done if [ "$group_forced" != "yes" ]; then command_args=("${command_args[@]}" -G "$FORCED_GROUP") fi /usr/sbin/useradd "${command_args[@]}" "$@"
Спасибо за вариант
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: Создание пользователя
Если Вы приведете рецепт того, как пользователю A дать право менять пароль только пользователям, созданным самим пользователем A, то модно.
Мои розовые очки
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: Создание пользователя
Только не вздумайте его в таком виде использовать. Это proof-of-concept, а не реальный рабочий скрипт. В частности, через указание --skel "админ" может насажать создаваемым пользователям троянов. Так что, хотя это и возможный путь решения, но при написании таких чувствительных к безопасности скриптов, да еще и на shell, с его на голову больным квотингом, нужно думать не 7 раз, а как минимум 7^2.
Мои розовые очки
-
spool
- Сообщения: 126
- ОС: CentOS 6.6
Re: Создание пользователя
watashiwa_daredeska писал(а): ↑17.04.2012 22:29Только не вздумайте его в таком виде использовать. Это proof-of-concept, а не реальный рабочий скрипт. В частности, через указание --skel "админ" может насажать создаваемым пользователям троянов. Так что, хотя это и возможный путь решения, но при написании таких чувствительных к безопасности скриптов, да еще и на shell, с его на голову больным квотингом, нужно думать не 7 раз, а как минимум 7^2.
Да для меня сейчас любой вариант хорош, ибо это первый форум, где начали двигать хоть какие-то идеи
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Создание пользователя
на остальных нашилсь свои слакварщики-ретрограды?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
taaroa
- Сообщения: 1319
Re: Создание пользователя
а ссылку на готовую политику (с подробными комментариями) потёрли модераторы?
или вы просто забыли её (политику) написать и опубликовать?
нет, мистер андерсон, оно этого не умеет.
:wq
-
alv
- Бывший модератор
- Сообщения: 7275
- Статус: Пенсионер в законе
- ОС: Cintu
Re: Создание пользователя
Видите ли, над конкретным решением довольно долго думала цельная фирма Sun вместе с кучей волонтёров - и придумала политику ролевого доступа в OpenSolaris. Где как раз высший закадровый режиссёр может наначить одного из юзеров исполняющим роль рута. А рута при этом может не быть вообще. Не как Ubuntu, где у рута просто не пароля, а именно не быть рутового аккаунта.
В Linux'е нечто подобное, затратив определённые усилия, можно реализовать посредством SELinux'а.
А Вы хотите конкретного решения одним постом
Кстати, возникает контр-вопрос: а зачем Вам это надо?
Я вот представляю одну ситуацию: обладатель рутового пароля может на месяц запить или по дамам загулять.
Но в таком случае не проще ли у него взять рутовый пароль?
-
alv
- Бывший модератор
- Сообщения: 7275
- Статус: Пенсионер в законе
- ОС: Cintu
Re: Создание пользователя
ТС попросил конекретного решения. Ему его предложили: прочитать данный материал и придумать такое решение для себя. Или есть волонтёры проделать за него эту работу?
-
spool
- Сообщения: 126
- ОС: CentOS 6.6
Re: Создание пользователя
Нужно для работы удаленного скрипта на дедике.
На одном форуме предложили сделать что-то типа
На одном форуме предложили сделать что-то типа
Код: Выделить всё
serj debian143=(ALL) NOPASSWD: /bin/kill, /usr/sbin/userdel, /usr/sbin/useradd, /usr/bin/passwd-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: Создание пользователя
Это очень плохо. Ибо тогда я (debian143) делаю: sudo /usr/bin/passwd (меняю пароль root), потом su - и я царь и бог без ограничений.spool писал(а): ↑18.04.2012 10:19Код: Выделить всё
serj debian143=(ALL) NOPASSWD: /bin/kill, /usr/sbin/userdel, /usr/sbin/useradd, /usr/bin/passwd
Мои розовые очки
-
taaroa
- Сообщения: 1319
Re: Создание пользователя
пропатчить линакс grsecurity или rsbac и написать соответствующие политики?
из пушки по воробушкам.
обычно на каждую «хотелку» можно привести аналог уже существующего и используемого решения. и если правильно поставить задачу, то половина решения уже готова. как-то так.
:wq
-
drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Создание пользователя
watashiwa_darede... писал(а): ↑17.04.2012 21:56Да, я знаю, что sudo — кривой костыль, но уж чем богаты :)
угу.
watashiwa_darede... писал(а): ↑17.04.2012 21:56Поэтому я и предлагаю свести Ваши нестандарные действия (на которые нельзя стандартным образом выдать права) к стандартным (т.е. к праву запуска определенных команд) путем написания скриптов-оболочек, которые не будут позволять делать то, чего нельзя.
Для примера, скрипт, аналогичный по набору параметров
вообще-то, это не самая лучшая идея: писать универсальный скрипт. Наверняка 95% функционала в данном конкретном случае просто не нужна.
watashiwa_darede... писал(а): ↑17.04.2012 21:56Если дать на него права через sudo, то пользователь сможет добавлять только членов группы admin-managed и никак иначе. Аналогичная обертка вокруг passwd — и вуаля, наш админ может добавлять пользователей и менять пароли только им, и никому другому.
гладко было на бумаге, да забыли про овраги... © русская поговорка.
никак. юзеры == строчки в таблице users в СУБД. проще говоря - фикция. Зачем мне лишняя головная боль? А в самой системе никаких юзеров не создаётся, соответственно и вопросом их создания я не озаботился (:
пожалуйста. Надеюсь ваш проект не связан с деньгами, а просто какая-то визитка, какого-то васи пупкина, который никому не нужен (:
а забивать шурупы можно не только молотком, но и микроскопом. Они от этого держаться не хуже. И не лучше (:
RBAC это конечно очень сильное колдунство, но явно не в случае ТСа.
watashiwa_darede... писал(а): ↑17.04.2012 22:29Это proof-of-concept, а не реальный рабочий скрипт. В частности, через указание --skel "админ" может насажать создаваемым пользователям троянов.
можно. А вы спросили ТС'а, _нужен_ ли _ему_ этот ваш skel?
Впрочем, там и без этого полным полно дыр. Уж тогда проще свой вариант useradd_adm написать на C с правами 4711... (для скрипта такие права не имеют смысла).
ИМХО вы не с той стороны подошли к задаче. Типа "как правильно и безопасно спустится с крыши девятиэтажного дома в окно своей квартиры на пятом этаже?". Вот вам и советуют варианты строительного альпиниста и разные решения на базе парашютов/дельтапланов/боингов. (:
ну вот... я уже ретроград...
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Создание пользователя
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
spool
- Сообщения: 126
- ОС: CentOS 6.6
Re: Создание пользователя
watashiwa_daredeska писал(а): ↑18.04.2012 10:31Это очень плохо. Ибо тогда я (debian143) делаю: sudo /usr/bin/passwd (меняю пароль root), потом su - и я царь и бог без ограничений.spool писал(а): ↑18.04.2012 10:19Код: Выделить всё
serj debian143=(ALL) NOPASSWD: /bin/kill, /usr/sbin/userdel, /usr/sbin/useradd, /usr/bin/passwd
А если так?
Код: Выделить всё
serj debian143=(ALL) NOPASSWD: /bin/kill, /usr/sbin/userdel, /usr/sbin/useradd, /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root-
drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Создание пользователя
тогда sudo useradd -o -u0 root2
много чего можно придумать на самом деле. Вы всё ещё не хотите зайти в дверь, как все нормальные люди? ;)
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: Создание пользователя
Это который
?
Ага, а нормальные люди, если забыли ключ, вышибают дверь и сидят три дня безвылазно в квартире, пока новую не привезут и не поставят.drBatty писал(а): ↑18.04.2012 11:05ИМХО вы не с той стороны подошли к задаче. Типа "как правильно и безопасно спустится с крыши девятиэтажного дома в окно своей квартиры на пятом этаже?". Вот вам и советуют варианты строительного альпиниста и разные решения на базе парашютов/дельтапланов/боингов. (:
Мои розовые очки
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Создание пользователя
истины ради — serj, а не debian143·
debian143 в данном случае — имя хоста·
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
spool
- Сообщения: 126
- ОС: CentOS 6.6