script para mudar MAC com suid não funciona

0

Eu preciso de um script que possa ser executado como um usuário que modifique o endereço MAC de eth0 . Eu criei o seguinte script:

#!/bin/bash
/etc/init.d/networking stop
ifconfig eth0 hw ether 00:50:56:98:00:19
/etc/init.d/networking start

Eu configurei a permissão setuid e atribui-a à raiz: %código% mas ainda me daria a seguinte saída quando eu corro como usuário:

$ ./ChangeMac.sh
stop: Rejected send message, 1 matched rules; type="method_call", sender=":1.100" (uid=1000 pid=6746 comm="stop networking ") interface="com.ubuntu.Upstart0_6.Job" member="Stop" error name="(unset)" requested_reply="0" destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init")
SIOCSIFHWADDR: Operation not permitted
start: Rejected send message, 1 matched rules; type="method_call", sender=":1.103" (uid=1000 pid=6753 comm="start networking ") interface="com.ubuntu.Upstart0_6.Job" member="Start" error name="(unset)" requested_reply="0" destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init")

Por que isso? Como posso fazer com que um usuário possa invocá-lo, mas ele é executado como root?

    
por cerr 24.05.2017 / 23:27

1 resposta

1

Se você quiser rodar este e somente este script como um usuário normal sem nenhum outro direito do sudo, ou se quiser rodá-lo com o sudo sem digitar a senha, você pode adicioná-lo aos seus sudoers.

por exemplo. sudo echo "[username] ALL = NOPASSWD: /path/to/your/script" >/etc/sudoers.d/myscript

No entanto, isso é meio que meh em segurança, pois se alguém puder editar esse script como seu usuário, ele poderá executar qualquer comando como sudo sem saber sua senha, então tome cuidado ao usá-lo.

Apenas certifique-se de que o script seja de propriedade de root e os direitos de gravação estejam apenas em seu proprietário, para que ninguém mais possa alterá-lo.

Você também pode usar chattr para garantir que ninguém possa modificar seu script:

sudo chattr +i script.sh

De man chattr :

% bl0ck_qu0te%

Afinal, basta executar sudo myscript e executá-lo com direitos de root sem solicitar uma senha.

    
por Ziazis 25.05.2017 / 00:10