Przenoszenie polecenia sudo z bash_profile

1

Używam Mac OS X El Capitan. Z powodu Eclipse Che potrzebuję tych linii.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

Pisanie hasła za każdym razem, gdy otwieram nowe okno terminala, jest denerwujące z powodu sudopolecenia. Jakie może być lepsze podejście do rozwiązania tego problemu?

  • Jednym z pomysłów jest przeniesienie tych linii w inne miejsce, ale gdzie?
  • Jakiś inny pomysł?

Dzięki,

JonDoe297
źródło
Używam Linuksa, więc nie mogę przetestować następujących elementów, ale możesz spróbować użyć bitu SETUID na ifconfig, jak w sudo chmod -v +04000 $(which ifconfig). Jeśli OSX na to pozwala, powinno to dawać uprawnienia roota przy każdym ifconfiguruchomieniu. Jeśli to nadmiernie zmniejsza bezpieczeństwo, możesz skopiować ifconfigdo lokalnego, prywatnego katalogu, dodać SETUID do kopii i użyć go w bashpliku startowym: oczywiście musisz to zrobić jako root.
AFH

Odpowiedzi:

2

Zamiast używać bitu SUID, możesz zezwolić na sudo bez hasła dla tego jednego polecenia (i tego konkretnego użytkownika) w twoim /etc/sudoerslub /etc/sudoers.d/ifconfig:

youruser yourhost = (root) NOPASSWD: /sbin/ifconfig lo0 alias *
KMZ
źródło
0

WAŻNE: jeśli znajdziesz problem z bezpieczeństwem w tej procedurze lub istnieje lepszy i bezpieczny sposób, prosimy o komentarz. Doceniłbym to.

Po otrzymaniu porady z komentarza @ AFH zrobiłem to i zadziałało:

Najpierw skopiowałem ifconfigdo nowego folderu.

$ cd /Users/username
$ mkdir sbin
$ sudo chown username:staff ./sbin
$ sudo chmod 700 ./sbin
$ cd sbin
$ cp /sbin/ifconfig .

Następnie zastosowałem SETUID

$ sudo chown root:wheel ./ifconfig
$ sudo chmod +s ./ifconfig

W końcu zmodyfikowałem .bash_profile, usuwając sudopolecenie

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
JonDoe297
źródło