Linux команда chmod - команда изменения прав доступа.
Innehållsförteckning:
- Linux-filtillstånd
- Med hjälp av
chmod
- Symbolisk (text) metod
- Numerisk metod
- Använda en referensfil
- Ändra rekursivt filens behörigheter
- Arbetar med symboliska länkar
- Ändra filtillstånd i bulk
- Slutsats
I Linux hanteras åtkomst till filerna genom filbehörigheter, attribut och äganderätt. Detta säkerställer att endast godkända användare och processer kan komma åt filer och kataloger.
Den här handboken beskriver hur du använder
chmod
kommandot för att ändra åtkomstbehörigheter för filer och kataloger.
Linux-filtillstånd
Innan vi går vidare, låt oss förklara den grundläggande Linux-behörighetsmodellen.
I Linux är varje fil associerad med en ägare och en grupp och tilldelas behörighetsbehörighet för tre olika klasser av användare:
- Filägaren. Gruppmedlemmarna. Övriga (alla andra).
Filägande kan ändras med
chown
och
chgrp
kommandona.
Det finns tre filtillståndstyper som gäller för varje klass:
- Lästillståndet. Skrivtillståndet. Utför tillståndet.
Med detta koncept kan du ange vilka användare som får läsa filen, skriva till filen eller köra filen.
Filbehörigheter kan visas med kommandot
ls
:
ls -l filename.txt
-rw-r--r-- 12 linuxize users 12.0K Apr 8 20:51 filename.txt |- | | | | | | | | | | | | | +-----------> 7. Group | | | | | +-------------------> 6. Owner | | | | +--------------------------> 5. Alternate Access Method | | | +----------------------------> 4. Others Permissions | | +-------------------------------> 3. Group Permissions | +----------------------------------> 2. Owner Permissions +------------------------------------> 1. File Type
Det första tecknet visar filtypen. Det kan vara en vanlig fil (
-
), katalog (
d
), en symbolisk länk (
l
) eller någon annan speciell filtyp.
De nästa nio tecknen representerar filbehörigheterna, tre tripletter om tre tecken vardera. Den första tripletten visar ägarbehörigheterna, den andra gruppbehörigheterna, och den sista tripletten visar alla andra behörigheter. Behörigheterna kan ha en annan betydelse beroende på filtyp.
I exemplet ovan (
rw-r--r--
) betyder att
rw-r--r--
har läs- och
rw-
(
rw-
), gruppen och andra har bara
r--
(
r--
).
Var och en av de tre tillåtelsetripletterna kan konstrueras av följande tecken och har olika effekter, beroende på om de är inställda på en fil eller i en katalog:
Effekten av behörigheter på filer
Lov | Karaktär | Betydelse på fil |
---|---|---|
Läsa |
-
|
Filen är inte läsbar. Du kan inte visa filinnehållet. |
r
|
Filen är läsbar. | |
Skriva |
-
|
Filen kan inte ändras eller ändras. |
w
|
Filen kan ändras eller ändras. | |
Kör |
-
|
Filen kan inte köras. |
x
|
Filen kan köras. | |
s
|
Om den finns i
user
ställer den
setuid
biten in. Om den finns i grupptripletten ställer den in
setgid
biten. Det betyder också att
x
flaggan är inställd.
När
|
|
S
|
Samma som
s
men
x
flaggan är inte inställd. Denna flagga används sällan i filer. |
|
t
|
Om den finns i den
others
tripletten sätter den den
sticky
biten.
Det betyder också att
|
|
T
|
Samma som
t
men
x
flaggan är inte inställd. Denna flagga är värdelös för filer. |
Effekten av tillstånd på kataloger (mappar)
I Linux är kataloger specialtyper av filer som innehåller andra filer och kataloger.
Lov | Karaktär | Betydelse i katalogen |
---|---|---|
Läsa |
-
|
Katalogens innehåll kan inte visas. |
r
|
Katalogens innehåll kan visas.
(t.ex. kan du lista filer i katalogen med
|
|
Skriva |
-
|
Katalogens innehåll kan inte ändras. |
w
|
Katalogens innehåll kan ändras.
(t.ex. du kan inte skapa nya filer, ta bort filer.. osv.) |
|
Kör |
-
|
Katalogen kan inte ändras till. |
x
|
Katalogen kan navigeras med
cd
. |
|
s
|
Om den finns i
user
tripletten, ställer den
setuid
biten. Om den finns i grupptripletten ställer den in
setgid
biten. Det betyder också att
x
flaggan är inställd. När
setgid
flaggan är inställd på en katalog ärver de nya filerna som skapats i den kataloggrupp-ID (GID) i stället för det primära grupp-ID för användaren som skapade filen.
|
|
S
|
Samma som
s
men
x
flaggan är inte inställd. Denna flagga är värdelös i kataloger. |
|
t
|
Om den finns i den
others
tripletten sätter den den
sticky
biten.
Det betyder också att
|
|
T
|
Samma som
t
men
x
flaggan är inte inställd. Denna flagga är värdelös i kataloger. |
Med hjälp av
chmod
Kommandot
chmod
har följande allmänna form:
chmod MODE FILE…
Med
chmod
kommandot kan du ändra behörigheterna för en fil med antingen ett symboliskt eller numeriskt läge eller en referensfil. Vi förklarar lägena mer i detalj senare. Kommandot kan acceptera en eller flera filer och / eller kataloger separerade med utrymme som argument.
Endast root, filägaren eller användaren med sudo-behörigheter kan ändra behörigheterna för en fil. Var extra försiktig när du använder
chmod
, särskilt när du rekursivt ändrar behörigheterna.
Symbolisk (text) metod
Syntaxen för
chmod
kommandot när du använder symbolläget har följande format:
chmod perms… FILE…
Den första uppsättningen flaggor (
), användares flaggor, definierar vilka användare som klassificerar behörigheterna för filen.
-
u
- Filägaren.g
- Användarna som är medlemmar i gruppen.o
- Alla andra användare.a
- Alla användare, identiska medugo
.
Om användarnas flagga utelämnas är standardfilen
a
och behörigheterna som är inställda av umask påverkas inte.
Den andra uppsättningen flaggor (
), operationens flaggor, definierar om behörigheterna ska tas bort, läggas till eller ställas in:
-
-
Tar bort de angivna behörigheterna.+
Lägger till angivna behörigheter.=
Ändrar de aktuella behörigheterna till de angivna behörigheterna. Om inga behörigheter anges efter symbolen=
tas alla behörigheter från den angivna användarklassen bort.
Behörigheterna (
perms…
) kan uttryckligen ställas in med antingen noll eller en eller flera av följande bokstäver:
r
,
w
,
x
,
X
,
s
och
t
. Använd en enda bokstav från uppsättningen
u
,
g
och
o
när du kopierar behörigheter från en till en annan användarklass.
När du ställer tillstånd för mer än en användarklasser (
), använd kommatecken (utan mellanslag) för att separera de symboliska lägena.
Nedan följer några exempel på hur du använder
chmod
kommandot i symboliskt läge:
-
Ge medlemmarna i gruppen tillåtelse att läsa filen, men inte att skriva och köra den:
chmod g=r filename
Ta bort exekveringsbehörighet för alla användare:
chmod ax filename
Ta bort övertygande skrivtillståndet för andra användare:
chmod -R ow dirname
Ta bort läs, skriv och kör tillstånd för alla användare utom filens ägare:
chmod og-rwx filename
Samma sak kan också uppnås genom att använda följande form:
chmod og= filename
Ge läs, skriva och köra behörighet till filens ägare, läsa behörigheter för filens grupp och inga behörigheter för alla andra användare:
chmod u=rwx, g=r, o= filename
Lägg till filens ägarbehörigheter till behörigheterna som medlemmarna i filgruppen har:
chmod g+u filename
Lägg till en klibbig bit i en given katalog:
chmod o+t dirname
Numerisk metod
Syntaxen för kommandot
chmod
när du använder en numerisk metod har följande format:
chmod NUMBER FILE…
När du använder det numeriska läget kan du ställa in behörigheterna för alla tre användarklasser (ägare, grupp och alla andra) på samma gång.
NUMBER
kan vara ett 3 eller 4-siffrigt nummer.
När tre siffror används används representerar den första siffran behörigheterna för filens ägare, den andra i filgruppen och den sista alla andra användare.
Varje skriv-, läs- och exekveringsbehörighet har följande siffervärde:
-
r
(läs) = 4w
(skriv) = 2x
(kör) = 1 ingen behörigheter = 0
Behörighetsnumret för en specifik användarklass representeras av summan av värdena för behörigheterna för den gruppen.
För att ta reda på filens behörigheter i numeriskt läge beräknar du bara summan för alla användarklasser. Till exempel för att ge läs, skriva och köra behörighet till filens ägare, läsa och köra behörigheter till filens grupp och bara läsa behörigheter till alla andra användare gör du följande:
- Ägare: rwx = 4 + 2 + 1 = 7Grupp: rx = 4 + 0 + 1 = 5Andrar: rx = 4 + 0 + 0 = 4
Med metoden ovan kommer vi upp till numret
754
, som representerar önskade behörigheter.
För att ställa in
setuid
,
setgid
och
sticky bit
bitflaggor använder du fyra siffror.
När de fyra siffrorna används, har den första siffran följande betydelse:
- setuid = 4setgid = 2sticky = 1 ingen förändring = 0
De följande tre siffrorna har samma betydelse som när du använder 3 siffror.
Om den första siffran är 0 kan den utelämnas och läget kan representeras med 3 siffror. Det numeriska läget
0755
är detsamma som
755
.
För att beräkna det numeriska läget kan du också använda en annan metod (binär metod), men det är lite mer komplicerat. Att veta hur man beräknar det numeriska läget med 4, 2 och 1 räcker för de flesta användare.
Du kan kontrollera filens behörigheter i den numeriska notationen med kommandot
stat
:
stat -c "%a" filename
644
Här är några exempel på hur du använder
chmod
kommandot i numeriskt läge:
-
Ge filens ägare läs- och skrivbehörigheter och läs bara behörigheter för gruppmedlemmar och alla andra användare:
chmod 644 dirname
Ge filens ägare läsa, skriva och köra behörigheter, läsa och köra behörigheter till gruppmedlemmar och inga behörigheter för alla andra användare:
chmod 750 dirname
Ge läs, skriva och utföra behörigheter och en klibbig bit till en given katalog:
chmod 1777 dirname
Ställ in rekursivt läs-, skriv- och körrättigheter för filägaren och inga behörigheter för alla andra användare i en viss katalog:
chmod -R 700 dirname
Använda en referensfil
--reference=ref_file
låter dig ställa in filens behörigheter till att vara samma som för den angivna referensfilen (
ref_file
).
chmod --reference=REF_FILE FILE
Till exempel tilldelar följande kommando behörigheterna för
file1
till
file2
Ändra rekursivt filens behörigheter
För att rekursivt använda alla filer och kataloger under den givna katalogen använder
--recursive
alternativet
-R
(-
--recursive
):
chmod -R MODE DIRECTORY
För att t.ex. ändra behörigheterna för alla filer och underkataloger under katalogen
/var/www
till
755
skulle du använda:
Arbetar med symboliska länkar
Symboliska länkar har alltid
777
behörigheter.
Som standard kommer
chmod
att ändra behörigheterna för filen som länken pekar på när du ändrar symlinks behörigheter.
chmod 755 symlink
Chansen är stor att i stället för att ändra målägarskapet får du ett "inte åtkomst till" symlink ": Tillstånd nekad" -fel.
Felet inträffar på grund av att de flesta Linux-distributioner är symlänkar skyddade och du kan inte använda målfiler. Det här alternativet anges i
/proc/sys/fs/protected_symlinks
.
1
betyder aktiverat och
0
inaktiverat. Det rekommenderas att inte inaktivera symlink-skyddet.
Ändra filtillstånd i bulk
Ibland finns det situationer där du skulle behöva bulkändra filer och katalogbehörigheter.
Det vanligaste scenariot är att rekursivt ändra webbplatsfilens behörigheter till
644
och katalogens behörigheter till
755
.
Med den numeriska metoden:
find /var/www/my_website -type d -exec chmod 755 {} ;
find /var/www/my_website -type f -exec chmod 644 {} ;
Med hjälp av den symboliska metoden:
find /var/www/my_website -type d -exec chmod u=rwx, go=rx {} ;
find /var/www/my_website -type f -exec chmod u=rw, go=r {} ;
Sökkommandot söker efter filer och kataloger under
/var/www/my_website
och
/var/www/my_website
varje hittad fil och katalog till
chmod
kommandot för att ställa in behörigheterna.
Slutsats
chmod
kommandot ändrar filens behörigheter. Behörigheterna kan ställas in antingen i symboliskt eller numeriskt läge.
För att lära dig mer om
chmod
besöker du chmod man-sidan.
Oktober månad kan ha dominerats mer eller mindre av Ubuntu Linux för de som förutser den senaste Quantal Quetzal-versionen, men i veckan gjorde Linux Mint-projektet ett spännande meddelande om
I synnerhet lanserade Linux Mint-projektet på tisdag att det nu har en onlinebutik komplett med flera datorer som erbjuder Linux Mint förladdad. "
Samlingen "Linux Diversity": Ett kit, 10 Linux distros
Om du handlar om ett nytt OS , kommer den här uppsättningen att ge dig en mängd olika de senaste populära alternativen.
Linux: Linux Live USB Creator gör det lättare att installera Linux
Linux har alltid stött på de flesta som något för komplicerat att installera och lära. Men med Linux Live USB Creator kan du nu installera ett av många Linux-operativsystem på din USB-stick och använda det helt enkelt.