Dies ist der Befehl super, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann
PROGRAMM:
NAME/FUNKTION
super – Befehle ausführen setuid root.
ZUSAMMENFASSUNG
So führen Sie einen Befehl aus:
super [ -r Anforderungspfad] Befehl [ args ]
super [ -r Anforderungspfad] -o Weg [ args ]
Befehl [ args ]
So listen Sie verfügbare Befehle auf:
super [-H|-f] [-S]
Für Nutzungs- und/oder Versionsinformationen:
super [-h] [-V]
Zum Debuggen und Entwickeln:
super -b
super -c [ Superdatei ]
super [-d|-D|-t] [-S] [MasqOptions] [-H|-f|Befehl...]
MasqOptions:
-F Datei
-T hh:mm/Tagesname
-G gid
-U uid
-M Mach
BESCHREIBUNG
Super ermöglicht es bestimmten Benutzern, Skripte (oder andere Befehle) auszuführen, als wären sie Root;
oder es kann zuvor die UID, GID und/oder zusätzliche Gruppen pro Befehl festlegen
den Befehl ausführen. Es soll eine sichere Alternative zum Setzen von Skripten sein
Wurzel. Super ermöglicht es normalen Benutzern auch, Befehle zur Ausführung durch andere bereitzustellen. diese
Führen Sie es mit der UID, GID und den Gruppen des Benutzers aus, der den Befehl anbietet.
Super konsultiert ein ``super.tab'' Datei, um zu sehen, ob der Benutzer berechtigt ist, die angeforderte Aktion auszuführen
Befehl. Wenn die Erlaubnis erteilt wird, super wird ausführen pgm [ args ], wo pgm ist das Programm
das hängt damit zusammen Befehl. (Root darf standardmäßig ausgeführt werden, kann aber
wird weiterhin verweigert, wenn eine Regel root ausschließt. Normalen Benutzern ist die Ausführung durch nicht gestattet
Ursprünglich.)
Die häufigste Eintragsart in a super.tab Dateipaare ein einfaches Befehl mit einem pgm Pfad.
Aber tatsächlich ist der Befehl in der super.tab Datei wird tatsächlich als Muster behandelt, und für
Ein vom Benutzer eingegebener Befehl, der diesem Muster entspricht, verursacht das zugehörige pgm ermordet werden.
Wenn die aufgeführten pgm enthält ein Sternchen, dann wird das Sternchen durch den Befehl ersetzt
vom Benutzer eingegeben werden. Eine Möglichkeit hierfür besteht darin, jedes Programm in einem bestimmten Verzeichnis abzulegen
von einem Benutzer ausgeführt werden. Wenn der Eintrag beispielsweise die Befehls-/PGM-Paare enthält
Befehlsmuster Mentessa for Good
scripts/* → /usr/local/super/*
* → /usr/local/somedir/*
dann sind die gemachten Übersetzungen
Benutzer Befehl Ausführung von Mentessa for Good
scripts/xyz → /usr/local/super/scripts/xyz
xyz → /usr/local/somedir/xyz
Einige Befehle können erst ausgeführt werden, nachdem der Benutzer sein Passwort eingegeben hat. Diese Befehle
kann dann mehrmals ausgeführt werden, bis zu einem bestimmten Zeitpunkt das Kennwort abgelaufen ist
muss neu eingegeben werden. Die Liste der kennwortpflichtigen Befehle und das Kennwort
Dauern werden in derselben Datei festgelegt, in der die gültigen Benutzer für jeden Befehl aufgezeichnet werden.
If Befehl ist ein symbolischer Link (oder auch ein fester Link) zum super Programm eingeben und dann eingeben
% Befehl args
entspricht dem Tippen
% super Befehl args
(Die Befehl darf nicht sein super, oder auch super erkennt nicht, dass es über a aufgerufen wird
Verknüpfung.)
Super Ohne Argumente wird die Liste der Befehle angezeigt, die von ausgeführt werden können
Benutzer.
Aus Sicherheitsgründen werden vor der Ausführung folgende Vorsichtsmaßnahmen getroffen:
(a) alle Deskriptoren außer 0,1,2 sind geschlossen;
(b) alle Umgebungsvariablen des Benutzers werden verworfen, außer TERM, LINES und
SÄULEN. Wenn TERM andere Zeichen als {-/:+._a-zA-Z0-9} enthält, ist dies der Fall
verworfen. Wenn LINES oder COLUMNS andere Zeichen als [0-9] enthalten, ist dies der Fall
verworfen. Hinzu kommen sinnvolle Werte für:
BENUTZER und LOGNAME: Beide sind auf den Benutzernamen eingestellt, der der tatsächlichen UID des Benutzers zugeordnet ist
Programm läuft unter super;
HOME: Auf das Anmeldeverzeichnis des ausführenden Benutzers festlegen super;
ORIG_USER, ORIG_LOGNAME, ORIG_HOME: die Werte von USER, LOGNAME und HOME
Verweisen Sie auf den Benutzer, der aufgerufen hat super. (Diese Werte werden berechnet von super,
und sind nicht die vom Aufrufer festgelegten Werte und stellen daher eine zuverlässige Beschreibung dar
des Anrufers. Dies sind normalerweise die gleichen Werte wie USER, LOGNAME und
HOME, aber sie werden sich unterscheiden, wenn der Superbefehl vorher UID oder GID ändert
Ausführen des Programms.);
IFS: auf Leerzeichen, Tab, neue Zeile setzen;
PFAD: eingestellt auf /Behälter:/ usr / bin.
SUPERCMD: eingestellt auf Befehl.
zusätzliche Umgebungsvariablen, wie in angegeben super.tab Datei (siehe unten).
(c) die gesamte Signalverarbeitung wird auf den Standardwert zurückgesetzt.
If Super Wird ohne Argumente ausgeführt, werden die Befehle ausgegeben, die der Benutzer ausführen kann
ausführen, ein Befehl pro Zeile. Super -H Gibt eine ausführliche Beschreibung jedes Befehls aus
die der Benutzer ausführen kann.
Das CmdPat ist das Befehlsmuster und Vollständigen Pfad ist der vollständige Pfad, der ausgeführt wird.
Die super.tab-Datei kann Anfangsargumente angeben, die allen vom Benutzer bereitgestellten vorangestellt werden
Argumente; Diese Argumente, falls vorhanden, werden nach dem gedruckt Vollständigen Pfad Spalte.
Benutzerdefinierte Super.tab Mappen
Normale Benutzer können ihre eigenen Superdateien bereitstellen. Dadurch können Benutzer gut kontrolliert geben
setuid/setgid-Zugriff auf ihre Programme: Der Benutzer, der das Programm anbietet, erhält die Zusicherung
von sicheren IFS-Einstellungen, sicheren Umgebungsvariableneinstellungen usw.; und der Benutzer, der ausführt
Das Programm weiß, dass es unter der UID und GID des anbietenden Benutzers ausgeführt wird. Wenn ein
Befehl wird in das Formular eingetragen
super Benutzername:cmd
super schaut nach cmd in der Datei .supertab, im Home-Verzeichnis des Kontos Benutzername.
Das cmd wird unter Verwendung der UID, GID und zusätzlichen Gruppen (falls vorhanden) des Benutzers ausgeführt
Benutzername.
Die üblichen Super-Optionen (wie z -H) kann auf die .supertab-Datei eines Benutzers angewendet werden. Für
Hilfeinformationen zu einem Befehl können beispielsweise wie folgt abgerufen werden:
super -H Benutzername:cmd
Ebenso Hilfeinformationen zu allen BenutzernameDie Befehle von können erhalten werden mit:
super -H Benutzername:
Links zu benutzerspezifischen Befehlen können auf ähnliche Weise wie beim Erstellen von Symlinks erstellt und verwendet werden
zu super selbst. Wenn Befehl ist ein symbolischer Link zur .supertab-Datei eines Benutzers, und zwar
.supertab-Datei ist
(a) ausführbar und
(b) beginnt mit
#! /pfad/zu/super -o
dann sind die folgenden Paare völlig gleichwertig:
% super Benutzername:Befehl
% Befehl
Besitzt das #!-line länger als die typische Unix-Grenze von 32 Zeichen wäre, können Sie
Starten Sie stattdessen die .supertab-Datei mit:
#! / Bin / sh
# Behalten Sie diesen Backslash bei -> \
exec /long/path/to/the/super/executable -o $0 ${1+"$@"}
(Das Obige macht sich die Tatsache zunutze, dass Super Kommentare als Backslash erlaubt.)
Fortsetzung, aber die Shell nicht.)
Die benutzerspezifische .supertab-Verknüpfung funktioniert wie folgt: if /pfad/zu/xyz ist ein symbolischer Link zu einigen Benutzern
.supertab-Datei, und die .supertab-Datei beginnt mit #! /pfad/zu/super -o, dann die Schale
wird aufrufen super mit Argumenten so etwas wie
super -o /pfad/zu/xyz [Argumente]
Super prüft das /pfad/zu/xyz ist ein Link zu einer echten .supertab-Datei und dreht sich dann immer um
der letzte Teil des Weges (hier xyz) in den auszuführenden Befehl ein.
** Sicherheit Warnung **
Beachten Sie, dass Sie, wenn Sie Symlinks zu einer .supertab-Datei pro Benutzer verwenden, darauf vertrauen müssen, dass die
Die .supertab-Datei führt tatsächlich einen Superbefehl aus, anstatt etwas Unangenehmes zu tun.
Das ist, weil super selbst wird erst aufgerufen, wenn die Shell die .supertab-Datei geöffnet hat
und getan, was auch immer die .supertab-Datei vorschreibt. Im Gegensatz dazu der direkte Befehl
super Benutzername:cmd beinhaltet keine Shell-Verarbeitung der .supertab-Datei.
REGULAR OPTIONAL
-V Drucken Sie die Super-Versionsnummer aus.
-S Wann super fordert zur Eingabe eines Passworts auf. Dies erzwingt die Eingabe einer stdin-Eingabeaufforderung, auch wenn dies der Fall ist
Standard (/dev/tty) ist lesbar und beschreibbar. Hinweis: Dies gilt nur für Passwort-
Typauthentifizierung – also der ältere Typ der Authentifizierung super
fordert selbst zur Eingabe des Passworts auf; Die PAM-Authentifizierung wird vom PAM Ihres Systems übernommen
Module.
-f Dadurch wird eine Liste der verfügbaren Befehle in einem knappen, für die Verarbeitung nützlichen Format angefordert
durch Skripte. (-f steht für Fakten, wie in „nur die Fakten, meine Dame“).
-rreqpath
Weist Super an, einen Fehler zu generieren, wenn das Programm damit verknüpft ist Befehl ist nicht
reqpath. Dies hilft Ihnen beim Schreiben von Skripten, die sicherstellen, dass Super nur das ausführt, was
Sie erwarten, dass es ausgeführt wird. Siehe Schritt 4 des Abschnitts „Erstellen von Superskripten“.
für ein Anwendungsbeispiel.
-H Ursachen super um eine ausführliche Liste der für den Benutzer verfügbaren Befehle auszudrucken. Es
druckt sowohl die Befehl und seine Übersetzung in ein Programm pgm. Wenn das angezeigt wird pgm
Enthält ein Sternchen, dann wird das tatsächlich ausgeführte Programm durch Ersetzen des gebildet
Sternchen mit dem Befehl vom Benutzer eingegeben werden. Die folgenden Beispiele zeigen das
Arten von Linien, die mit dem angezeigt werden können -H Option:
Beispiel 1.
super Geschicklichkeit → /usr/local/bin/skill
Typing super Geschicklichkeit wird ausführen /usr/local/bin/skill.
Beispiel 2.
super {lp*} → / usr / bin /*
Dieses Beispiel enthält Sternchen auf der linken und rechten Seite. Die linke Seite
zeigt das gültige Muster an, mit dem Sie übereinstimmen müssen, um den rechts gezeigten Befehl auszuführen.
Handseite. Normalerweise hat die rechte Seite kein Sternchen, sondern nur einen vollständigen Pfad zu a
Befehl zum Ausführen. Wenn da is Ist ein Sternchen vorhanden, wird es durch den Befehl ersetzt
Sie eingegeben haben, und bilden so den tatsächlich ausgeführten Befehl. Also, wenn Sie tippen
super lpxxx (woher xxx ist eine beliebige Zeichenfolge), super wird ausführen /usr/bin/lpxxx.
Beispiel 3.
super {co*} → /usr/bin/compress
Das Sternchen auf der linken Seite bedeutet, dass Sie teilnehmen können super coxxx (woher xxx is
eine beliebige Zeichenfolge), aber da die rechte Seite kein Sternchen enthält, coxxx werden wir
immer ausführen /usr/bin/compress.
-t Dadurch wird der „Test“-Modus aktiviert. Es werden alle normalen Prüfungen durchgeführt, mit Ausnahme derjenigen, die erforderlich sind
Benutzereingaben (Passwörter und Variablen, die der Benutzer eingeben muss), werden jedoch nicht ausgeführt
irgendein Befehl. Stattdessen wird es mit dem Statuscode 0 beendet, wenn die Ausführung des Befehls in Ordnung ist.
sonst 1. Alle normalen Fehlermeldungen werden auf die übliche Weise generiert, aber nein
Es werden spezielle Debug-Meldungen generiert. Somit ist es ein nützliches Mittel für ein Skript
Überprüfen Sie, ob ein Befehl wahrscheinlich funktioniert und es daher sinnvoll ist, super auszuführen. Lasst uns
Angenommen, ein Skript /usr/local/bin/foo möchte sich selbst mit aufrufen super foo (Siehe
Im Abschnitt „Erstellen von Superskripten“ erfahren Sie, wie Sie dabei Endlosschleifen vermeiden
das!) Das Skript kann das verwenden -r Möglichkeit, dies sicherzustellen super foo bezieht sich auf
korrekte Datei, und es kann den Testmodus verwenden, um dies sicherzustellen super foo ist ein gültiger Befehl:
prog=`Basisname $0`
/usr/local/bin/super -t -r $0 $prog
Fall $? In
0 ) exec /usr/local/bin/super -t -r $0 $prog ;;
* ) echo „Super $prog funktioniert nicht!“
... Ergreifen Sie also entsprechende Maßnahmen ...
;;
esac
DEBUGGEN UND ENTWICKLUNG OPTIONAL
Diese Optionen sind beim Erstellen und Debuggen nützlich super.tab Dateien. Sie haben wenig bzw
Kein Wert für den alltäglichen Benutzer. Mit Ausnahme der -b Optional können sie kombiniert werden
mit den regulären Optionen oben.
-b Geben Sie die Namen und Werte der integrierten Variablen aus und beenden Sie den Vorgang. Nützlich zum
Administratoren erfahren, mit welchen Werten integrierte Variablen getestet werden können.
-c[Superdatei]
Tells super um die Syntax der Einträge im zu überprüfen Superdatei, aber nicht auszuführen
irgendein Befehl. Wenn nein Superdatei gegeben ist, das Regelmäßige super.tab wird geprüft. Der Ausgang
Code ist 0, wenn die Syntax der Datei in Ordnung ist; andernfalls ist der Exit-Code 1 (und ein Fehler).
Nachricht wird gedruckt). Nachdem Sie eine Superdatei geändert haben, sollten Sie diese Option verwenden
Überprüfen Sie die Integrität.
Beachten Sie, dass super -c ist keine vollständige Überprüfung, ob Sie einen Eintrag korrekt eingerichtet haben,
weil Sie syntaktisch gültige Einträge erstellen können, die nicht genau das tun, was Sie möchten
wollen. Daher sollten Sie auch verwenden super -d cmd um sicherzustellen, dass der Befehl
Die von Ihnen eingegebenen Befehle werden mit den korrekten Argumenten uid, gid, umask usw. ausgeführt
auf.
-d Dadurch wird der Debug-Modus aktiviert. In diesem Fall werden (a) Debugging-Informationen gedruckt
Überprüfen eines Benutzers auf Gültigkeit und (b) der Befehl wird nicht tatsächlich ausgeführt. Nützlich
um zu prüfen, ob ein neuer Eintrag in der super.tab Datei (siehe unten) wurde bearbeitet
richtig.
-D Das gleiche wie -d, und gibt außerdem weitere Informationen zu den in definierten Variablen aus super.tab
Datei.
-FSuperdatei
Diese Option wird nur zum Debuggen verwendet und ermöglicht das vorherige Testen einer Superdatei
installieren. Es wird kein Befehl tatsächlich ausgeführt. Es schaltet auch ein Nicht-Gerät ein.
Ausführliches Debuggen, das die übereinstimmenden Befehlsnamen und Gründe für die Annahme von oder anzeigt
den Befehl ablehnen.
-Ggid Diese Option wird auch zum Debuggen und Tellen verwendet super sich so verhalten, als wäre es der Anrufer
Gruppen-ID oder Gruppenname war gid. Es enthält die gleichen Einschränkungen und Debug-Informationen wie
die Option -F.
-Uuid Diese Option wird auch zum Debuggen und Tellen verwendet super sich so verhalten, als wäre es der Anrufer
UID oder Benutzername war uid. Es enthält die gleichen Einschränkungen und Debug-Informationen wie -F
.
-MMach Diese Option wird auch zum Debuggen und Tellen verwendet super sich so verhalten, als wäre es der Anrufer
Host (Maschine) war Mach. Es enthält die gleichen Einschränkungen und Debug-Informationen wie -F
.
-Thh:mm/Tagesname
Diese Option wird auch zum Debuggen und Tellen verwendet super so tun, als wäre die Hinrichtung
Zeit ist hh:mm/Tagesname. Damit können Sie überprüfen, ob eine Zeitangabe im
super.tab Die Datei schränkt die Ausführung ordnungsgemäß ein. Es gelten die gleichen Einschränkungen
und Debug-Informationen als Option -F.
Nutzen Sie die Dienste von onworks.net super online