PDA

View Full Version : Το chrooted environment αγνοεί τα bash aliases


WAntilles
11-05-2006, 17:15
Έχω φτιάξει ένα chrooted environment.

Και έχω βάλει στα σωστά bash startup scripts κάποια aliases ώστε να μη γράφω κάποια μακρυνάρια που χρησιμοποιώ συχνά.

Το περίεργο είναι ότι ενώ στο host περιβάλλον λειτουργούν σωστά, το chroot τα αγνοεί τελείως.

Και λογικά δεν πρέπει να φταίει το host περιβάλλον αφού η ίδια συμπεριφορά παρατηρείται είτε είναι host το Gentoo amd64 είτε το Ubuntu amd64.

Το chrooted environment είναι Gentoo x86 οπότε πάντα πριν το chroot προηγείται (όπως πρέπει) το:

linux32 chroot /mnt/chrooted-env /bin/bash

Τα aliases (λογικά) είναι δηλωμένα σωστά, γιατί παραδίπλα που λειτουργεί απαράλλαχτο το chrooted environment σαν αυτόνομο κανονικό σύστημα, λειτουργούν όλα.

Για Gentoo τουλάχιστο (γιατί στα Debian-οειδή είναι διαφορετικά τα σχετικά startup scripts) ξέρω μόνο το ~/.bashrc.

Τα έχω προσθέσει λοιπόν στο /root/.bashrc.

Καμμιά ιδέα γιατί το chroot τα "γράφει" τα aliases, και πώς να διορθωθεί;



Σημ.: Το chroot συνεχίζει να "γράφει" τα aliases ακόμα και αφού δώσω μέσα από αυτό:

source /etc/profile

DarthMoul
11-05-2006, 20:46
Δοκίμασε την εντολή:
chroot /newroot /bin/bash

Επίσης δοκίμασε να αντιγράψεις τα aliases από το .bashrc στο .profile.

Να υποθέσω ότι το ένα περιβάλλον είναι 32 bits και το άλλο 64 bits;

WAntilles
11-05-2006, 21:11
Δοκίμασε την εντολή:
chroot /newroot /bin/bash

Darth Moul, τί εννοείς;

Την εντολή τη δίνω πάντα έτσι:

linux32 chroot /mnt/chrooted-env /bin/bash

Να υποθέσω ότι το ένα περιβάλλον είναι 32 bits και το άλλο 64 bits;

Ναι το host είναι 64-bit και το chrooted είναι 32-bit.

DarthMoul
11-05-2006, 21:33
Ακόμα και αν δεν βάλεις το /bin/bash στο τέλος της εντολής, θα δουλέψει, αλλά θα χρησιμοποιήσει τον bash την αρχικής ρίζας.

Το manual του bash γράφει πως το .bashrc θα αγνοηθεί αν ο bash κληθεί ως sh.

/bin/sh είναι το default shell σε όλα τα unix συστήματα και λογικά θα υπάρχει sh symlink πάνω στον bash για να τον βρίσκουν τα scripts και τα προγράμματα που ακολουθούν αυστηρά unix standards.

ΥΓ. Δοκίμασε να καλέσεις τον bash μέσα από το chrooted environment. Λογικά θα βρει τα aliases μέσα στο .bashrc. Μετά βγαίνεις με διπλό exit.