'\" t
.\"     Title: setarch
.\"    Author: [see the "AUTHOR(S)" section]
.\" Generator: Asciidoctor 2.0.26
.\"      Date: 2026-09-25
.\"    Manual: Administracja systemem
.\"    Source: util-linux 2.42.4
.\"  Language: English
.\"
.TH "SETARCH" "8" "2026-09-25" "util\-linux 2.42.4" "Administracja systemem"
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.ss \n[.ss] 0
.nh
.ad l
.de URL
\fI\\$2\fP <\\$1>\\$3
..
.als MTO URL
.if \n[.g] \{\
.  mso www.tmac
.  am URL
.    ad l
.  .
.  am MTO
.    ad l
.  .
.  LINKSTYLE blue R < >
.\}
.SH "NAZWA"
setarch \- zmienia zgłaszaną architekturę w środowisku nowego programu i/lub ustawia flagi osobowości
.SH "SKŁADNIA"
.sp
\fBsetarch\fP [\fIarchitektura\fP] [opcje] [\fIprogram\fP [\fIargument\fP.\|.\|.]]
.sp
\fIarchitektura\fP [opcje] [\fIprogram\fP [\fIargument\fP.\|.\|.]]
.SH "OPIS"
.sp
\fBsetarch\fP modyfikuje domenę wykonywania i przetwarza flagi osobowości.
.sp
Domena wykonywania obecnie wpływa jedynie na wynik polecenia \fBuname \-m\fP. Na przykład w systemie AMD64, wykonanie \fBsetarch i386\fP \fIprogram\fP spowoduje, że \fIprogram\fP zobaczy \fBi686\fP zamiast \fBx86_64\fP jako typ komputera. Domyślnym programem jest \fB/bin/sh\fP.
.sp
Od wersji 2.33, argument wiersza polecenia \fIarchitektura\fP jest opcjonalny a \fBsetarch\fP może służyć do zmiany flag osobowości (ADDR_LIMIT_3GB, SHORT_INODE, etc) bez modyfikowania domeny wykonywania.
.SH "OPCJE"
.sp
\fB\-\-list\fP
.RS 4
Wypisuje architektury znane narzędziu \fBsetarch\fP. To, czy \fBsetarch\fP może faktycznie ustawić każdą z tych architektur, zależy od działającego jądra.
.RE
.sp
\fB\-\-show\fP[\fB=\fP\fIosobowość\fP]
.RS 4
Pokazuje obecnie aktywną osobowość wraz z flagami. Jeśli poda się argument \fIosobowość\fP, pokazuje ją, zamiast bieżącej. \fIOsobowość\fP jest liczbą szesnastkową, której dopuszczalne wartości opisano w \fBsys/personality.h\fP.
.RE
.sp
\fB\-p\fP, \fB\-\-pid=\fP\fIpid\fP
.RS 4
Przy stosowaniu z \fB\-\-show\fP, pokazuje osobowość i flagi podanego procesu.
.RE
.sp
\fB\-\-uname\-2.6\fP
.RS 4
Powoduje, że podany \fIprogram\fP zobaczy numer wersji jądra zaczynający się od 2.6. Włącza \fBUNAME26\fP.
.RE
.sp
\fB\-v\fP, \fB\-\-verbose\fP
.RS 4
Więcej szczegółów.
.RE
.sp
\fB\-3\fP, \fB\-\-3gb\fP
.RS 4
Podany \fIprogram\fP powinien używać co najwyżej 3GB przestrzeni adresowej. Obsługiwane na x86. Włącza \fBADDR_LIMIT_3GB\fP.
.RE
.sp
\fB\-\-4gb\fP
.RS 4
Opcja nie odnosi skutku. Zachowano ją tylko ze względu na kompatybilność wsteczną i może być usunięta w przyszłych wydaniach.
.RE
.sp
\fB\-B\fP, \fB\-\-32bit\fP
.RS 4
Ogranicza przestrzeń adresową do 32 bitów, w celu emulacji sprzętu. Obsługiwane na ARM i Alpha. Włącza \fBADDR_LIMIT_32BIT\fP.
.RE
.sp
\fB\-F\fP, \fB\-\-fdpic\-funcptrs\fP
.RS 4
Traktuje wskaźniki funkcji z przestrzeni użytkownika do procedur obsługi sygnałów jako wskaźniki do deskryptorów adresów. Opcja nie odnosi skutku na architekturach nieobsługujących plików binarnych ELF \fBFDPIC\fP. W jądrze v4.14 obsługa ograniczała się do architektur ARM, Blackfin, Fujitsu FR\-V oraz SuperH CPU.
.RE
.sp
\fB\-I\fP, \fB\-\-short\-inode\fP
.RS 4
Flaga emulująca starą usterkę. Włącza \fBSHORT_INODE\fP.
.RE
.sp
\fB\-L\fP, \fB\-\-addr\-compat\-layout\fP
.RS 4
Udostępnia starszy układ wirtualnej przestrzeni adresowej. Należy stosować, gdy plik wykonywalny \fIprogramu\fP nie posiada nagłówka ELF \fBPT_GNU_STACK\fP. Włącza \fBADDR_COMPAT_LAYOUT\fP.
.RE
.sp
\fB\-R\fP, \fB\-\-addr\-no\-randomize\fP
.RS 4
Wyłącza stosowanie losowości wirtualnej przestrzeni adresowej. Włącza \fBADDR_NO_RANDOMIZE\fP.
.RE
.sp
\fB\-S\fP, \fB\-\-whole\-seconds\fP
.RS 4
Flaga emulująca starą usterkę. Włącza \fBWHOLE_SECONDS\fP.
.RE
.sp
\fB\-T\fP, \fB\-\-sticky\-timeouts\fP
.RS 4
Wywołania systemowe \fBselect\fP(2), \fBpselect\fP(2) i \fBppoll\fP(2) będą zachowywały wartość czasu przeterminowania, zamiast modyfikować ją, aby uwzględnić okres braku uśpienia przy przerwaniu przez procedurę obsługi sygnału. Opcję należy stosować, gdy \fIprogram\fP polega na tym zachowaniu. Więcej szczegółów w opisie czasu przeterminowania w podręczniku \fBselect\fP(2). Włącza \fBSTICKY_TIMEOUTS\fP.
.RE
.sp
\fB\-X\fP, \fB\-\-read\-implies\-exec\fP
.RS 4
Po podaniu opcji \fBPROT_READ\fP \fBmmap\fP(2) doda również bit \fBPROT_EXEC\fP \- jak oczekują tego stare pliki wykonywalne x86. Proszę zauważyć, że mechanizm ładujący ELF automatycznie ustawi ten bit, gdy natrafi na stary plik wykonywalny. Włącza \fBREAD_IMPLIES_EXEC\fP.
.RE
.sp
\fB\-Z\fP, \fB\-\-mmap\-page\-zero\fP
.RS 4
Emulacja usterki SVr4, ustawiająca \fBmmap\fP(2) strony zerowej jako tylko do odczytu. Należy stosować, gdy \fIprogram\fP polega na tym zachowaniu, a jego kod źródłowy jest niedostępny, uniemożliwiając jego poprawę. Włącza \fBMMAP_PAGE_ZERO\fP.
.RE
.sp
\fB\-h\fP, \fB\-\-help\fP
.RS 4
Wyświetla ten tekst i wychodzi.
.RE
.sp
\fB\-V\fP, \fB\-\-version\fP
.RS 4
Wyświetla wersję i wychodzi.
.RE
.SH "PRZYKŁADY"
.sp
.if n .RS 4
.nf
.fam C
setarch \-\-addr\-no\-randomize mytestprog
setarch ppc32 rpmbuild \-\-target=ppc \-\-rebuild foo.src.rpm
setarch ppc32 \-vL3 rpmbuild \-\-target=ppc \-\-rebuild bar.src.rpm
setarch ppc32 \-\-32bit rpmbuild \-\-target=ppc \-\-rebuild foo.src.rpm
setarch \-\-show
setarch \-\-show=$(cat /proc/9284/personality)
setarch \-\-show \-\-pid 9284
.fam
.fi
.if n .RE
.SH "AUTORZY"
.sp
.MTO "sopwith\(atredhat.com" "Elliot Lee" ","
.MTO "jnovy\(atredhat.com" "Jindrich Novy" ","
.MTO "kzak\(atredhat.com" "Karel Zak" ""
.SH "ZOBACZ TAKŻE"
.sp
\fBpersonality\fP(2), \fBselect\fP(2) *proc_pid_personality(5)
.SH "ZGŁASZANIE BŁĘDÓW"
.sp
Problemy należy zgłaszać w \c
.URL "https://github.com/util\-linux/util\-linux/issues" "systemie śledzenia błędów" "."
.SH "DOSTĘPNOŚĆ"
.sp
Polecenie \fBsetarch\fP jest częścią pakietu util\-linux, który można pobrać ze strony \c
.URL "https://www.kernel.org/pub/linux/utils/util\-linux/" "Archiwum jądra Linux" "."
