.\" -*- 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 <michael@moria.de>
.\" Modified 1993-07-21 by Rik Faith <faith@cs.unc.edu>
.\" Modified 1994-08-21 by Michael Chastain <mec@shell.portal.com>
.\" Modified 1996-06-13 by aeb
.\" Modified 1996-11-06 by Eric S. Raymond <esr@thyrsus.com>
.\" Modified 1997-08-21 by Joseph S. Myers <jsm28@cam.ac.uk>
.\" Modified 2004-06-23 by Michael Kerrisk <mtk.manpages@gmail.com>
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH chroot 2 "5 lutego 2023 r." "Linux man\-pages 6.03" 
.SH NAZWA
chroot \- zmienia katalog główny
.SH BIBLIOTEKA
Standardowa biblioteka C (\fIlibc\fP, \fI\-lc\fP)
.SH SKŁADNIA
.nf
\fB#include <unistd.h>\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
.\" 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/[pid]/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 <pborys@dione.ids.pl>,
Robert Luberda <robert@debian.org>
i
Michał Kułach <michal.kulach@gmail.com>
.
.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 .
