Scroll to navigation

SETARCH(8) Systemadministration SETARCH(8)

NAMN

setarch - ändra rapporterad arkitektur i ny programmiljö och/eller sätt personlighetsflaggor

SYNOPSIS

setarch [arch] [flaggor] [program [argument...]]

arkitektur [flaggor] [program [argument...]]

BESKRIVNING

setarch ändrar exekveringsdomänen och processens personlighetsflaggor.

Exekveringsdomänen påverkar för närvarande endast utdata från uname -m. Exempelvis gör setarch i386 program på ett AMD64-system att program ser i686 i stället för x86_64 som maskintyp. Standardvärdet för program är /bin/sh.

Sedan version 2.33 är kommandoradsargumentet arkitektur valfritt och setarch kan användas för att ändra personlighetsflaggor (ADDR_LIMIT_3GB, SHORT_INODE etc.) utan att ändra exekveringsdomänen.

FLAGGOR

--list

Lista de arkitekturer som setarch känner till. Huruvida setarch faktiskt kan ställa in var och en av dessa arkitekturer beror på den körande kärnan.

--show[=personlighet]

Visa den aktuella personligheten och flaggorna. Om argumentet personlighet anges visas denna i stället för den aktuella. personlighet är ett hexadecimalt tal vars möjliga värden beskrivs i sys/personality.h.

-p, --pid=pid

Vid användning med --show, visa personligheten och flaggorna för angiven process.

--uname-2.6

Gör att programmet ser ett kärnversionsnummer som börjar med 2.6. Aktiverar UNAME26.

-v, --verbose

Var utförlig.

-3, --3gb

Anger att program ska använda maximalt 3 GB adressutrymme. Stöds på x86. Aktiverar ADDR_LIMIT_3GB.

--4gb

Denna flagga har ingen effekt. Det behålls endast för bakåtkompatibilitet och kan komma att tas bort i framtida versioner.

-B, --32bit

Begränsa adressrymden till 32 bitar för att emulera hårdvara. Stöds av ARM och Alpha. Slår på ADDR_LIMIT_32BIT.

-F, --fdpic-funcptrs

Behandla funktionspekare till signalhanterare i användarrymden som pekare till adressdeskriptorer. Denna flagga har ingen effekt på arkitekturer som inte stöder FDPIC ELF-binärfiler. I kärnan v4.14 är stödet begränsat till ARM-, Blackfin-, Fujitsu FR-V- och SuperH-processorarkitekturer.

-I, --short-inode

Föråldrad flagga för felemulering. Slår på SHORT_INODE.

-L, --addr-compat-layout

Tillhandahåller layout för äldre virtuellt adressutrymme. Används när program binärfilen inte har PT_GNU_STACK ELF-huvud. Slår på ADDR_COMPAT_LAYOUT.

-R, --addr-no-randomize

Inaktiverar randomisering av det virtuella adressutrymmet. Aktiverar ADDR_NO_RANDOMIZE.

-S, --whole-seconds

Föråldrad flagga för felemulering. Slår på WHOLE_SECONDS.

-T, --sticky-timeouts

Detta gör att systemanropen select(2), pselect(2) och ppoll(2) behåller timeout-värdet istället för att ändra det för att återspegla den tid som inte sovits när de avbryts av en signalhanterare. Används när program är beroende av detta beteende. Mer information finns i beskrivningen av timeout på manualsidan för select(2). Slår på STICKY_TIMEOUTS.

-X, --read-implies-exec

Om detta är inställt kommer mmap(2) PROT_READ också att lägga till PROT_EXEC-biten - vilket förväntas av äldre x86-binärfiler. Observera att ELF-laddaren automatiskt kommer att sätta denna bit när den stöter på en äldre binärfil. Slår på READ_IMPLIES_EXEC.

-Z, --mmap-page-zero

SVr4-buggemulering som sätter mmap(2)-sidan noll som skrivskyddad. Används när program är beroende av detta beteende och källkoden inte är tillgänglig för att åtgärdas. Slår på MMAP_PAGE_ZERO.

-h, --help

Visa hjälptext och avsluta.

-V, --version

Visa version och avsluta.

EXEMPEL

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

UPPHOVSPERSONER

Elliot Lee <sopwith@redhat.com>, Jindrich Novy <jnovy@redhat.com>, Karel Zak <kzak@redhat.com>

SE ÄVEN

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

FELRAPPORTERING

För felrapporter, använd felhanteraren <https://github.com/util-linux/util-linux/issues>.

TILLGÄNGLIGHET

Kommandot setarch ingår i paketet util-linux som kan hämtas från Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.

2026-09-25 util-linux 2.42.4