SETARCH(8) Administracja systemem SETARCH(8) NAZWA setarch - zmienia zglaszana architekture w srodowisku nowego programu i/lub ustawia flagi osobowosci SKLADNIA setarch [architektura] [opcje] [program [argument...]] architektura [opcje] [program [argument...]] OPIS setarch modyfikuje domene wykonywania i przetwarza flagi osobowosci. Domena wykonywania obecnie wplywa jedynie na wynik polecenia uname -m. Na przyklad w systemie AMD64, wykonanie setarch i386 program spowoduje, ze program zobaczy i686 zamiast x86_64 jako typ komputera. Domyslnym programem jest /bin/sh. Od wersji 2.33, argument wiersza polecenia architektura jest opcjonalny a setarch moze sluzyc do zmiany flag osobowosci (ADDR_LIMIT_3GB, SHORT_INODE, etc) bez modyfikowania domeny wykonywania. OPCJE --list Wypisuje architektury znane narzedziu setarch. To, czy setarch moze faktycznie ustawic kazda z tych architektur, zalezy od dzialajacego jadra. --show[=osobowosc] Pokazuje obecnie aktywna osobowosc wraz z flagami. Jesli poda sie argument osobowosc, pokazuje ja, zamiast biezacej. Osobowosc jest liczba szesnastkowa, ktorej dopuszczalne wartosci opisano w sys/personality.h. -p, --pid=pid Przy stosowaniu z --show, pokazuje osobowosc i flagi podanego procesu. --uname-2.6 Powoduje, ze podany program zobaczy numer wersji jadra zaczynajacy sie od 2.6. Wlacza UNAME26. -v, --verbose Wiecej szczegolow. -3, --3gb Podany program powinien uzywac co najwyzej 3GB przestrzeni adresowej. Obslugiwane na x86. Wlacza ADDR_LIMIT_3GB. --4gb Opcja nie odnosi skutku. Zachowano ja tylko ze wzgledu na kompatybilnosc wsteczna i moze byc usunieta w przyszlych wydaniach. -B, --32bit Ogranicza przestrzen adresowa do 32 bitow, w celu emulacji sprzetu. Obslugiwane na ARM i Alpha. Wlacza ADDR_LIMIT_32BIT. -F, --fdpic-funcptrs Traktuje wskazniki funkcji z przestrzeni uzytkownika do procedur obslugi sygnalow jako wskazniki do deskryptorow adresow. Opcja nie odnosi skutku na architekturach nieobslugujacych plikow binarnych ELF FDPIC. W jadrze v4.14 obsluga ograniczala sie do architektur ARM, Blackfin, Fujitsu FR-V oraz SuperH CPU. -I, --short-inode Flaga emulujaca stara usterke. Wlacza SHORT_INODE. -L, --addr-compat-layout Udostepnia starszy uklad wirtualnej przestrzeni adresowej. Nalezy stosowac, gdy plik wykonywalny programu nie posiada naglowka ELF PT_GNU_STACK. Wlacza ADDR_COMPAT_LAYOUT. -R, --addr-no-randomize Wylacza stosowanie losowosci wirtualnej przestrzeni adresowej. Wlacza ADDR_NO_RANDOMIZE. -S, --whole-seconds Flaga emulujaca stara usterke. Wlacza WHOLE_SECONDS. -T, --sticky-timeouts Wywolania systemowe select(2), pselect(2) i ppoll(2) beda zachowywaly wartosc czasu przeterminowania, zamiast modyfikowac ja, aby uwzglednic okres braku uspienia przy przerwaniu przez procedure obslugi sygnalu. Opcje nalezy stosowac, gdy program polega na tym zachowaniu. Wiecej szczegolow w opisie czasu przeterminowania w podreczniku select(2). Wlacza STICKY_TIMEOUTS. -X, --read-implies-exec Po podaniu opcji PROT_READ mmap(2) doda rowniez bit PROT_EXEC - jak oczekuja tego stare pliki wykonywalne x86. Prosze zauwazyc, ze mechanizm ladujacy ELF automatycznie ustawi ten bit, gdy natrafi na stary plik wykonywalny. Wlacza READ_IMPLIES_EXEC. -Z, --mmap-page-zero Emulacja usterki SVr4, ustawiajaca mmap(2) strony zerowej jako tylko do odczytu. Nalezy stosowac, gdy program polega na tym zachowaniu, a jego kod zrodlowy jest niedostepny, uniemozliwiajac jego poprawe. Wlacza MMAP_PAGE_ZERO. -h, --help Wyswietla ten tekst i wychodzi. -V, --version Wyswietla wersje i wychodzi. PRZYKLADY 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 AUTORZY Elliot Lee , Jindrich Novy , Karel Zak ZOBACZ TAKZE personality(2), select(2) *proc_pid_personality(5) ZGLASZANIE BLEDOW Problemy nalezy zglaszac w systemie sledzenia bledow . DOSTEPNOSC Polecenie setarch jest czescia pakietu util-linux, ktory mozna pobrac ze strony Archiwum jadra Linux . util-linux 2.42.3 2026-09-02 SETARCH(8)