2017-07-22 1 views
1

Die gesamte Dokumentation, die ich untersucht habe, scheint darauf hinzuweisen, dass der Name sowohl in Aliasen als auch in Shell-Funktionen keine Leerzeichen enthalten darf.Wie alias einen Befehl mit Leerzeichen? (Oder eine Shell-Funktion)

Was ich versuche, ist es schwieriger für andere Admins (als root), einen Befehl gegen unsere Pass-Implementierung (doc hier: https://www.passwordstore.org/) auszuführen. Es wäre immer noch möglich, aber ich hatte gehofft, einen Befehl wie "pass rm $ anyValueTheyInput" und alias zu sagen, sagen "Echo" Das kannst du nicht tun ". Natürlich sind sie Admins und sie können ihre Aliase ändern, aber es würde hoffentlich verhindern, dass Passwörter versehentlich entfernt werden.

Ist das in BASH möglich? Diese werden alle auf RHEL- oder Centos-Boxen sein.

Antwort

4

In bash ist es nicht möglich, ganze Befehle mit Argumenten zu vervollständigen (wenn es überhaupt möglich ist).

Was können Sie tun, ist eine pass Funktion erstellen, die alle unerwünschten Argument Packs fängt und leitet alle anderen Argument packt zu command pass:

pass() 
{ 
    if [ rm = "$1" ]; then 
     >&2 printf '%s\n' "You can't do that" 
     return 1 
    fi 
    #more checks... ? 
    #... 
    #forward the sanitized argument pack into the actual pass binary/script 
    command pass "[email protected]" 
} 
Verwandte Themen