chmod(2): Skillnad mellan sidversioner
Hoppa till navigering
Hoppa till sök
Admin (diskussion | bidrag) (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 skillnad)
|
Versionen från 23 november 2024 kl. 08.00
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.