chmod(1p): Skillnad mellan sidversioner
Admin (diskussion | bidrag) (Skapade sidan med '= chmod(1p) = == PROLOG == Denna manualsida är del av POSIX Programmer’s Manual. Linux-implementationen kan avvika (se motsvarande Linux-man-sida för Linux-specifikt beteende), eller gränssnittet kan saknas på Linux. == NAMN == chmod — ändra filers lägesbitar (rättigheter) == SYNOPS == <pre> chmod [-R] läge fil... </pre> == BESKRIVNING == Verktyget '''chmod''' ändrar valfria lägesbitar (”file mode bits”) för varje angiven ''fil'' enligt ''läge''....') |
(Ingen skillnad)
|
Versionen från 31 augusti 2025 kl. 15.16
chmod(1p)
PROLOG
Denna manualsida är del av POSIX Programmer’s Manual. Linux-implementationen kan avvika (se motsvarande Linux-man-sida för Linux-specifikt beteende), eller gränssnittet kan saknas på Linux.
NAMN
chmod — ändra filers lägesbitar (rättigheter)
SYNOPS
chmod [-R] läge fil...
BESKRIVNING
Verktyget chmod ändrar valfria lägesbitar (”file mode bits”) för varje angiven fil enligt läge.
Det är implementeringsdefinierat om och hur chmod påverkar alternativa/ytterligare åtkomstkontrollmekanismer (se POSIX.1-2017 ”File Access Permissions”).
Endast en process vars effektiva användar-ID matchar filens ägar-ID, eller en process med lämpliga privilegier, får ändra lägesbitarna.
När ändringen lyckas ska chmod markera filens ”last status change”-timestamp för uppdatering.
ALTERNATIV
| Alternativ | Beskrivning |
|---|---|
| -R | Rekursivt. För varje fil som är en katalog ändras läget för katalogen och alla objekt i dess hierarki. |
OPERANDER
- läge
- Antingen ett symboliskt_läge eller ett icke-negativt oktalt heltal. Se ”UTÖKAD BESKRIVNING”.
- fil
- Sökväg till fil vars lägesbitar ska ändras.
STDIN
Ej använd.
INDATAFILER
Inga.
MILJÖVARIABLER
Följande variabler kan påverka exekveringen av chmod:
- LANG
- Standardvärden för internationaliseringsvariabler som är tomma/ej satta.
- LC_ALL
- Åsidosätter alla andra internationaliseringsvariabler när satt till icke-tom sträng.
- LC_CTYPE
- Tolkning av byteföljder som tecken (enbyte vs. multibyte) i argument.
- LC_MESSAGES
- Lokal för format/innehåll i diagnostik på stderr.
- NLSPATH
- Plats för meddelandekataloger för LC_MESSAGES.
ASYNKRONA HÄNDELSER
Standard.
STDOUT
Ej använd.
STDERR
Endast för diagnostik.
UTGÅNGSFILER
Inga.
UTÖKAD BESKRIVNING
Symboliskt läge
Operanden läge kan vara ett symboliskt_läge som består av en eller flera satser separerade med komma. Varje sats verkar på filens aktuella läge i angiven ordning.
- who
- u (ägare), g (grupp), o (andra), a (alla; motsvarar ugo).
- perm
- r (läs), w (skriv), x (kör/sök), X (kör/sök endast om katalog eller om något x-bit redan är satt), s (SUID om u, SGID om g), t (sticky bit/S_ISVTX).
- permcopy
- u, g, o – kopiera aktuella rättigheter från respektive del.
- op
- + (sätt), - (rensa), = (sätt exakt och rensa andra enligt who).
Specifika regler:
- Om perm utelämnas gör +/-/= inget.
- Om who utelämnas avser operationen ägare/grupp/andra, men maskas av processens umask för + och =.
- X ignoreras om filen ej är katalog och inga x-bitar är satta.
- Kombinationen o med s ändrar inte SUID/SGID (tillåtet men utan effekt).
- t (sticky) har specificerad betydelse för kataloger; övrigt är ospecificerat.
Implementationsdetaljer (regelförenkling): på reguljära filer kan förfrågningar om att sätta/ta bort SUID/SGID när alla x-bitar är av sakna effekt eller rensa SUID/SGID när alla x-bitar rensas; beteendet är implementeringsdefinierat. På andra filtyper är det implementeringsdefinierat om SUID/SGID hedras.
Oktalt läge
Ett icke-negativt oktalt heltal sätter lägesbitarna absolut. För varje satt bit sätts motsvarande rättighet; övriga rensas. För reguljära filer gäller även SUID/SGID enligt tabellen nedan; för andra filtyper är hedrandet implementeringsdefinierat.
| Oktal | Bit | Oktal | Bit | Oktal | Bit | Oktal | Bit |
|---|---|---|---|---|---|---|---|
| 4000 | S_ISUID | 0400 | S_IRUSR | 0040 | S_IRGRP | 0004 | S_IROTH |
| 2000 | S_ISGID | 0200 | S_IWUSR | 0020 | S_IWGRP | 0002 | S_IWOTH |
| 1000 | S_ISVTX | 0100 | S_IXUSR | 0010 | S_IXGRP | 0001 | S_IXOTH |
Andra oktala bitar än ovan: beteende ospecificerat.
Grammatik för symboliskt_läge
symbolic_mode : clause
| symbolic_mode ',' clause
;
clause : actionlist
| wholist actionlist
;
wholist : who
| wholist who
;
who : 'u' | 'g' | 'o' | 'a'
;
actionlist : action
| actionlist action
;
action : op
| op permlist
| op permcopy
;
permcopy : 'u' | 'g' | 'o'
;
op : '+' | '-' | '='
;
permlist : perm
| perm permlist
;
perm : 'r' | 'w' | 'x' | 'X' | 's' | 't'
;
EXIT-STATUS
0 Verktyget exekverade utan fel och alla begärda ändringar gjordes. >0 Fel inträffade.
FELKONSEKVENSER
Standard.
Följande avsnitt är informativa.
ANVÄNDNING I PROGRAM
- Vid rekursiv ändring (-R) kan vissa implementationer ändra katalogen före filerna, andra efter. Att göra en hierarki otillgänglig för sig själv kan därför misslyckas på olika sätt – undvik detta mönster.
- POSIX kräver att umask beaktas när who utelämnas. Skillnad mellan:
chmod a-w fil # tar ALL skrivrätt chmod -- -w fil # tar bort skrivrätt enligt vad umask skulle tillåta
- Antag inte tolkningen av SUID/SGID på kataloger – den varierar.
EXEMPEL
# Sätt åtkomst för ägare/läs-skriv-kör; grupp/läs-kör; andra/läs-kör (0755)
chmod 755 katalog
# Ge endast ägaren läs/skriv, rensa allt annat (0600)
chmod 600 hemlig.txt
# Lägg till körbarhet för ägare (behåll övrigt)
chmod u+x skript.sh
# Ta bort skriv för grupp och andra
chmod go-w fil.txt
# Sätt SUID på ett program (kräver ofta root)
chmod u+s /usr/local/bin/program
# Sätt SGID och ”sticky” på en katalog (typisk delad gruppkatalog)
chmod g+s,t /srv/projekt
# Kopiera ägarens rättigheter till grupp, och rensa grupp-skriv
chmod g=u,g-w fil.txt
# Rekursivt: gör alla .sh körbara för ägare (behåller andra rättigheter via X)
find . -name '*.sh' -type f -exec chmod u+X {} +
# Använd endast X: lägg till körbarhet på kataloger men inte på vanliga filer
chmod a+X -R .
MOTIVATION (RATIONALE)
Beteende beskrivs via referenser till POSIX-koncept för att undvika duplicering. Exitstatus standardiseras till 0/>0 (vissa historiska varianter använde antal fel, vilket kan överflöda). X är hämtad från BSD och är särskilt användbar vid rekursiva ändringar. Grammatik har utökats med permcopy (t.ex. o=u -g).
FRAMTIDA RIKTNINGAR
Inga.
SE ÄVEN
Se även POSIX.1-2017: File Access Permissions; Environment Variables; Utility Syntax Guidelines. Systemgränssnitt: chmod(3p).
COPYRIGHT
Delar av texten återges ur IEEE Std 1003.1-2017 / The Open Group Base Specifications Issue 7, 2018 Edition. Vid skillnader gäller originalstandarden. Typografiska/formatteringsfel kan ha uppstått vid konvertering till man-format.
IEEE/The Open Group 2017 chmod(1p)