webForumDet fria alternativet

chroot

6 svar · 373 visningar · startad av Razofish

RazofishMedlem sedan sep. 2000605 inlägg
#1

Hej!

Skulle någon vilja förklara för mig hur man använder kommandot chroot :q

Vad jag vill göra är att permanent byta ut root-katalogen för en användare helt enkelt ;)

------------------
- Razofish a.k.a. Per

RobbanMedlem sedan dec. 19992 272 inlägg
#2

Det är egentligen inte svårare än att köra chroot med katalogen som argument.

Men att helt byta root för en användare som som arbetar i skalmiljö är troligen rätt bökigt, eftersom alla program, delade bibliotek, datafiler o.s.v. som den användaren behöver ha tillgång till måste finnas tillgängliga från den nya rooten.

Vad du behöver om du ändå vill prova detta, är någon typ av wrapper som används som den användarens inloggningsprogram (i vanliga fall körs ju skalet när någon loggar in, men det går att ange vilket program som helst i /etc/passwd). Denna wrapper kör då först chroot för att sedan starta skalet (t.ex. bash) i den nya root-miljön.

Har inte hittat någon sådan färdig wrapper för Linux (borde finnas tycker man). Däremot en för FreeBSD som kanske går att modifiera.

------------------
Robban < robban@lipogram.com >

RobbanMedlem sedan dec. 19992 272 inlägg
#3

Tydligen skall OpenSSH (måste patchas), och möjligen SSH2 innehålla stöd för chroot, så genom att skippa telnet för dessa användare och tvinga dem att använda SSH så kan du eventuellt slippa den wrapper jag nämde i föregående inlägg. Har inte tittat på möjligheten i detalj, men jag misstänker starkt att problemet med att filer, delade objekt (.so) o.s.v. fortfarande måste hårdlänkas så att de kan nås från den nya rooten. Krävs lite jobb för att sätta upp en sådan här miljö alltså.

------------------
Robban < robban@lipogram.com >

[Redigerat av Robban den 13 jan 2001]

RazofishMedlem sedan sep. 2000605 inlägg
#4

Hej Robban och tack för hjälpen!

Vad jag ska använda det till är egentligen så att en användare måste logga in på maskinen för att sköta en IRC bouncer, han ska inte komma åt systemet alls. Så jag tänkte flytta hans root till en avsides mapp och flytta in de program han behöver, inte speciellt många :)

------------------
- Razofish a.k.a. Per

[Redigerat av Razofish den 13 jan 2001]

RazofishMedlem sedan sep. 2000605 inlägg
#5

Hej!

Tyvärr kunde i alla fall inte jag kompilera och använda den för FreeBSD, så om Ni skulle stöta på en för Linux (Slackware) så vore jag tacksam :)

------------------
- Razofish a.k.a. Per

RobbanMedlem sedan dec. 19992 272 inlägg
#6

Testade nyss att ladda ner den och kompilera på min RH-burk, och den kompilerade i.a.f. utan protester (har dock inte testat att sätta upp en chroot-miljö).

Vad är det som felar när du försöker? Några felmeddelanden?

------------------
Robban < robban@lipogram.com >

RobbanMedlem sedan dec. 19992 272 inlägg
#7

Har nu lagt upp en hel testmiljö med chrsh, och fått det att fungera utan märkbara problem. Lite snabbt om tillvägagångssättet:

Skapade katalogen /jail (root.root 555)

Skapade katalogen /jail/testuser (root.root 555)

Skapade katalogen /jail/testuser/bin (root.root 555)

Skapade katalogen /jail/testuser/etc (root.root 555)

Skapade katalogen /jail/testuser/home (testuser.testuser 750)

Skapade användaren testuser i gruppen testuser.

Kompilerade chrsh.c:
gcc -o chrsh chrsh.c

Flyttade chrsh till /bin, satte ägare till root.root och ändrade rättigheterna till 04555.

Lade till /bin/chrsh i filen /etc/shells [redigerat](testade utan nu, och det verkar som om det här steget är onödigt)[/redigerat]

Kopierade ett skal till /jail/testuser/bin (för enkelhetens skull valde jag skalet sash). Satte ägare till root.root och rättigheterna 555.

Skapade filerna /jail/testuser/etc/shells, passwd och groups enligt instruktioner.

Ändrade testusers rad i /etc/passwd:
testuser:x:501:501::/jail/testuser/./home:/bin/chrsh

Bör gå att få detta att fungera på Slackware också tycker jag.

------------------
Robban < robban@lipogram.com >

[Redigerat av Robban den 20 jan 2001]

Genererad på 373 ms · cache AV · v20260730165559-full.f96bc7eb