У меня есть сценарий в /etc/profile.d/script.sh
это содержит 3 строки:
ifconfig ens5f5 down
hw ether xx:xx:xx:xx:xx:xx
ifconfig ensf5f
Я должен запустить этот скрипт как корень, когда любой из пользователей входит в систему.
Здесь записан это все сценарии в /etc/profile.d/script.sh
выполняются как корень: https://stackoverflow.com/questions/47997365/execute-scripts-in-etc-profile-d-at-startup-as-root
Я полагаю, что это не верно для Ubuntu 18.04, потому что я получаю ошибки должное отсутствие полномочий.
Если Вы не понимаете те команды, я пытаюсь постоянно изменить MAC-адрес. Я знаю, тот корректный путь состоял бы в том, чтобы изменить файл /etc/network/interfaces
, но я испытал достаточно затруднений, настраивающих тот файл.
/etc/profile*
сценарии не работают как корень. Те сценарии должны быть получены оболочкой входа в систему, работающей при Вашем пользователе вместо этого.
Однако как Вы упомянули, Ваш подход сценария не является хорошим способом изменить MAC-адрес. Я опишу возможное решение заставить сценарий работать в конце так или иначе.
Ubuntu начиная с 17,10 использования netplan
настраивать сети, которые игнорируют /etc/network/interfaces
файл используется старым ifupdown
. Netplan настроен в /etc/netplpan/01-netcfg.yaml
вместо этого. Его содержание могло быть похожим на это для интерфейса с переопределенным MAC-адресом:
network:
version: 2
renderer: networkd
ethernets:
enp0s25:
macaddress: 12:34:56:78:AB:CD
dhcp4: true
Также см. документацию для macaddress
ключ конфигурации https://netplan.io/reference#common-properties-for-all-device-types
Вы могли позволить всем запускать скрипт с этими командами как корень, использующий без пароля sudo
- удостоверьтесь, что Вы выполняете эти шаги правильно, иначе можно закончить с поврежденным sudo
команда или уязвимость расширения полномочий:
/usr/local/bin/mac-change.sh
). Удостоверьтесь, что безопасно запустить этот скрипт как корень в любое время.sudo chown root: /usr/local/bin/mac-change.sh
)sudo chmod 755 /usr/local/bin/mac-change.sh
)Отредактируйте свой sudoers файл, чтобы позволить всем работать просто что единственный сценарий как корень без пароля путем ввода sudo visudo
открыть sudoers редактора и добавляющий эту строку ниже близости нижняя часть файла:
ALL ALL=(root) NOPASSWD: /usr/local/bin/mac-change.sh
Теперь все должны смочь работать sudo mac-change.sh
или sudo /usr/local/bin/mac-change.sh
не имея необходимость вводить их пароль. Можно затем включать это как строку в /etc/profile
или новый сценарий в /etc/profile.d
.