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>