Kurztipp: sudo und vi(m)
System-Administratoren kennen die Anforderung - für eine bestimmte Applikation wird ein Server bereitgestellt. Die Kollegen, die die Applikation betreuen, benötigen die Berechtigung, Applikations-relevante Konfigurationsdateien anzupassen. Oftmals kommt hier sudo
mit entsprechenden Regeln zum Einsatz, um das Editieren der Dateien zu ermöglichen und anschließend die Applikation anzuweisen, ihre Konfiguration neu einzulesen.
Oftmals wird hier vergessen, dass vi
auch in der Lage ist, Kommandos auszuführen, bzw. eine Shell zu starten. Wenn es erlaubt ist, vi unter einem anderen Benutzerkontext zu starten, so kann kinderleicht eine Shell gestartet und der Account gekapert werden:
1$ runuser -l su-application -c vi
2ESC
3:!whoami
4su-application
5
6Press ENTER or type command to continue
7:!bash
8$ ...
Wenn vi mittels sudo berechtigt werden muss, dann empfiehlt es sich, restricted vi zu verwenden. Dieser verfügt nicht über die Funktion Kommandos und Shells zu starten. Er gehört meist zum Paket vim-enhanced
und stellt neue Kommandos bereit: /bin/rvi
, /bin/rvim
und /bin/rview
:
1$ rvim
2ESC
3:!bash
4E145: Shell commands not allowed in rvim