Вы можете просто 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
, а сам скрипт имеет привилегии суперпользователя, все должно работать нормально.