Sudo, su & scripts: verschil tussen versies
(→sudo) |
|||
Regel 1: | Regel 1: | ||
<code>sudo</code> Staat voor ''super user do'' en da's een manier om een commando uit te voeren als beheerder. <code>su</code> Staat voor ''substitute user'': Een manier om de actuele inlogprompt van eigenaar te laten veranderen. In den beginne allemaal duidelijk. Niet dus. | <code>sudo</code> Staat voor ''super user do'' en da's een manier om een commando uit te voeren als beheerder. <code>su</code> Staat voor ''substitute user'': Een manier om de actuele inlogprompt van eigenaar te laten veranderen. In den beginne allemaal duidelijk. Niet dus. | ||
+ | |||
+ | == sudo timeout == | ||
+ | |||
+ | Aanpassen: <code>sudo visudo</code> | ||
+ | |||
+ | Voorbeeld (timeout van 8 uur): Deze regel is nu aangepast: | ||
+ | |||
+ | Defaults env_reset, timestamp_timeout=480 | ||
== sudo cd == | == sudo cd == |
Versie van 1 mei 2018 15:02
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 timeout
Aanpassen: sudo visudo
Voorbeeld (timeout van 8 uur): Deze regel is nu aangepast:
Defaults env_reset, timestamp_timeout=480
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 environment variables. Die vind je in
/etc/environment
- Als je daar de PATH-variabele bijwerkt, dan werkt het commando
su MyScript.sh
.
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"
Vandaar de foutmelding. Uiteraard kun je dit pad aanpassen, maar ik heb de indruk dat dat niet verstandig is. Alternatieve oplossingen:
- Gebruik
sudo
in het script zelf, waar dat nodig is - Getest, en het werkt - Gebruik
su
- Gebruik absolute padnamen.