Hoe te Gebruiken SUID, SGID en de Sticky Bits op Linux

0
384
Fatmawati Achmad Zaenuri/Shutterstock

SUID, SGID en de Sticky bit krachtige speciale machtigingen die u kunt instellen voor uitvoerbare bestanden en directory ‘ s op Linux. We delen de voordelen en valkuilen van het gebruik ervan.

Ze zijn Al in Gebruik

De veiligheid in het gebouw in een multi-user besturingssysteem presenteert een aantal problemen. Neem de (schijnbaar) eenvoudige concept van wachtwoorden, bijvoorbeeld. Ze hebben allemaal te worden opgeslagen, zodat telkens wanneer iemand zich aanmeldt, kan het systeem vergelijken met het wachtwoord typen om de opgeslagen kopie. Uiteraard, zoals wachtwoorden zijn de sleutels tot het koninkrijk, ze moeten worden beschermd.

Op Linux, opgeslagen wachtwoorden beschermd zijn op twee manieren: ze zijn versleuteld en alleen iemand met root privileges voor toegang tot het bestand met de wachtwoorden. Dat klinkt misschien goed, maar het presenteert een dilemma: Als alleen mensen met root rechten toegang kunnen krijgen tot opgeslagen wachtwoorden, hoe degenen die het niet hebben dat de toegang tot hun wachtwoord wijzigen?

Het Verhogen Van Je Status

Meestal, Linux commando ‘s en programma’ s uitgevoerd met dezelfde rechten als de persoon van wie start het programma. Als root draait het passwd commando om een wachtwoord te wijzigen, het is uitgevoerd met root rechten. Dat betekent dat je het passwd commando kan vrij toegang krijgen tot de opgeslagen wachtwoorden in de /etc/shadow bestand.

Wat ideaal zou zijn is een regeling waarin iedereen op het systeem start de passwd programma, maar het passwd programma behouden root verhoogde bevoegdheden. Dit zou iedereen in staat stellen om te veranderen van haar eigen wachtwoord.

Het bovenstaande scenario is precies wat de Set User ID bits (SUID) doet. Het loopt van programma ‘s en commando’ s met de machtigingen van de eigenaar van het bestand, in plaats van de rechten van de persoon die start het programma.

U bent het Verheffen van de Programma Status

Er is nog een probleempje, dat wel. De persoon moet worden voorkomen dat zich bemoeit met het wachtwoord van iemand anders. Linux bevat de SUID-regeling die het mogelijk maakt om applicaties te draaien met een verzameling van tijdelijk geleend machtigingen—maar dat is slechts de helft van de veiligheid verhaal.

De controle mechanisme dat voorkomt dat iemand uit het werken met een andere persoon het wachtwoord is opgenomen in de passwd programma, niet het besturingssysteem en de SUID-regeling.

Programma ‘s die worden uitgevoerd met verhoogde bevoegdheden vormen beveiligingsrisico’ s als ze niet zijn gemaakt met een “security by design” mentaliteit. Dat betekent dat de veiligheid is het eerste wat je bedenkt, en dan bouw je op. Niet schrijf uw programma, en dan proberen om het een laag van beveiliging daarna.

Het grootste voordeel van open source software is dat je kunt kijken naar de bron van de code zelf verwijzen naar betrouwbare peer-reviews van. In de bron code voor de passwd programma, er zijn controles, zodat u kunt zien of de persoon waarop het programma is root. Verschillende mogelijkheden worden toegestaan als iemand een root (of iemand met sudo).

Dit is de code die detecteert of er iemand is root.

Het volgende is een voorbeeld waarin dat is, in aanmerking genomen. Omdat root kan het wijzigen van een wachtwoord, het programma niet bezig te houden met de controles meestal uitgevoerd om te zien welke wachtwoorden de persoon heeft toestemming wijzigen. Dus, de wortel, het slaat die controles en verlaat de controle functie.

Met de core Linux commando ‘s en hulpprogramma’ s, kunt u er zeker van ze hebben veiligheid gebakken in hen en dat de code is besproken vele malen. Natuurlijk, er is altijd de dreiging van een nog onbekende exploits. Echter, patches of updates zijn snel te verschijnen tegen de nieuw geïdentificeerde kwetsbaarheden.

Het is software van derden-met name een die niet open-source—je moet uiterst voorzichtig over het gebruik van SUID-met. We zeggen niet dat het niet doen, maar als je dat doet, wilt u ervoor zorgen dat het niet bloot uw systeem risico. U wilt niet te verheffen de privileges van een programma dat niet gaat correct zelfbestuur zelf en de persoon die het.

Linux Commando ‘ s Die Gebruik maken van SUID

De volgende zijn een paar van de Linux-commando ‘ s die gebruik maken van de SUID bit te geven de opdracht verhoogde bevoegdheden als deze worden uitgevoerd door een gewone gebruiker:

ls -l /bin/su
ls -l /bin/ping
ls -l /bin/mount
ls -l /bin/umount
ls -l /usr/bin/passwd

Opmerking de bestandsnamen zijn rood gemarkeerd, wat aangeeft dat de SUID-bit is ingesteld.

De machtigingen voor een bestand of map zijn meestal vertegenwoordigd door drie groepen van drie karakters: rwx. Deze staan voor lezen, schrijven en uitvoeren. Als de brieven aanwezig zijn, dat de toestemming is verleend. Als een koppelteken (-) in plaats van een brief aanwezig, hoewel, dat toestemming niet is gegeven.

Er zijn drie groepen van deze machtigingen (van links naar rechts): die voor de eigenaar van het bestand, voor de leden van het bestand van de groep, en voor anderen. Wanneer de SUID-bit is ingesteld op een bestand, een “s” staat voor de eigenaar van de machtiging uitvoeren.

Als de SUID-bit is ingesteld op een bestand dat niet uitvoerbare mogelijkheden, een hoofdletter “S” geeft aan dat deze.

We nemen een kijkje bij een voorbeeld. Regelmatige gebruiker dave typen met het passwd commando:

passwd

Het passwd commando vraagt dave voor zijn nieuw wachtwoord. We kunnen gebruik je het ps commando om de details te bekijken van lopende processen.

We zullen gebruik maken van ps met grep in een andere terminal venster en kijk voor het proces passwd. We zullen ook gebruik maken van de -e (het proces) en f (full-formaat) opties met ps.

We typt u de volgende opdracht:

ps -e -f | grep passwd

Twee lijnen zijn gemeld, op de tweede is het grep proces op zoek naar opdrachten met de string “passwd” in hen. Het is de eerste regel dat de belangen van ons, want dat is voor het proces passwd dave gelanceerd.

We zien het proces passwd loopt net zoals als root had gelanceerd.

Het instellen van de SUID Bit

Het is makkelijk om de SUID bit met chmod. De u+s symbolische modus stelt de SUID bit en de vs symbolische modus keurt de SUID bit.

Om te illustreren enkele van de concepten van de SUID-bit, hebben we een klein programma gemaakt genaamd htg. Het is in de root directory van de dave gebruiker, en het hoeft niet de SUID-bit ingesteld. Wanneer het is uitgevoerd, wordt de echte en de effectieve gebruikers-Id (UID).

De echte UID behoort tot de persoon die begonnen met het programma. De effectieve ID van de account van het programma zich gedraagt alsof het had gelanceerd.

We typt u het volgende:

ls -lh htg
./htg

Toen hebben we de lokale kopie van het programma, zien we de echte en effectieve Id ‘ s zijn ingesteld op dave. Het is dus gedraagt zich gewoon als een normaal programma.

Laten we kopiëren naar de /usr/local/bin map, zodat anderen het kunnen gebruiken.

Wij typ de volgende, met behulp van chmod om de SUID bit, en controleer dan dat het is ingesteld:

sudo cp htg /usr/local/bin
sudo chmod u+s /usr/local/bin/htg
ls -hl /usr/local/bin/htg

Zo, het programma wordt gekopieerd en de SUID-bit is ingesteld. We lopen het opnieuw, maar dit keer geven we de kopie in de /usr/local/bin map:

htg

Hoewel dave gestart met het programma, de effectieve ID is ingesteld op de root gebruiker. Dus, als mary start het programma, hetzelfde gebeurt, zoals hieronder weergegeven:

htg

De real ID is maria, en de effectieve ID root is. Het programma wordt uitgevoerd met de rechten van de gebruiker root.

GERELATEERD: Hoe de Opdracht chmod Gebruiken op Linux

Het SGID Bit

De Set Group ID (SGID-bit is zeer vergelijkbaar met de SUID bit. Wanneer de SGID-bit is ingesteld op een uitvoerbaar bestand is, is het effectieve groep is ingesteld op de groep van het bestand. Het proces wordt uitgevoerd met de rechten van de leden van het bestand van de groep, in plaats van de rechten van de persoon die hem gemaakt heeft.

We getweaked onze htg programma dus het toont de effectieve groep, ook. Veranderen We de groep van de htg programma voor de gebruiker mary ‘ s standaard-groep, maria. We zullen ook gebruik maken van de vs en de g+s symbolische modi met chown te verwijderen van de SUID bit en stel de SGID.

Om dit te doen, typt u het volgende:

sudo chown root:maria /usr/local/bin/htg
sudo chmod ons,g+s /usr/local/bin/htg
ls -lh /usr/local/bin/htg

U kunt de SGID-bit aangeduid met de “s” in de groep machtigingen. Let ook op de groep is ingesteld op maria en de naam van het bestand is nu gemarkeerd in het geel.

Voordat we het programma uitvoeren, laten we vaststellen welke groepen dave en mary behoren. We zullen gebruik maken van de id-opdracht met de -G (groepen) optie voor het afdrukken van alle groep-Id ‘ s. Vervolgens geven we de htg-programma als dave.

Wij typ de volgende commando ‘ s:

id -G dave
id -G maria
htg

De ID van de standaard-groep voor maria is 1001, en de effectieve groep van de htg-programma is 1001. Dus, hoewel het werd gelanceerd door dave, het is uitgevoerd met de rechten van de leden in de maria-groep. Het is hetzelfde als wanneer dave had zich aangesloten bij de maria-groep.

Laten we het toepassen van de SGID-bit naar een map. Eerst maken we een map met de naam “werk”, en wijzig vervolgens de groep “geek.” We zullen vervolgens de SGID-bit op de map.

Wanneer we gebruik maken van ls om te controleren of de instellingen van de map, gebruiken we ook de -d (map), zodat we de details zien van de map, niet de inhoud ervan.

Wij typ de volgende commando ‘ s:

sudo mkdir werk
sudo chown dave:geek werk
sudo chmod g+s werk
ls -lh -d werk

Het SGID bit en “geek” groep worden ingesteld. Deze zullen van invloed zijn op artikelen die binnen de werk-directory.

Wij typ het volgende in te voeren van de werk-directory, maak een map met de naam “demo” en kijk in de eigenschappen:

cd werk
mkdir demo
ls -lh -d demo

Het SGID bit en “geek” groep worden automatisch toegepast op de “demo” directory.

Laten we typt u het volgende om een bestand te maken met de touch commando, en controleren van de eigenschappen:

contact useful.sh
ls -lh useful.sh

De groep van het nieuwe bestand wordt automatisch ingesteld op “geek.”

GERELATEERD: Hoe Gebruik je het chown Commando op een Linux

De Sticky Bit

De sticky bit wordt de naam van zijn historische doel. Wanneer dit is ingesteld op een uitvoerbaar is, de vlag van het besturingssysteem dat de tekst in porties van het uitvoerbare bestand moet worden gehouden in swap, het maken van hun re-gebruik sneller. Op Linux, de sticky bit is alleen van invloed van een active directory—omgeving op een bestand zou het niet zinvol zijn.

Als je de sticky bit op een map, kunt u bestanden verwijderen die behoren tot hen binnen die map. Ze kunnen geen bestanden te verwijderen die toebehoort aan iemand anders, maakt niet uit welke combinatie van het bestand machtigingen zijn ingesteld op de bestanden.

Hiermee kunt u een map maken dat iedereen—en de processen die zij lanceren, kunnen gebruikmaken van de gedeelde opslag. De bestanden zijn beveiligd omdat, nogmaals, niemand kan verwijderen andermans bestanden.

We maken een map met de naam ‘shared’. We gebruiken de o+t symbolische modus met chmod om de sticky bit op die map. Vervolgens zullen We kijken naar de machtigingen voor die map, en als de /tmp en /var/tmp map.

Wij typ de volgende commando ‘ s:

mkdir gedeeld
sudo chmod o+t gedeeld
ls -lh -d gedeelde
ls -lh -d /tmp
ls -lh -d /var/tmp

Als de sticky bit is ingesteld, en de uitvoerbare bit van de “andere” instellen van de bestandsrechten is ingesteld op “t”. De naam van het bestand is ook in het blauw gemarkeerd.

De /tmp en /var/tmp mappen zijn twee voorbeelden van mappen al het bestand machtigingen instellen voor de eigenaar, groep en anderen (dat is waarom ze zijn gemarkeerd in groen). Ze worden gebruikt als gedeelde locaties voor tijdelijke bestanden.

Met deze machtigingen, iedereen moet in principe in staat om iets te doen. Echter, het sticky-bit aan overschrijft, en niemand kan het verwijderen van een bestand dat behoort niet tot hem.

Herinneringen

Het volgende is een snelle checklist van wat we hierboven is beschreven voor toekomstige referentie:

  • SUID werkt alleen op bestanden.
  • Je kunt toepassen SGID tot mappen en bestanden.
  • Je kunt alleen van toepassing het sticky-bit aan te mappen.
  • Als de “s”, “g”, of “t” – indicatoren worden weergegeven in hoofdletters, en de uitvoerbare bit (x) nog niet is ingesteld.

LEES VERDER

  • “Het Installeren en Gebruiken van Microsoft Rand op Android
  • “Het Inschakelen van DNS Via HTTPS in Firefox
  • “Windows-10 is het Nieuwe Start Menu Kan Doden Live-Tegels voor Altijd
  • “Het opnieuw instellen van Uw Windows PINCODE in Als U Het Vergeet
  • “Hoe om te Stoppen Achtergrond Apps worden Uitgevoerd Wanneer Microsoft Rand Is Gesloten