Можно ли добавлять пользователей в файл sudoers с помощью сценария оболочки? Я искал, но ничего не нашел.
Вы можете просто 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
, а сам скрипт имеет привилегии суперпользователя, все должно работать нормально.
Существует также группа sudo
, и вы можете добавить в нее пользователей (для общих конфигураций /etc/sudoers
)
adduser [username] sudo
Войдите в систему как пользователь root. Пользователь root является единственным, кто имеет право добавлять нового пользователя.
После того, как вы вошли в систему, вы можете попробовать следующие команды:
Создать нового пользователя.
adduser [имя пользователя]
Добавить пароль для пользователя
passwd [имя пользователя]
Предоставить пользователю привилегии root Отредактируйте файл visudo, просто набрав
введите здесь код
Найдите следующую строку кода: root ALL = (ALL) ALL
Затем добавьте этот код ниже:
[username] ALL=(ALL) ALL
Оригинальный пост найдет по этой ссылке Centos 6 - Создание пользователя sudoers
Одна строка для создания пользователя с паролем и в группе sudo.
useradd -p $ (openssl passwd -1 ПАРОЛЬ ) ИМЯ ПОЛЬЗОВАТЕЛЯ -s / bin / bash -G sudo
для предоставления пользователю 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 опцию, которая добавляет пользователя к текущему дополнительному списку группы.