Sudo, su & scripts: verschil tussen versies

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen
Regel 18: Regel 18:
 
  sudo MijnScript.sh  # Werkt niet!
 
  sudo MijnScript.sh  # Werkt niet!
 
  su MijnScript.sh    # Werkt niet!
 
  su MijnScript.sh    # Werkt niet!
 +
 +
Dat komt omdat ''gebruikers'', ''sudo'' en ''su'', alle drie andere mechanismes hebben tav. de PATH-variabele.
 +
 +
=== Gebruikers ===
 +
 +
PATH-variabele specificeren en aanpassen in <code>.bashrc</code> - Nie moeilijk!
 +
 +
=== su ===
 +
 +
''su'' Maakt gebruik van ''sytem-wide enivornment variables''. Die vind je in <code>/etc/environment</code>
 +
 +
=== sudo ===
 +
 +
sudo Has a policy of resetting the environment and setting a secure path. It is enabled by default:
 +
 +
<pre>
 +
/etc/sudoers:
 +
 +
Defaults  env_reset
 +
Defaults  secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
 +
</pre>
  
 
== Bronnen ==
 
== Bronnen ==

Versie van 9 nov 2016 15:24

sudo Staat voor super user do en da's een manier om een commando uit te voeren als beheerder. su Staat voor substitute user: Een manier om de actuele inlogprompt van eigenaar te laten veranderen. In den beginne allemaal duidelijk. Niet dus.

sudo cd

Het commando sudo cd ... werkt niet: Na dit commando, is de werkdirectory immers aangepast, en mogelijk naar een locatie waar de gewone gebruiker geen rechten toe heeft.

De oplossing zou zijn:

sudo -i

PATH

Ik heb een map met eigen scripts, oorspronkelijk op /opt/scripts, maar recentelijk verplaatst naar /home/strompf/Dropbox/.roaming/opt/scripts. So far, so good.

Maar niet zo good:

MijnScript.sh        # Werkt prima
sudo MijnScript.sh   # Werkt niet!
su MijnScript.sh     # Werkt niet!

Dat komt omdat gebruikers, sudo en su, alle drie andere mechanismes hebben tav. de PATH-variabele.

Gebruikers

PATH-variabele specificeren en aanpassen in .bashrc - Nie moeilijk!

su

su Maakt gebruik van sytem-wide enivornment variables. Die vind je in /etc/environment

sudo

sudo Has a policy of resetting the environment and setting a secure path. It is enabled by default:

/etc/sudoers:

Defaults  env_reset
Defaults  secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

Bronnen