Вместо использования бита SUID вы можете разрешить sudo без пароля для этой одной команды (и этого конкретного пользователя) в вашем /etc/sudoers
или /etc/sudoers.d/ifconfig
:
youruser yourhost = (root) NOPASSWD: /sbin/ifconfig lo0 alias *
Я использую Mac OS X El Capitan. Из-за Eclipse Che, мне нужны эти строки на.bash_profile
export DOCKER_VM_IP=$(docker run --rm --net host alpine sh -c "ip a show eth0" | grep 'inet ' | cut -d/ -f1 | awk '{ print $2}') sudo ifconfig lo0 alias $DOCKER_VM_IP
Досадно писать пароль каждый раз, когда я открываю новое окно терминала из-за sudo
команды. Какой может быть лучший подход, чтобы это исправить?
Спасибо,
Вместо использования бита SUID вы можете разрешить sudo без пароля для этой одной команды (и этого конкретного пользователя) в вашем /etc/sudoers
или /etc/sudoers.d/ifconfig
:
youruser yourhost = (root) NOPASSWD: /sbin/ifconfig lo0 alias *
IMPORTANT: If you find a security issue with this procedure, or there is a better and secure way to do it, please, comment. I would appreciate it.
Following the advice from @AFH's comment, I did this and it worked:
First, I copied ifconfig
to a new folder.
$ cd /Users/username $ mkdir sbin $ sudo chown username:staff ./sbin $ sudo chmod 700 ./sbin $ cd sbin $ cp /sbin/ifconfig .
After that, I applied the SETUID
$ sudo chown root:wheel ./ifconfig $ sudo chmod +s ./ifconfig
Finally, I modified .bash_profile
, removing the sudo
command
export DOCKER_VM_IP=$(docker run --rm --net host alpine sh -c "ip a show eth0" | grep 'inet ' | cut -d/ -f1 | awk '{ print $2}') ~/sbin/ifconfig lo0 alias $DOCKER_VM_IP