.\" -*- coding: UTF-8 -*- .\" Copyright (c) 1992 Drew Eckhardt (drew@cs.colorado.edu), March 28, 1992 .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" Modified by Michael Haardt .\" Modified 1993-07-21 by Rik Faith .\" Modified 1994-08-21 by Michael Chastain .\" Modified 1996-06-13 by aeb .\" Modified 1996-11-06 by Eric S. Raymond .\" Modified 1997-08-21 by Joseph S. Myers .\" Modified 2004-06-23 by Michael Kerrisk .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH chroot 2 "3 kwietnia 2023 r." "Linux man\-pages 6.05.01" .SH NAZWA chroot \- zmienia katalog główny .SH BIBLIOTEKA Standardowa biblioteka C (\fIlibc\fP, \fI\-lc\fP) .SH SKŁADNIA .nf \fB#include \fP .PP \fBint chroot(const char *\fP\fIpath\fP\fB);\fP .fi .PP .RS -4 Wymagane ustawienia makr biblioteki glibc (patrz \fBfeature_test_macros\fP(7)): .RE .PP \fBchroot\fP(): .nf Od glibc 2.2.2: _XOPEN_SOURCE && ! (_POSIX_C_SOURCE >= 200112L) || /* Od glibc 2.20: */ _DEFAULT_SOURCE || /* glibc <= 2.19: */ _BSD_SOURCE Przed glibc 2.2.2: brak .fi .SH OPIS \fBchroot\fP() zmienia katalog główny procesu wywołującego na katalog podany w \fIpath\fP. Ten katalog będzie używany do nazw ścieżek zaczynających się od \fI/\fP. Katalog główny jest dziedziczony przez wszystkie procesy potomne wywołującego procesu. .PP Funkcję \fBchroot\fP(2) może wywołać tylko proces uprzywilejowany (pod Linuksem: ten z przywilejem \fBCAP_SYS_CHROOT\fP w swojej przestrzeni nazw użytkownika). .PP To wywołanie zmienia tylko i wyłącznie składnik procesu rozwiązywania ścieżek. W szczególności nie zostało zaprojektowane w jakimkolwiek stopniu do celów bezpieczeństwa, ani do utworzenia pełnej piaskownicy dla procesu, ani do ograniczenia systemu plików wywołaniom systemowym. W przeszłości \fBchroot\fP() używały demony do ograniczenia się, przed przekazaniem ścieżki, otrzymanej od niezaufanych użytkowników, wywołaniom systemowym takim jak \fBopen\fP(2). Jednak jeśli katalog jest przenoszony z katalogu chroot, atakujący może to wykorzystać i wydostać się również poza katalog chroot. Najłatwiej uczynić to poprzez \fBchdir\fP(2) do katalogu mającego być przeniesionego, poczekanie na przeniesienie i otwarcie ścieżki takiej jak \&../../../etc/passwd. .PP .\" This is how the "slightly trickier variation" works: .\" https://github.com/QubesOS/qubes-secpack/blob/master/QSBs/qsb-014-2015.txt#L142 Nieco bardziej skomplikowany wariant działa również w pewnych przypadkach, gdy \fBchdir\fP(2) nie jest dozwolone. Jeśli demon pozwala na określenie \[Bq]katalogu chroot\[rq], zwykle oznacza to, że jeśli usiłuje się uniemożliwić użytkownikom zdalnym dostępu do plików spoza katalogu chroot, konieczne jest upewnienie się, że katalogi nigdy nie są z niego przenoszone. .PP Wywołanie to nie zmienia bieżącego katalogu roboczego, więc \[Bq]\fI.\fP\[rq] może znajdować się poza drzewem zakorzenionym w \[Bq]\fI/\fP\[rq]. W szczególności, superużytkownik może uciec z \[Bq]uwięzienia w chroot\[rq] wykonując: .PP .in +4n .EX mkdir foo; chroot foo; cd .. .EE .in .PP Wywołanie to nie zamyka otwartych deskryptorów plików, więc takie deskryptory plików mogą zezwalać na dostęp poza nowym drzewem chroot. .SH "WARTOŚĆ ZWRACANA" Po pomyślnym zakończeniu zwracane jest zero. Po błędzie zwracane jest \-1 i ustawiane jest \fIerrno\fP wskazując błąd. .SH BŁĘDY Dla niektórych systemów plików mogą być zwracane inne błędy niż opisane poniżej. Najogólniejsze błędy to: .TP \fBEACCES\fP .\" Also search permission is required on the final component, .\" maybe just to guarantee that it is a directory? Brak praw do przeszukiwania dla składowej ścieżki (zob. także \fBpath_resolution\fP(7)). .TP \fBEFAULT\fP \fIpath\fP wskazuje poza dostępną dla użytkownika przestrzeń adresową. .TP \fBEIO\fP Wystąpił błąd wejścia/wyjścia. .TP \fBELOOP\fP Podczas rozwiązywania \fIpath\fP napotkano zbyt wiele dowiązań symbolicznych. .TP \fBENAMETOOLONG\fP \fIpath\fP jest zbyt długie. .TP \fBENOENT\fP Plik nie istnieje. .TP \fBENOMEM\fP Brak pamięci jądra. .TP \fBENOTDIR\fP Składowa ścieżki \fIpath\fP nie jest katalogiem. .TP \fBEPERM\fP Wywołujący jest niewystarczająco uprzywilejowany. .SH STANDARDY Brak. .SH HISTORIA .\" SVr4 documents additional EINTR, ENOLINK and EMULTIHOP error conditions. .\" X/OPEN does not document EIO, ENOMEM or EFAULT error conditions. SVr4, 4.4BSD, SUSv2 (oznaczone jako LEGACY \- przestarzałe). Funkcja ta nie była częścią POSIX.1\-2001. .SH UWAGI Proces potomny utworzony za pomocą \fBfork\fP(2) dziedziczy katalog główny swojego procesu macierzystego. Katalog główny jest pozostawiany bez zmiany przez \fBexecve\fP(2). .PP Do poznania katalogu głównego procesu można użyć magicznego dowiązania symbolicznego \fI/proc/\fPpid\fI/root\fP, więcej informacji w podręczniku \fBproc\fP(5). .PP FreeBSD ma silniejsze wywołanie systemowe \fIjail\fP(). .SH "ZOBACZ TAKŻE" \fBchroot\fP(1), \fBchdir\fP(2), \fBpivot_root\fP(2), \fBpath_resolution\fP(7), \fBswitch_root\fP(8) .PP .SH TŁUMACZENIE Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Przemek Borys , Robert Luberda i Michał Kułach . .PP Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License w wersji 3 .UE lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI. .PP Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej .MT manpages-pl-list@lists.sourceforge.net .ME .