chmod(2): Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
(Skapade sidan med '= chmod(2) - Ändrar filrättigheter = == Namn == '''chmod, fchmod, fchmodat''' - Ändrar rättigheterna för en fil == Bibliotek == Standard-C-biblioteket (libc, -lc) == Synopsis == <pre> #include <sys/stat.h> int chmod(const char *pathname, mode_t mode); int fchmod(int fd, mode_t mode); #include <fcntl.h> →‎Definition av AT_*-konstanter: #include <sys/stat.h> int fchmodat(int dirfd, const char *pathname, mode_t mode, int flags); </pre> === Funktions...')
 
Ingen redigeringssammanfattning
Rad 2: Rad 2:


== Namn ==
== Namn ==
'''chmod, fchmod, fchmodat''' - Ändrar rättigheterna för en fil
chmod, fchmod, fchmodat - Ändrar rättigheterna för en fil


== Bibliotek ==
== Bibliotek ==
Rad 23: Rad 23:
För att använda dessa funktioner krävs följande makron beroende på version av glibc:
För att använda dessa funktioner krävs följande makron beroende på version av glibc:


* **fchmod():**
* fchmod():
   * Sedan glibc 2.24:
   * Sedan glibc 2.24:
     <pre>_POSIX_C_SOURCE >= 199309L</pre>
     <pre>_POSIX_C_SOURCE >= 199309L</pre>
Rad 35: Rad 35:
     <pre>_BSD_SOURCE || _XOPEN_SOURCE >= 500</pre>
     <pre>_BSD_SOURCE || _XOPEN_SOURCE >= 500</pre>


* **fchmodat():**
* fchmodat():
   * Sedan glibc 2.10:
   * Sedan glibc 2.10:
     <pre>_POSIX_C_SOURCE >= 200809L</pre>
     <pre>_POSIX_C_SOURCE >= 200809L</pre>
Rad 42: Rad 42:


== Beskrivning ==
== Beskrivning ==
**chmod()**, **fchmod()** och **fchmodat()** används för att ändra rättighetsbitarna för en fil. Dessa består av behörighetsbitar samt bitarna för set-user-ID, set-group-ID och sticky.
chmod, fchmod och fchmodat används för att ändra rättighetsbitarna för en fil. Dessa består av behörighetsbitar samt bitarna för set-user-ID, set-group-ID och sticky.


=== Funktioner ===
=== Funktioner ===
* **chmod()**  
* chmod   
   Ändrar rättigheterna för filen specificerad av ''pathname''. Symboliska länkar följs automatiskt.
   Ändrar rättigheterna för filen specificerad av ''pathname''. Symboliska länkar följs automatiskt.


* **fchmod()**  
* fchmod   
   Ändrar rättigheterna för filen som refereras av filbeskrivaren ''fd''.
   Ändrar rättigheterna för filen som refereras av filbeskrivaren ''fd''.


* **fchmodat()**  
* fchmodat   
   Fungerar som **chmod()**, men möjliggör relativa sökvägar baserade på ''dirfd''. Om ''pathname'' är relativ tolkas den relativt till katalogen som refereras av ''dirfd''. Flaggor kan inkluderas:
   Fungerar som chmod, men möjliggör relativa sökvägar baserade på ''dirfd''. Om ''pathname'' är relativ tolkas den relativt till katalogen som refereras av ''dirfd''. Flaggor kan inkluderas:
   * '''AT_SYMLINK_NOFOLLOW''' - Påverkar den symboliska länken själv, inte filen den pekar på.
   * AT_SYMLINK_NOFOLLOW - Påverkar den symboliska länken själv, inte filen den pekar på.


=== Rättighetsbitar ===
=== Rättighetsbitar ===
Rättigheterna specificeras i ''mode'', som är en bitmask skapad genom att kombinera följande:
Rättigheterna specificeras i ''mode'', som är en bitmask skapad genom att kombinera följande:


* **Specialbitar:**
* Specialbitar:
   * '''S_ISUID''' (04000) - Set-user-ID.
   * S_ISUID (04000) - Set-user-ID.
   * '''S_ISGID''' (02000) - Set-group-ID.
   * S_ISGID (02000) - Set-group-ID.
   * '''S_ISVTX''' (01000) - Sticky bit.
   * S_ISVTX (01000) - Sticky bit.


* **Behörigheter för ägaren:**
* Behörigheter för ägaren:
   * '''S_IRUSR''' (00400) - Läs.
   * S_IRUSR (00400) - Läs.
   * '''S_IWUSR''' (00200) - Skriv.
   * S_IWUSR (00200) - Skriv.
   * '''S_IXUSR''' (00100) - Kör/sök.
   * S_IXUSR (00100) - Kör/sök.


* **Behörigheter för gruppen:**
* Behörigheter för gruppen:
   * '''S_IRGRP''' (00040) - Läs.
   * S_IRGRP (00040) - Läs.
   * '''S_IWGRP''' (00020) - Skriv.
   * S_IWGRP (00020) - Skriv.
   * '''S_IXGRP''' (00010) - Kör/sök.
   * S_IXGRP (00010) - Kör/sök.


* **Behörigheter för andra:**
* Behörigheter för andra:
   * '''S_IROTH''' (00004) - Läs.
   * S_IROTH (00004) - Läs.
   * '''S_IWOTH''' (00002) - Skriv.
   * S_IWOTH (00002) - Skriv.
   * '''S_IXOTH''' (00001) - Kör/sök.
   * S_IXOTH (00001) - Kör/sök.


== Returneringsvärde ==
== Returneringsvärde ==
Rad 82: Rad 82:


== Fel ==
== Fel ==
**chmod()**, **fchmod()** och **fchmodat()** kan misslyckas med följande fel:
chmod, fchmod och fchmodat kan misslyckas med följande fel:


* '''EACCES''' - Behörighet saknas för en komponent i sökvägen.
* EACCES - Behörighet saknas för en komponent i sökvägen.
* '''EPERM''' - Processen har inte tillräckliga rättigheter.
* EPERM - Processen har inte tillräckliga rättigheter.
* '''EROFS''' - Filen ligger på ett skrivskyddat filsystem.
* EROFS - Filen ligger på ett skrivskyddat filsystem.
* '''ENOENT''' - Filen eller katalogen finns inte.
* ENOENT - Filen eller katalogen finns inte.
* '''ELOOP''' - För många symboliska länkar i sökvägen.
* ELOOP - För många symboliska länkar i sökvägen.
* '''EINVAL''' - Ogiltig flagga angavs till **fchmodat()**.
* EINVAL - Ogiltig flagga angavs till fchmodat.
* '''EBADF''' - Filbeskrivaren är ogiltig.
* EBADF - Filbeskrivaren är ogiltig.
* '''ENOMEM''' - Otillräckligt minne.
* ENOMEM - Otillräckligt minne.
* '''ENOTSUP''' - Flaggan '''AT_SYMLINK_NOFOLLOW''' stöds inte.
* ENOTSUP - Flaggan AT_SYMLINK_NOFOLLOW stöds inte.


== Versioner ==
== Versioner ==
* **chmod()** och **fchmod()** introducerades i 4.4BSD och SVr4, och stöds av POSIX.1-2001.
* chmod och fchmod introducerades i 4.4BSD och SVr4, och stöds av POSIX.1-2001.
* **fchmodat()** introducerades i POSIX.1-2008, Linux 2.6.16 och glibc 2.4.
* fchmodat introducerades i POSIX.1-2008, Linux 2.6.16 och glibc 2.4.


== Standarder ==
== Standarder ==
Rad 110: Rad 110:
* [[path_resolution(7)]]
* [[path_resolution(7)]]
* [[symlink(7)]]
* [[symlink(7)]]


= Sidslut =
= Sidslut =

Versionen från 23 november 2024 kl. 08.02

chmod(2) - Ändrar filrättigheter

Namn

chmod, fchmod, fchmodat - Ändrar rättigheterna för en fil

Bibliotek

Standard-C-biblioteket (libc, -lc)

Synopsis

#include <sys/stat.h>

int chmod(const char *pathname, mode_t mode);
int fchmod(int fd, mode_t mode);

#include <fcntl.h>           /* Definition av AT_*-konstanter */
#include <sys/stat.h>

int fchmodat(int dirfd, const char *pathname, mode_t mode, int flags);

Funktionsmakrokrav för glibc

För att använda dessa funktioner krävs följande makron beroende på version av glibc:

  • fchmod():
 * Sedan glibc 2.24:
_POSIX_C_SOURCE >= 199309L
 * glibc 2.19 till 2.23:
_POSIX_C_SOURCE
 * glibc 2.16 till 2.19:
_BSD_SOURCE || _POSIX_C_SOURCE
 * glibc 2.12 till 2.16:
_BSD_SOURCE || _XOPEN_SOURCE >= 500 || _POSIX_C_SOURCE >= 200809L
 * glibc 2.11 och tidigare:
_BSD_SOURCE || _XOPEN_SOURCE >= 500
  • fchmodat():
 * Sedan glibc 2.10:
_POSIX_C_SOURCE >= 200809L
 * Före glibc 2.10:
_ATFILE_SOURCE

Beskrivning

chmod, fchmod och fchmodat används för att ändra rättighetsbitarna för en fil. Dessa består av behörighetsbitar samt bitarna för set-user-ID, set-group-ID och sticky.

Funktioner

  • chmod
 Ändrar rättigheterna för filen specificerad av pathname. Symboliska länkar följs automatiskt.
  • fchmod
 Ändrar rättigheterna för filen som refereras av filbeskrivaren fd.
  • fchmodat
 Fungerar som chmod, men möjliggör relativa sökvägar baserade på dirfd. Om pathname är relativ tolkas den relativt till katalogen som refereras av dirfd. Flaggor kan inkluderas:
 * AT_SYMLINK_NOFOLLOW - Påverkar den symboliska länken själv, inte filen den pekar på.

Rättighetsbitar

Rättigheterna specificeras i mode, som är en bitmask skapad genom att kombinera följande:

  • Specialbitar:
 * S_ISUID (04000) - Set-user-ID.
 * S_ISGID (02000) - Set-group-ID.
 * S_ISVTX (01000) - Sticky bit.
  • Behörigheter för ägaren:
 * S_IRUSR (00400) - Läs.
 * S_IWUSR (00200) - Skriv.
 * S_IXUSR (00100) - Kör/sök.
  • Behörigheter för gruppen:
 * S_IRGRP (00040) - Läs.
 * S_IWGRP (00020) - Skriv.
 * S_IXGRP (00010) - Kör/sök.
  • Behörigheter för andra:
 * S_IROTH (00004) - Läs.
 * S_IWOTH (00002) - Skriv.
 * S_IXOTH (00001) - Kör/sök.

Returneringsvärde

Vid framgång returneras 0. Vid fel returneras -1 och errno sätts för att indikera typen av fel.

Fel

chmod, fchmod och fchmodat kan misslyckas med följande fel:

  • EACCES - Behörighet saknas för en komponent i sökvägen.
  • EPERM - Processen har inte tillräckliga rättigheter.
  • EROFS - Filen ligger på ett skrivskyddat filsystem.
  • ENOENT - Filen eller katalogen finns inte.
  • ELOOP - För många symboliska länkar i sökvägen.
  • EINVAL - Ogiltig flagga angavs till fchmodat.
  • EBADF - Filbeskrivaren är ogiltig.
  • ENOMEM - Otillräckligt minne.
  • ENOTSUP - Flaggan AT_SYMLINK_NOFOLLOW stöds inte.

Versioner

  • chmod och fchmod introducerades i 4.4BSD och SVr4, och stöds av POSIX.1-2001.
  • fchmodat introducerades i POSIX.1-2008, Linux 2.6.16 och glibc 2.4.

Standarder

Alla funktioner följer POSIX.1-2008.

Se också



Sidslut

Orginalhemsidan på Engelska :https://man7.org/linux/man-pages/man2/chmod.2.html


Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till PC Service som har sponsrat Linux.se med webbhotell.