Добавление пользователей в sudoers через сценарий оболочки

Можно ли добавлять пользователей в файл sudoers с помощью сценария оболочки? Я искал, но ничего не нашел.

27
задан Mxyk 28 January 2013 в 03:52
поделиться

5 ответов

Вы можете просто echo (с повышенными привилегиями, конечно) напрямую в файл /etc/sudoers:

sudo -i
echo 'nickw444  ALL=(ALL:ALL) ALL' >> /etc/sudoers
#             ^^
#             tab

(обратите внимание на символ табуляции между именем пользователя и первым ALL)

Или, для сценария:

#!/bin/bash
# Run me with superuser privileges
echo 'nickw444  ALL=(ALL:ALL) ALL' >> /etc/sudoers

Затем сохраните его в somefile.sh, chmod a+rx и запустите sudo ./somefile.sh из окна терминала.

Чтобы добавить несколько пользователей, измените сценарий на это;

#!/bin/bash

while [[ -n $1 ]]; do
    echo "$1    ALL=(ALL:ALL) ALL" >> /etc/sudoers;
    shift # shift all parameters;
done

Затем запустите сценарий следующим образом (при условии, что вы сохранили его как addsudousers.sh):

sudo ./addsudousers.sh bob joe jeff

то есть разделены пробелами.

Чтобы прочитать имена из файла:

nickw444@laptop ~ $ sudo ./addsudousers.sh `cat listofusers.txt`

listofusers.txt также должны быть разделены пробелом.

Редактировать: Джаппи Кирк справедливо указывает , что вы не можете напрямую вызвать sudo echo ... >> /etc/sudoers, потому что перенаправление >> обрабатывается оболочкой, которая к этому моменту отброшена привилегии суперпользователя. Однако, если вы запускаете скрипт, который содержит echo ... >> /etc/sudoers, а сам скрипт имеет привилегии суперпользователя, все должно работать нормально.

46
ответ дан 28 November 2019 в 04:42
поделиться

Существует также группа sudo, и вы можете добавить в нее пользователей (для общих конфигураций /etc/sudoers)

adduser [username] sudo

6
ответ дан 28 November 2019 в 04:42
поделиться

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

После того, как вы вошли в систему, вы можете попробовать следующие команды:

  1. Создать нового пользователя.

    adduser [имя пользователя]

  2. Добавить пароль для пользователя

    passwd [имя пользователя]

  3. Предоставить пользователю привилегии root Отредактируйте файл visudo, просто набрав

    введите здесь код

Найдите следующую строку кода: root ALL = (ALL) ALL

Затем добавьте этот код ниже:

[username] ALL=(ALL) ALL

Оригинальный пост найдет по этой ссылке Centos 6 - Создание пользователя sudoers

0
ответ дан 28 November 2019 в 04:42
поделиться

Одна строка для создания пользователя с паролем и в группе sudo.

useradd -p $ (openssl passwd -1 ПАРОЛЬ ) ИМЯ ПОЛЬЗОВАТЕЛЯ -s / bin / bash -G sudo

0
ответ дан 28 November 2019 в 04:42
поделиться

для предоставления пользователю sudo разрешения в сценарии оболочки (Unix/Linux) использование функция usermod :

sudo usermod -aG sudo <userName>

пример:

sudo usermod -aG sudo johnDoe

Для Проверки: используют эти функция групп (которые показывают состав группы), и проверьте sudo группу нас при правильном пользователе.

groups <userName>

пример:

groups johnDoe
#!johnDoe: johnDoe sudo

Объяснение от документация Linux :

команда usermod изменяет системные файлы учетной записи для отражения изменений, которые указаны на командной строке.

-a, - добавляют

, Добавляет пользователь к дополнительной группе (группам). Используйте только с-G опцией.

-G, - группы GROUP1 [GROUP2... [GROUPN]]]

список А дополнительных групп, которых пользователь является также членом. Каждая группа?> разделенный от следующего запятой, без прошедшего пробела. Группы подвергаются тем же ограничениям как группа, данная с-g опцией. Если пользователь в настоящее время будет членом группы, которая не перечислена, то пользователь будет удален из группы. Это поведение может быть изменено через-a опцию, которая добавляет пользователя к текущему дополнительному списку группы.

0
ответ дан 28 November 2019 в 04:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: