SETARCH(8)

NAZWA
setarch - zmienia zgłaszaną architekturę w środowisku nowego programu i/lub ustawia flagi osobowości

SKŁADNIA

setarch [architektura] [opcje] [program [argument...]]

architektura [opcje] [program [argument...]]

OPIS

setarch modyfikuje domenę wykonywania i przetwarza flagi osobowości.

Domena wykonywania obecnie wpływa jedynie na wynik polecenia uname -m. Na przykład w systemie AMD64, wykonanie setarch i386 program spowoduje, że program zobaczy i686 zamiast x86_64 jako typ komputera. Domyślnym programem jest /bin/sh.

Od wersji 2.33, argument wiersza polecenia architektura jest opcjonalny a setarch może służyć do zmiany flag osobowości (ADDR_LIMIT_3GB, SHORT_INODE, etc) bez modyfikowania domeny wykonywania.

OPCJE

--list
    Wypisuje architektury znane narzędziu setarch. To, czy setarch może faktycznie ustawić każdą z tych architektur, zależy od działającego jądra.

--show[=osobowość]
    Pokazuje obecnie aktywną osobowość wraz z flagami. Jeśli poda się argument osobowość, pokazuje ją, zamiast bieżącej. Osobowość jest liczbą szesnastkową, której dopuszczalne wartości opisano w sys/personality.h.

-p, --pid=pid
    Przy stosowaniu z --show, pokazuje osobowość i flagi podanego procesu.

--uname-2.6
    Powoduje, że podany program zobaczy numer wersji jądra zaczynający się od 2.6. Włącza UNAME26.

-v, --verbose
    Więcej szczegółów.

-3, --3gb
    Podany program powinien używać co najwyżej 3GB przestrzeni adresowej. Obsługiwane na x86. Włącza ADDR_LIMIT_3GB.

--4gb
    Opcja nie odnosi skutku. Zachowano ją tylko ze względu na kompatybilność wsteczną i może być usunięta w przyszłych wydaniach.

-B, --32bit
    Ogranicza przestrzeń adresową do 32 bitów, w celu emulacji sprzętu. Obsługiwane na ARM i Alpha. Włącza ADDR_LIMIT_32BIT.

-F, --fdpic-funcptrs
    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 FDPIC. W jądrze v4.14 obsługa ograniczała się do architektur ARM, Blackfin, Fujitsu FR-V oraz SuperH CPU.

-I, --short-inode
    Flaga emulująca starą usterkę. Włącza SHORT_INODE.

-L, --addr-compat-layout
    Udostępnia starszy układ wirtualnej przestrzeni adresowej. Należy stosować, gdy plik wykonywalny programu nie posiada nagłówka ELF PT_GNU_STACK. Włącza ADDR_COMPAT_LAYOUT.

-R, --addr-no-randomize
    Wyłącza stosowanie losowości wirtualnej przestrzeni adresowej. Włącza ADDR_NO_RANDOMIZE.

-S, --whole-seconds
    Flaga emulująca starą usterkę. Włącza WHOLE_SECONDS.

-T, --sticky-timeouts
    Wywołania systemowe select(2), pselect(2) i ppoll(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 program polega na tym zachowaniu. Więcej szczegółów w opisie czasu przeterminowania w podręczniku select(2). Włącza STICKY_TIMEOUTS.

-X, --read-implies-exec
    Po podaniu opcji PROT_READ mmap(2) doda również bit PROT_EXEC - 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 READ_IMPLIES_EXEC.

-Z, --mmap-page-zero
    Emulacja usterki SVr4, ustawiająca mmap(2) strony zerowej jako tylko do odczytu. Należy stosować, gdy program polega na tym zachowaniu, a jego kod źródłowy jest niedostępny, uniemożliwiając jego poprawę. Włącza MMAP_PAGE_ZERO.

-h, --help
    Wyświetla ten tekst i wychodzi.

-V, --version
    Wyświetla wersję i wychodzi.

PRZYKŁADY

    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

ZOBACZ TAKŻE

personality(2), select(2) *proc_pid_personality(5)

ZGŁASZANIE BŁĘDÓW

Problemy należy zgłaszać w

DOSTĘPNOŚĆ

Polecenie setarch jest częścią pakietu util-linux, który można pobrać ze strony