Android

Umask-opdracht in Linux

Umask Linux Pro

Umask Linux Pro

Inhoudsopgave:

Anonim

Op Linux- en Unix-besturingssystemen worden alle nieuwe bestanden gemaakt met een standaardset machtigingen. Met het hulpprogramma umask kunt u het masker voor het maken van de bestandsmodus bekijken of instellen, dat de machtigingsbits bepaalt voor nieuw gemaakte bestanden of mappen.

Het wordt gebruikt door mkdir, touch, tee en andere opdrachten die nieuwe bestanden en mappen maken.

Linux-machtigingen

Laten we, voordat we verder gaan, het Linux-machtigingsmodel kort toelichten.

In Linux is elk bestand gekoppeld aan een eigenaar en een groep en toegewezen aan toegangstoegangsrechten voor drie verschillende klassen gebruikers:

  • de bestandseigenaar. de groepsleden. iedereen.

Er zijn drie soorten machtigingen die op elke klasse van toepassing zijn:

  • de leesrechten. de schrijfrechten. de uitvoeringsrechten.

Met dit concept kunt u opgeven welke gebruikers het bestand mogen lezen, naar het bestand kunnen schrijven of het bestand mogen uitvoeren.

Gebruik de opdracht ls om de bestandsrechten te bekijken:

ls -l dirname

drwxr-xr-x 12 linuxize users 4.0K Apr 8 20:51 dirname | | | | | | | | | | | | +-----------> Group | | | | +-------------------> Owner | | | +----------------------------> Others Permissions | | +-------------------------------> Group Permissions | +----------------------------------> Owner Permissions +------------------------------------> File Type

Het eerste teken vertegenwoordigt het bestandstype dat een normaal bestand ( - ), map ( d ), symbolische link ( l ) of een ander speciaal bestandstype kan zijn.

De volgende negen tekens vertegenwoordigen de machtigingen, drie sets van elk drie tekens. De eerste sets tonen de eigenaarsrechten, de tweede groepsmachtigingen en de laatste sets toont alle andere machtigingen.

Teken r met een octale waarde van 4 staat voor lezen, w met een octale waarde van 2 voor schrijven, x met een octale waarde van 1 voor het uitvoeren van toestemming en ( - ) met octale waarde van 0 voor geen machtigingen.

Er zijn ook drie andere speciale bestandstoestandsoorten: setuid , setgid en Sticky Bit .

In het bovenstaande voorbeeld ( rwxr-xr-x ) betekent dat de eigenaar machtigingen voor lezen, schrijven en uitvoeren ( rwx ) heeft, de groep en anderen machtigingen hebben gelezen en uitvoeren.

Als we de bestandsrechten vertegenwoordigen met behulp van een numerieke notatie, komen we op het nummer 755 :

  • Eigenaar: rwx = 4+2+1 = 7 Groep: rx = 4+0+1 = 5 Andere: rx = 4+0+1 = 5

Wanneer weergegeven in numerieke notatie, kunnen machtigingen drie of vier octale cijfers hebben (0-7). Het eerste cijfer vertegenwoordigt de speciale machtigingen en als het wordt weggelaten, betekent dit dat er geen speciale machtigingen voor het bestand zijn ingesteld. In ons geval is 755 hetzelfde als 0755 . Het eerste cijfer kan een combinatie zijn van 4 voor setuid , 2 voor setgid en 1 voor Sticky Bit .

Bestandsrechten kunnen worden gewijzigd met de opdracht chmod en eigendom met behulp van de opdracht chown .

Umask begrijpen

Standaard zijn op Linux-systemen de standaardmachtigingen voor het maken van bestanden 666 voor bestanden, die lees- en schrijfrechten geven aan gebruiker, groep en anderen, en tot 777 voor mappen, wat betekent lees-, schrijf- en uitvoeringsrechten voor gebruiker, groep en anderen. Linux staat niet toe dat een bestand wordt gemaakt met uitvoeringsrechten.

De standaardaanmaakrechten kunnen worden gewijzigd met behulp van het hulpprogramma umask .

umask heeft alleen invloed op de huidige shell-omgeving. Op de meeste Linux-distributies wordt de standaard systeembrede umask-waarde ingesteld in het bestand pam_umask.so of /etc/profile .

Typ eenvoudigweg umask zonder argumenten om de huidige maskerwaarde te bekijken:

umask

De uitvoer bevat de

022

De umask waarde bevat de machtigingsbits die NIET worden ingesteld voor de nieuw gemaakte bestanden en mappen.

Zoals we al hebben vermeld, zijn de standaardmachtigingen voor het maken van bestanden 666 en voor mappen 777 . Om de machtigingsbits van de nieuwe bestanden te berekenen, trekt u de umask-waarde af van de standaardwaarde.

Als u bijvoorbeeld wilt berekenen hoe uname 022 van invloed is op nieuw gemaakte bestanden en mappen, gebruikt u:

  • Bestanden: 666 - 022 = 644 . De eigenaar kan de bestanden lezen en wijzigen. Groep en anderen kunnen alleen de bestanden lezen. Mappen: 777 - 022 = 755 De eigenaar kan cd's in de map plaatsen en de bestanden in de map lezen, wijzigen, maken of verwijderen. Group en anderen kunnen cd in de map plaatsen en de bestanden bekijken en lezen.

U kunt de maskerwaarde ook in symbolische notatie weergeven met de optie -S :

umask -S

u=rwx, g=rx, o=rx

In tegenstelling tot de numerieke notatie, bevat de symbolische notatiewaarde de machtigingsbits die worden ingesteld op de nieuw gemaakte bestanden en mappen.

De maskerwaarde instellen

Het bestandscreatie-masker kan worden ingesteld met behulp van een octale of symbolische notatie. Om de wijzigingen permanent te maken, stelt u de nieuwe umask waarde in in een globaal configuratiebestand zoals /etc/profile bestand dat van invloed is op alle gebruikers of in de shell-configuratiebestanden van een gebruiker zoals ~/.profile , ~/.bashrc of ~/.zshrc welke heeft alleen invloed op de gebruiker. De gebruikersbestanden hebben voorrang op de globale bestanden.

Voordat u wijzigingen aanbrengt in de umask waarde, moet u ervoor zorgen dat de nieuwe waarde geen potentieel beveiligingsrisico vormt. Waarden die minder beperkend zijn dan 022 moeten met grote voorzichtigheid worden gebruikt. umask 000 betekent bijvoorbeeld dat iedereen toestemming heeft gekregen voor het lezen, schrijven en uitvoeren van alle nieuw gemaakte bestanden.

Laten we zeggen dat we beperktere machtigingen voor de nieuw gemaakte bestanden en mappen willen instellen, zodat anderen niet naar de mappen kunnen cd en bestanden kunnen lezen. De machtigingen die we willen zijn 750 voor mappen en 640 voor bestanden.

Om de umask waarde te berekenen, trekt u eenvoudig de gewenste machtigingen af ​​van de standaardmachtiging:

Umask-waarde: 777-750 = 027

De gewenste umask die wordt weergegeven in numerieke notatie is 027 .

Om het nieuwe waardesysteem permanent in te stellen, opent u het /etc/profile bestand met uw teksteditor:

sudo nano /etc/profile

en wijzig of voeg de volgende regel toe aan het begin van het bestand:

/ Etc / profile

umask 027

Om wijzigingen door te voeren, voert u de volgende bronopdracht uit of logt u uit en logt u in:

source /etc/profile

Om de nieuwe instellingen te verifiëren, maken we een nieuw bestand en een nieuwe map met mkdir en touch :

mkdir newdir touch newfile

drwxr-x--- 2 linuxize users 4096 Jul 4 18:14 newdir -rw-r----- 1 linuxize users 0 Jul 4 18:14 newfile

Een andere manier om het masker voor het maken van bestanden in te stellen, is met behulp van de symbolische notatie. Bijvoorbeeld umask u=rwx, g=rx, o= is hetzelfde als umask 027 .

Conclusie

In deze handleiding hebben we de Linux-machtigingen uitgelegd en hoe u de opdracht umask gebruiken om de machtigingsbits in te stellen voor nieuw gemaakte bestanden of mappen.

Typ man umask in uw terminal voor meer informatie.

umaskerterminal