Можно ли добавлять пользователей в файл sudoers через оболочку script? Я смотрю вокруг, все еще ничего не могу найти.
Добавление пользователей в sudoers через оболочку script
Ответ 1
Вы можете просто echo
(с повышенными привилегиями, конечно) непосредственно в файле /etc/sudoers
:
sudo -i
echo 'nickw444 ALL=(ALL:ALL) ALL' >> /etc/sudoers
# ^^
# tab
(обратите внимание на символ табуляции между именем пользователя и первым ALL
)
Или, для a script:
#!/bin/bash
# Run me with superuser privileges
echo 'nickw444 ALL=(ALL:ALL) ALL' >> /etc/sudoers
Затем сохраните до somefile.sh
, chmod a+rx
и запустите sudo ./somefile.sh
из окна терминала.
Чтобы добавить нескольких пользователей, измените script на это:
#!/bin/bash
while [[ -n $1 ]]; do
echo "$1 ALL=(ALL:ALL) ALL" >> /etc/sudoers;
shift # shift all parameters;
done
Затем запустите script следующим образом (если вы сохранили его как addsudousers.sh
):
sudo ./addsudousers.sh bob joe jeff
то есть разделенные пробелами.
Чтобы прочитать имена из файла:
[email protected] ~ $ sudo ./addsudousers.sh `cat listofusers.txt`
listofusers.txt
также должен быть разделен пробелом.
Изменить: Jappie Kirk правильно указывает, что вы не можете напрямую вызвать sudo echo ... >> /etc/sudoers
, потому что перенаправление >>
обрабатывается оболочка, которая к этому моменту опустила привилегии суперпользователя. Однако, если вы запустите script, который содержит echo ... >> /etc/sudoers
, а сам script имеет привилегии суперпользователя, все должно работать нормально.
Ответ 2
Нет, прямое эхо не будет работать, вы должны запустить его в подоболочке. Вместо этого попробуйте:
sudo sh -c "echo \"group ALL=(user) NOPASSWD: ALL\" >> /etc/sudoers"
Ответ 3
Существует также группа sudo
, и вы можете добавить в нее пользователей (для обычных конфигураций /etc/sudoers
)
adduser [имя пользователя] sudo
Ответ 4
в Использование Red Hat на основе:
su - root
и введите свой пароль, затем:
echo 'YOURUSERNAME ALL=(ALL:ALL) ALL' >> /etc/sudoers
чтобы добавить пользователя в файл sudoers.
Ответ 5
Войдите в систему с правами пользователя root. Пользователь root является единственным, у кого есть привилегия для добавления нового пользователя.
После входа в систему вы можете попробовать следующие команды ниже:
-
Создайте нового пользователя.
adduser [имя пользователя]
-
Добавить пароль для пользователя
passwd [имя пользователя]
-
Предоставить пользователю права root Отредактируйте файл visudo, просто набрав
введите здесь код
Найдите следующую строку кода: root ALL = (ВСЕ) ВСЕ
Затем добавьте следующий код:
[username] ALL=(ALL) ALL
Оригинальное сообщение будет найдено по этой ссылке Centos 6 - Создание пользователя sudoers
Ответ 6
Другие ответы, такие как размножение подоболочки, будут работать, но могут не работать, если вы хотите использовать экологические вары. Одна из альтернатив, которую я нашел, сыграла очень хорошо для меня:
echo "%<user> ALL=(ALL) ALL" | sudo tee -a /etc/sudoers > /dev/null
Сказав это, задним числом 20/20... Если вы модифицируете sudoers через script, а не через visudo, я бы серьезно рекомендовал создать резервную копию с правильными разрешениями и содержимым файлов сначала, так как вы можете потерять доступ к любому sudo права без pkexec, физический доступ или перезагрузка и т.д.
sudo cp /etc/sudoers /etc/sudoers.bak
Ответ 7
Одна строка для создания пользователя с паролем и в группе sudo.
useradd -p $ (OpenSSL PASSWD -1 ПАРОЛЬ) USERNAME -s/бен/Баш -G Судо