Linux operētājsistēmai ir pieejams rīks, kas pazīstams kā chroot, kas nodrošina vieglāku un ātrāku veidu, kā smilškastīt lietojumprogrammu. Izmantojot chroot, jūs varat instalēt un pārbaudīt jebkuru lietojumprogrammu, neietekmējot pārējo sistēmu.
Šajā rakstā tiks izskaidrots, kā izmantot chroot Debian 10 Buster, kā arī daži piemēri. Skaidrojumam mēs izveidosim chroot vidi bash un dažām komandām, piemēram, komandām “ls”, “ip” un “pwd”.
Kas ir chroot?
Chroot rīks ir komanda Linux, kas maina lietojumprogrammas saknes direktoriju uz citu direktoriju. Procesi, kas darbojas šajā jaunajā saknes direktorijā, nevar piekļūt failiem ārpus tā. Tādējādi tas izolē lietojumprogrammu darbības no pārējās sistēmas.
Kā darbojas chroot?
Chroot darbojas, kopējot lietojumprogrammu un visus tās izpildāmos failus un atkarības alternatīvā saknes direktorijā. Pēc tam tā palaiž lietojumprogrammu no šī alternatīvā saknes direktorija, liekot lietojumprogrammai to uzskatīt par sākotnējo saknes direktoriju. Saknes direktorijs ir hierarhijas augšējais direktorijs, un neviena lietojumprogramma nevar sasniegt augstāk par šo direktoriju, tāpēc šādā veidā chroot izolē lietojumprogrammu no pārējās sistēmas.
Lietot lietas
- Testa vides iestatīšana
- 32 bitu programmu palaišana 64 bitu sistēmā
- Vecāku programmu versiju palaišana jaunākajā OS versijā
- Paroles atkopšana
Sintakse
Šī ir komandas chroot pamata sintakse:
$ chrootVeiciet tālāk norādītās darbības, lai izmantotu chroot komandu Debian, lai iestatītu chroot vidi.
1. Izveidojiet alternatīvu saknes direktoriju
Vispirms izveidojiet alternatīvu saknes direktoriju, ko izmantot chroot videi.
$ sudo mkdir ~ / new_rootIepriekš minētā komanda izveidos new_root direktoriju zem Mājas direktoriju, kas tiks izmantots kā saknes direktorijs chroot vidē.
2. Pievienojiet būtiskos direktorijus
Zem mapes izveidojiet direktorijas “bin”, “lib” un “lib64” ~ / new_root direktorijs:
$ sudo mkdir -p ~ / new_root / bin, lib, lib643. Kopēt programmas bināros failus
Visam, kas nepieciešams, lai palaistu lietojumprogrammu chroot vidē, jābūt alternatīvajā saknes direktorijā. Šajā rakstā mēs izveidosim chroot vidi bash un dažām komandām, ieskaitot komandas “ls”, “ip” un “pwd”. Tāpēc mēs kopēsim bināros failus no / bin direktoriju uz aizstājēju ~ / new_root / bin direktorijā. Lai atrastu komandu bināros failus, izmantojiet komandu:
$ kas bash ls ip pwd
Pēc tam kopējiet komandu bināros failus uz ~ / new_root / bin direktorijā.
$ sudo cp -v / bin / bash, ls, ip, pwd ~ / new_root / bin
4. Kopēt programmas atkarības
Mums būs arī jānoskaidro, kādas atkarības ir nepieciešamas mūsu programmai. Pirmkārt, mums būs jāatrod, kādas ir šīs atkarības, un tad mēs tās kopēsim ~ / new_root / lib direktorija.
Kopē atkarības no bash
Vispirms noskaidrojiet bash programmas atkarības:
$ ldd / bin / bash
Pēc tam kopējiet šīs atkarības ~ / new_root / lib direktorijā.
$ cp -v / lib / x86_64-linux-gnu / libtinfo.tātad.6, libdl.tātad.2, libc.tātad.6 ~ / new_root / libFailiem / lib64 kopējiet tos uz ~ / new_root / lib64 direktorijā.
$ cp -v / lib64 / ld-linux-x86-64.tātad.2 ~ / new_root / lib64Kopēt ls komandas atkarības
Vispirms noskaidrojiet komandas ls atkarības:
$ ldd / bin / ls
Pēc tam kopējiet šīs atkarības ~ / new_root / lib direktorijā.
$ sudo cp -v / lib / x86_64-linux-gnu / libselinux.tātad.1, libc.tātad.6, libpcre.tātad.3,libdl.tātad.2, libpthread.tātad.0 / lib64 / ld-linux-x86-64.tātad.2 ~ / new_root / lib
Failiem / lib64 kopējiet tos uz ~ / new_root / lib64 direktorijā.
$ sudo cp -v / lib64 / ld-linux-x86-64.tātad.2 ~ / new_root / lib64Kopēt ip komandas atkarības
Vispirms noskaidrojiet ip komandas atkarības:
$ ldd / bin / ip
Pēc tam kopējiet šīs atkarības ~ / new_root / lib direktorijā.
$ cp -v / lib / x86_64-linuxgnu / libselinux.tātad.1, libelf.tātad.1, libmnl.tātad.0, libcap.tātad.2, libdl.tātad.2, libc.tātad.6,
libpcre.tātad.3, libz.tātad.1, libpthread.tātad.0 ~ / new_root / lib
Failiem / lib64 kopējiet tos uz ~ / new_root / lib64 direktorijā.
$ sudo cp -v / lib64 / ld-linux-x86-64.tātad.2 ~ / new_root / lib64Kopēt pwd komandas atkarības
Vispirms uzziniet komandas pwd atkarības:
$ ldd / bin / pwd
Pēc tam kopējiet šīs atkarības ~ / new_root / lib direktorijā.
$ sudo cp -v / lib / x86_64-linux-gnu / libc.tātad.6 ~ / new_root / libFailiem / lib64 kopējiet tos uz ~ / new_root / lib64 direktorijā.
$ sudo cp -v / lib64 / ld-linux-x86-64.tātad.2 ~ / new_root / lib64Lai skatītu visus direktorijus alternatīvajā saknes direktorijā, izmantojiet šādu komandu:
$ ls -R
5. Pārslēdzieties uz Alternatīvo saknes direktoriju
Tagad mēs beidzot esam gatavi pāriet uz savu jauno chroot vidi. Lai mainītu saknes direktoriju, palaidiet šādu komandu čaulā ar root tiesībām:
$ sudo chroot ~ / new_root / bin / bashKur ~ / new_root ir mūsu alternatīvais saknes direktorijs un / bin / bash ir lietojumprogramma, kuru esam izmantojuši, lai izveidotu chroot vidi.
Pēc iepriekš minētās komandas izpildīšanas jūs redzēsiet, ka uzvedne bash ir mainīta uz bash-x.y kas mūsu gadījumā ir bash-5.0 (kur 5.0 ir bash versijas numurs).
Piezīme: pēc chroot komandas palaišanas, kā es to izdarīju, var rasties šāda kļūda:
Ja rodas šī kļūda, pārbaudiet, vai esat pievienojis visas bibliotēkas un izpildāmos failus, kas saistīti ar nepieciešamo programmu, jaunajā saknes direktorijā.
Pēc ievadīšanas chroot vidē jūs varēsiet piekļūt tikai tajā esošajam failam. Mēģiniet palaist komandas, kuras esat iestatījis savai videi, ieskaitot dažas iebūvētās komandas. Iebūvētās komandas varat atrast, palaižot palīdzība komanda čaulā.
Var redzēt, ka mēs esam izmēģinājuši komandas “ls”, “pw” un “ip”, un visi no tiem izdevās. Ja mēs izpildīsim jebkuru citu komandu, izņemot šīs trīs komandas un iebūvētās komandas, komanda neizdosies, jo mēs to neesam iestatījuši chroot videi. Kā redzat nākamajā ekrānuzņēmumā, mēs esam mēģinājuši palaist komandas “touch”, “ping” un “clear”, un visas no tām neizdevās.
6. Iziet no chroot
Lai izietu no chroot vides, izmantojiet Izeja komandu.
Secinājums
Šajā rakstā jūs uzzinājāt, kas ir chroot un kā tas darbojas Linux. Šis raksts soli pa solim parādīja, kā izmantot chroot Debian 10 Buster, lai izveidotu chroot vidi bash un citām komandām. Tagad jums vajadzētu būt ērti izmantot komandu chroot, lai mainītu procesa un tā apakšprocesu saknes direktoriju un izolētu tos no pārējās sistēmas.