Sudo, su & scripts: verschil tussen versies
(→sudo) |
(→sudo) |
||
(11 tussenliggende versies door dezelfde gebruiker niet weergegeven) | |||
Regel 1: | Regel 1: | ||
− | <code>sudo</code> | + | Op het moment dat ik de executie van scripts combineer met <code>sudo</code> of <code>su</code>, krijg ik allerlei rare effecten. Tijd om in het konijnenhol af te dalen! |
== sudo cd == | == sudo cd == | ||
Regel 11: | Regel 11: | ||
== PATH == | == PATH == | ||
− | + | In <code>/home/jeroen/Dropbox/Scripts</code> bewaar ik allerlei eigen scripts, bv. rondom webserverbeheer. Die locatie heb ik toegevoegd aan <code>$PATH</code>. Toch gaat dat niet altijd goed: | |
− | + | <pre> | |
− | + | MijnScript.sh # Werkt prima | |
− | + | sudo MijnScript.sh # Werkt niet! | |
− | + | su MijnScript.sh # Werkt niet! | |
− | + | </pre> | |
Dat komt omdat ''gebruikers'', ''sudo'' en ''su'', alle drie andere mechanismes hebben tav. de PATH-variabele. | Dat komt omdat ''gebruikers'', ''sudo'' en ''su'', alle drie andere mechanismes hebben tav. de PATH-variabele. | ||
− | === | + | === Reguliere gebruikers === |
− | PATH-variabele specificeren en aanpassen in <code>.bashrc</code> - | + | Voor reguliere gebruikers, kun je de PATH-variabele specificeren en/of aanpassen in <code>.bashrc</code> - Werkt prima. |
=== su === | === su === | ||
− | + | <code>su</code> Maakt gebruik van ''sytem-wide environment variables''. Die vind je in <code>/etc/environment</code> (het bestand - niet de map!). Voorbeeld van wat ik daar zoal aantrof in een vrij nieuwe Linux Mint-installatie (juli 2020): | |
− | + | ||
+ | <pre> | ||
+ | PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games" | ||
+ | </pre> | ||
+ | |||
+ | Dit heb ik als volgt aangepast: | ||
+ | |||
+ | <pre> | ||
+ | PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/strompf/Dropbox/Scripts" | ||
+ | </pre> | ||
+ | |||
+ | Het commando <code>su MyScript.sh</code> werkt nu. | ||
=== sudo === | === sudo === | ||
Regel 41: | Regel 52: | ||
</pre> | </pre> | ||
− | + | In juli 2020 heb ik dit aangepast middels <code>sudo visudo</code> - Werkt prima. | |
+ | |||
+ | == Zie ook == | ||
− | * | + | * [[Su]] |
− | * | + | * [[Sudo]] |
− | |||
== Bronnen == | == Bronnen == |
Huidige versie van 21 jul 2020 om 17:50
Op het moment dat ik de executie van scripts combineer met sudo
of su
, krijg ik allerlei rare effecten. Tijd om in het konijnenhol af te dalen!
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
In /home/jeroen/Dropbox/Scripts
bewaar ik allerlei eigen scripts, bv. rondom webserverbeheer. Die locatie heb ik toegevoegd aan $PATH
. Toch gaat dat niet altijd goed:
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.
Reguliere gebruikers
Voor reguliere gebruikers, kun je de PATH-variabele specificeren en/of aanpassen in .bashrc
- Werkt prima.
su
su
Maakt gebruik van sytem-wide environment variables. Die vind je in /etc/environment
(het bestand - niet de map!). Voorbeeld van wat ik daar zoal aantrof in een vrij nieuwe Linux Mint-installatie (juli 2020):
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
Dit heb ik als volgt aangepast:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/strompf/Dropbox/Scripts"
Het commando su MyScript.sh
werkt nu.
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"
In juli 2020 heb ik dit aangepast middels sudo visudo
- Werkt prima.