Dit is de opdracht ksu die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator
PROGRAMMA:
NAAM
ksu - Kerberized supergebruiker
KORTE INHOUD
KSU [ doel_gebruiker ] [ -n doel_hoofd_naam ] [ -c bron_cache_naam ] [ -k ] [ -D ] [
-r tijd ] [ -pf ] [ -l levensduur ] [ -z | Z ] [ -q ] [ -e commando [ argumenten ... ] ] [ -a [
argumenten ... ] ]
VEREISTEN
Kerberos versie 5 moet zijn geïnstalleerd om ksu te kunnen compileren. Moet een Kerberos-versie 5 hebben
server draait om ksu te gebruiken.
PRODUCTBESCHRIJVING
ksu is een Kerberized-versie van het su-programma met twee missies: de ene is veilig
verander de echte en effectieve gebruikers-ID naar die van de doelgebruiker, en de andere is dat wel
een nieuwe veiligheidscontext creëren.
NOTITIE:
Voor de duidelijkheid: alle verwijzingen naar en attributen van de gebruiker die de
het programma zal beginnen met "source" (bijv. "source user", "source cache", etc.).
Op dezelfde manier beginnen alle verwijzingen naar en kenmerken van het doelaccount met
"doel".
AUTHENTIFICATIE
Om de eerste missie te vervullen, opereert ksu in twee fasen: authenticatie en
autorisatie. Het oplossen van de doel-principalnaam is de eerste stap bij verificatie.
De gebruiker kan zijn hoofdnaam opgeven met de -n optie (bijv. -n
[e-mail beveiligd]) of er wordt een standaard hoofdnaam toegewezen met behulp van een beschreven heuristiek
in het gedeelte OPTIES (zie -n keuze). De doelgebruikersnaam moet het eerste argument zijn
naar ksu; indien niet gespecificeerd is root de standaard. Als . is opgegeven, dan zal de doelgebruiker dat doen
de brongebruiker zijn (bijv. KSU .). Als de brongebruiker root is of de doelgebruiker de
brongebruiker vindt er geen authenticatie of autorisatie plaats. Anders zoekt ksu naar een
het juiste Kerberos-ticket in de broncache.
Het ticket kan voor de eindserver zijn of een ticket Granting Ticket (TGT) voor de
het domein van de doelprins. Als het ticket voor de eindserver al in de cache staat, is dat zo
gedecodeerd en geverifieerd. Als het niet in de cache staat maar de TGT wel, dan is de TGT eraan gewend
verkrijg het ticket voor de eindserver. Het eindserverticket wordt vervolgens geverifieerd. Als geen van beide
ticket bevindt zich in de cache, maar ksu is gecompileerd met de GET_TGT_VIA_PASSWD definiëren, de gebruiker
wordt om een Kerberos-wachtwoord gevraagd, dat vervolgens wordt gebruikt om een TGT te verkrijgen. Als de
gebruiker op afstand is ingelogd en geen beveiligd kanaal heeft, kan het wachtwoord zijn
blootgesteld. Als geen van beide tickets in de cache zit en GET_TGT_VIA_PASSWD is niet gedefinieerd,
authenticatie mislukt.
VERGUNNING
In deze sectie wordt de autorisatie van de brongebruiker beschreven wanneer ksu wordt aangeroepen zonder de -e
keuze. Voor een beschrijving van de -e optie, zie het gedeelte OPTIES.
Na succesvolle authenticatie controleert ksu of de doel-principal daartoe geautoriseerd is
toegang krijgen tot het doelaccount. In de thuismap van de doelgebruiker probeert ksu toegang te krijgen
twee autorisatiebestanden: .k5login(5) en .k5users. In het .k5login-bestand elke regel
bevat de naam van een opdrachtgever die geautoriseerd is om toegang te krijgen tot het account.
Bijvoorbeeld:
[e-mail beveiligd]
jqopenbaar/[e-mail beveiligd]
jqopenbaar/[e-mail beveiligd]
Het formaat van .k5users is hetzelfde, behalve dat de hoofdnaam kan worden gevolgd door een lijst met
opdrachten die de opdrachtgever mag uitvoeren (zie de -e optie in de OPTIES
sectie voor details).
Dus als de doel-principalnaam wordt gevonden in het .k5login-bestand, is de brongebruiker dat wel
geautoriseerd om toegang te krijgen tot het doelaccount. Anders kijkt ksu in het bestand .k5users. Als
de doel-principalnaam wordt gevonden zonder enige volgopdrachten of alleen gevolgd door *
dan is de brongebruiker geautoriseerd. Als .k5login of .k5users bestaan, maar een
de juiste invoer voor de doel-principal bestaat niet, dan wordt de toegang geweigerd. Als
geen van beide bestanden bestaat, dan krijgt de opdrachtgever toegang tot het account volgens
de aname->lname toewijzingsregels. Anders mislukt de autorisatie.
EXECUTIE OF HET DOEL SHELL
Na succesvolle authenticatie en autorisatie gaat ksu op dezelfde manier te werk als su.
De omgeving is ongewijzigd, met uitzondering van de variabelen USER, HOME en SHELL. Als
de doelgebruiker is geen root, USER wordt ingesteld op de doelgebruikersnaam. Anders GEBRUIKER
blijft onveranderd. Zowel HOME als SHELL zijn ingesteld op de standaardwaarden van de doelaanmelding. In
bovendien de omgevingsvariabele KRB5CCNAAM wordt ingesteld op de naam van de doelcache.
De echte en effectieve gebruikers-ID wordt gewijzigd in die van de doelgebruiker. Die van de doelgebruiker
shell wordt vervolgens aangeroepen (de shell-naam wordt gespecificeerd in het wachtwoordbestand). Bij
beëindiging van de shell, verwijdert ksu de doelcache (tenzij ksu wordt aangeroepen met de -k
keuze). Dit wordt geïmplementeerd door eerst een fork uit te voeren en vervolgens een exec, in plaats van just
exec, zoals gedaan door su.
CREREN A NIEUW VEILIGHEID CONTEXT
ksu kan worden gebruikt om een nieuwe beveiligingscontext te creëren voor het doelprogramma (ofwel het target
shell, of een opdracht gespecificeerd via de -e keuze). Het doelprogramma erft een set van
inloggegevens van de brongebruiker. Standaard bevat deze set alle referenties in
de broncache plus eventuele extra inloggegevens die tijdens de authenticatie zijn verkregen. De
brongebruiker kan de inloggegevens in deze set beperken door gebruik te maken van -z or -Z optie. -z
beperkt het kopiëren van tickets van de broncache naar de doelcache tot alleen de
tickets waarbij client == de hoofdnaam van het doel. De -Z optie biedt de doelgebruiker
met een nieuwe doelcache (geen creds in de cache). Houd er rekening mee dat om veiligheidsredenen wanneer
de brongebruiker is root en de doelgebruiker is niet-root, -z optie is de standaardmodus van
operatie.
Hoewel er geen authenticatie plaatsvindt als de brongebruiker root is of dezelfde is als de
doelgebruiker, er kunnen nog steeds extra tickets worden verkregen voor de doelcache. Als -n is
opgegeven en er kunnen geen inloggegevens naar de doelcache worden gekopieerd, is de brongebruiker dat wel
gevraagd om een Kerberos-wachtwoord (tenzij -Z opgegeven of GET_TGT_VIA_PASSWD is niet gedefinieerd).
Als dit lukt, wordt een TGT verkregen van de Kerberos-server en opgeslagen in de doelcache.
Anders gaat ksu door in een normale modus als er geen wachtwoord is opgegeven (gebruiker drukt op return).
van werking (de doelcache zal niet de gewenste TGT bevatten). Als het verkeerde wachtwoord
wordt ingetypt, mislukt ksu.
NOTITIE:
Tijdens de authenticatie worden alleen de tickets verkregen die kunnen worden verkregen zonder een
wachtwoord worden in de broncache in de cache opgeslagen.
OPTIES
-n doel_hoofd_naam
Geef een Kerberos-doelprincipalnaam op. Gebruikt bij authenticatie en autorisatie
fasen van ksu.
Als ksu wordt aangeroepen zonder -n, wordt een standaardprincipalnaam toegewezen via de
volgende heuristiek:
· Geval 1: brongebruiker is niet-root.
Als de doelgebruiker de brongebruiker is, wordt de standaardprincipalnaam ingesteld op
standaardprincipal van de broncache. Als de cache niet bestaat, wordt de
standaard hoofdnaam is ingesteld op target_user@local_realm. Als de bron en
doelgroepen zijn verschillend en geen van beide ~doel_gebruiker/.k5gebruikers noch
~target_user/.k5login bestaat, dan is de standaard hoofdnaam
target_user_login_name@local_realm. Anders begint u met de eerste hoofdsom
hieronder vermeld, controleert ksu of de opdrachtgever geautoriseerd is om toegang te krijgen tot het doel
account en of er een legitiem ticket voor die opdrachtgever in de bron aanwezig is
cache. Als aan beide voorwaarden is voldaan, wordt de hoofdsom het standaarddoel
directeur, ga anders naar de volgende directeur.
A. standaardprincipal van de broncache
B. target_user@local_realm
C. source_user@local_realm
Als ac mislukt, probeer dan een van de hoofdpersonen waarvoor een ticket in de broncache aanwezig is
en die geautoriseerd is om toegang te krijgen tot het doelaccount. Als dat niet lukt, selecteert u de
eerste opdrachtgever die vanuit het bovenstaande geautoriseerd is om toegang te krijgen tot de doelrekening
lijst. Als niemand geautoriseerd is en ksu is geconfigureerd met PRINC_LOOK_AHEAD gedraaid
selecteert u de standaardprincipal als volgt:
Selecteer voor elke kandidaat in de bovenstaande lijst een geautoriseerde opdrachtgever die over de
dezelfde realmnaam en het eerste deel van de hoofdnaam is gelijk aan het voorvoegsel van de
kandidaat. Bijvoorbeeld als kandidaat a) dat is [e-mail beveiligd] en
jqopenbaar/[e-mail beveiligd] is geautoriseerd om toegang te krijgen tot het doelaccount en vervolgens de
standaardprincipal is ingesteld op jqopenbaar/[e-mail beveiligd].
· Geval 2: brongebruiker is root.
Als de doelgebruiker niet-root is, is de standaardprincipalnaam dat wel
target_user@local_realm. Anders, als de broncache bestaat, is de standaardprincipal
naam is ingesteld op de standaardprincipal van de broncache. Als de broncache
bestaat niet, de standaardnaam van de hoofdnaam is ingesteld op root\@local_realm.
-c bron_cache_naam
Geef de naam van de broncache op (bijv. -c BESTAND:/tmp/mijn_cache). Als -c optie wordt dan niet gebruikt
de naam is verkregen van KRB5CCNAAM omgevingsvariabele. Indien KRB5CCNAAM is niet
gedefinieerd waarop de naam van de broncache is ingesteld krb5cc_ uid>. De doelcachenaam is
automatisch ingesteld krb5cc_ uid>.(gen_sym()), waarbij gen_sym een new
nummer zodanig dat de resulterende cache nog niet bestaat. Bijvoorbeeld:
krb5cc_1984.2
-k Verwijder de doelcache niet na beëindiging van de doelshell of een opdracht
(-e commando). Zonder -k, verwijdert ksu de doelcache.
-D Schakel de foutopsporingsmodus in.
-z Beperk het kopiëren van tickets van de broncache naar de doelcache tot alleen de
tickets waarbij client == de hoofdnaam van het doel. Gebruik de -n optie als je wilt
de tickets voor andere dan de standaard opdrachtgever. Merk op dat de -z Optie is
wederzijds exclusief met de -Z optie.
-Z Kopieer geen tickets van de broncache naar de doelcache. Maak gewoon een
nieuwe doelcache, waar de standaard hoofdnaam van de cache op wordt geïnitialiseerd
de hoofdnaam van het doel. Merk op dat de -Z optie is wederzijds exclusief met de
-z optie.
-q Onderdruk het afdrukken van statusberichten.
Ticketverlenende ticketopties:
-l levensduur -r Time to -pf
De ticketverlenende ticketopties zijn alleen van toepassing in het geval dat er geen tickets zijn
de juiste tickets in de cache om de brongebruiker te authenticeren. In dit geval als
ksu is geconfigureerd om gebruikers om een Kerberos-wachtwoord te vragen (GET_TGT_VIA_PASSWD is
gedefinieerd), worden de opgegeven ticketverlenende ticketopties gebruikt wanneer
een ticket verkrijgen voor het verlenen van een ticket van de Kerberos-server.
-l levensduur
(duur string.) Specificeert de levensduur die voor het ticket moet worden aangevraagd; als dit
optie niet is opgegeven, wordt in plaats daarvan de standaard ticketlevensduur (12 uur) gebruikt.
-r Time to
(duur tekenreeks.) Geeft aan dat de hernieuwbare optie moet worden aangevraagd voor de
ticket, en specificeert de gewenste totale levensduur van het ticket.
-p specificeert dat de dichtbij optie moet worden aangevraagd voor het ticket.
-f optie geeft aan dat de doorstuurbaar optie moet worden aangevraagd voor het ticket.
-e commando [betoogt
ksu gaat op precies dezelfde manier te werk als wanneer het zou worden aangeroepen zonder de -e optie, behalve
in plaats van de doelshell uit te voeren, voert ksu de opgegeven opdracht uit. Voorbeeld
van gebruik:
ksu bob -e ls -lag
Het autorisatie-algoritme voor -e is als volgt:
Als de brongebruiker root of brongebruiker == doelgebruiker is, is er geen autorisatie vereist
plaats en de opdracht wordt uitgevoerd. Als brongebruikers-ID != 0, en
~doel_gebruiker/.k5gebruikers bestand bestaat niet, autorisatie mislukt. Anders,
~doel_gebruiker/.k5gebruikers bestand moet een geschikte vermelding hebben voor de doel-principal
geautoriseerd worden.
Het .k5users-bestandsformaat:
Eén enkele hoofdinvoer op elke regel, gevolgd door een lijst met opdrachten
waartoe de opdrachtgever bevoegd is tot uitvoering. Een hoofdnaam gevolgd door een *
betekent dat de gebruiker bevoegd is om elk commando uit te voeren. Dus in het volgende
voorbeeld:
[e-mail beveiligd] ls mail /local/kerberos/klist
jqopenbaar/[e-mail beveiligd] *
jqopenbaar/[e-mail beveiligd]
[e-mail beveiligd] is uitsluitend bevoegd tot uitvoering ls, mail en klijst commando's.
jqopenbaar/[e-mail beveiligd] is bevoegd om elk commando uit te voeren.
jqopenbaar/[e-mail beveiligd] is niet bevoegd om enig commando uit te voeren. Let daar op
jqopenbaar/[e-mail beveiligd] is geautoriseerd om de doelshell uit te voeren (reguliere ksu,
zonder de -e optie) maar [e-mail beveiligd] is niet.
De opdrachten die na de hoofdnaam worden vermeld, moeten een volledige padnaam zijn of
alleen de programmanaam. In het tweede geval CMD_PATH het opgeven van de locatie van
geautoriseerde programma's moeten worden gedefinieerd op het moment van compilatie van ksu. Welk commando
wordt geëxecuteerd?
Als de brongebruiker root is of de doelgebruiker de brongebruiker is of de gebruiker is
geautoriseerd om elk commando uit te voeren (* entry) dan kan de opdracht een volledige of een
relatieve pad dat naar het doelprogramma leidt. Anders moet de gebruiker dit opgeven
een volledig pad of alleen de programmanaam.
-a betoogt
Geef argumenten op die moeten worden doorgegeven aan de doelshell. Merk op dat alle vlaggen en
parameters die volgen op -a worden doorgegeven aan de shell, dus alle opties zijn bedoeld voor
ksu moet voorafgaan -a.
De -a optie kan worden gebruikt om de -e optie indien als volgt gebruikt:
-a -c [opdracht [argumenten]].
-c wordt door de c-shell geïnterpreteerd om de opdracht uit te voeren.
INSTALLATIE INSTRUCTIES
ksu kan worden gecompileerd met de volgende vier vlaggen:
GET_TGT_VIA_PASSWD
Als er geen geschikte tickets in de broncache worden gevonden, zal de gebruiker dat wel zijn
gevraagd om een Kerberos-wachtwoord. Het wachtwoord wordt vervolgens gebruikt om een ticket te verkrijgen
het verlenen van een ticket vanaf de Kerberos-server. Het gevaar van het configureren van ksu hiermee
macro is als de brongebruiker op afstand is ingelogd en geen beveiligd bestand heeft
kanaal, kan het wachtwoord zichtbaar worden.
PRINC_LOOK_AHEAD
Tijdens het oplossen van de standaardprincipalnaam, PRINC_LOOK_AHEAD maakt ksu mogelijk
om hoofdnamen te vinden in het .k5users-bestand, zoals beschreven in de sectie OPTIES
(Zie -n keuze).
CMD_PATH
Specificeert een lijst met mappen met programma's waarvoor gebruikers geautoriseerd zijn
uitvoeren (via .k5users-bestand).
HAVE_GETUSERSHELL
Als de brongebruiker niet-root is, staat ksu erop dat de shell van de doelgebruiker dat wel is
waarop een beroep wordt gedaan is een ‘juridisch omhulsel’. getusershell(3) wordt opgeroepen om de namen te verkrijgen van
"juridische schelpen". Merk op dat de shell van de doelgebruiker wordt verkregen uit de passwd
bestand.
Voorbeeldconfiguratie:
KSU_OPTS = -DGET_TGT_VIA_PASSWD -DPRINC_LOOK_AHEAD -DCMD_PATH='"/ bin /usr/ucb /lokaal/bin"
ksu moet eigendom zijn van root en de ingestelde gebruikers-ID-bit moet zijn ingeschakeld.
ksu probeert een ticket voor de eindserver te bemachtigen, net als Kerberized telnet en rlogin.
Er moet dus een vermelding voor de server in de Kerberos-database aanwezig zijn (bijv.
gastheer/[e-mail beveiligd]). Het keytab-bestand moet zich op een geschikte locatie bevinden.
KANT EFFECTEN
ksu verwijdert alle verlopen tickets uit de broncache.
AUTEUR OF KSU
GENNADY (ARI) MEDVINSKY
Gebruik ksu online met behulp van onworks.net-services
