Προς το περιεχόμενο

fakeroot μέσα σε script


Προτεινόμενες αναρτήσεις

Δημοσ.

Προσπαθώ να γράψω ένα script μέσα στο οποίο οι εντολές θέλω από ένα σημείο και μετά να τρέχουν σε fakeroot environment. Αν γράψω

 

#!/bin/bash

fakeroot

command1

command2

...

commandN

 

(Όπου command1, command2...commandN οι εντολές που θέλω να τρέξω σε fakeroot environment)

 

τότε τρέχει fakeroot και δεν συνεχίζει στις υπόλοιπες εντολές αν δεν κάνω πρώτα ένα exit και φυσικά οι εντολές εκτελούνται εκτός fakeroot environment. Σαν μια πρόχειρη λύση θα μπορούσα να "κοτσάρω" ένα fakeroot μπροστά από την κάθε εντολή, αλλά είναι πάρα πολλές και δεν είμαι και σίγουρος αν θά 'κανε σωστή δουλειά. Κάτι πιο απλό υπάρχει;

Δημοσ.

 

#!/bin/bash
fakeroot /bin/bash
command1
command2
...
commandN
exit #exit fakeroot environment

Έχει την ίδια συμπεριφορά με αυτό που έγραψα πιο πάνω

Δημοσ.

Έχεις δίκιο, το /bin/bash μετά το fakeroot δεν είναι απαραίτητο. Δοκίμασε αυτό:

#!/bin/bash
fakeroot << EOF
command1
command2
...
commandN
EOF

Αν ενδιαφέρεσαι να μάθεις πως/γιατί λειτουργεί, googlαρε για "shell here tag".

Δημοσ.

Το δοκίμασα, αλλά όλες οι εντολές μετά την γραμμή

 

fakeroot /bin/bash << EOF

 

πετάνε λάθος και επιπλέον χαλάνε τα χρώματα στο kwrite από εκείνο το σημείο και μετά (σαν να μου λέει υπάρχει λάθος στην σύνταξη)

 

Το ίδιο και με σκέτο

 

fakeroot << EOF

Δημοσ.

Πόσταρε το κομμάτι του script και το σχετικό output.


Ένα ενδεικτικό script:

#!/bin/bash
whoami
fakeroot /bin/bash << EOF
whoami
touch test
ls -l test
EOF
whoami
ls -l test

Το output του:

$ ./test.sh 
user
root
-rw-r--r-- 1 root root 0 Sep 13 21:17 test
user
-rw-r--r-- 1 user users 0 Sep 13 21:17 test
$
Δημοσ.

Το script είναι τεράστιο. Ενδεικτικό output:

ls: cannot access *: No such file or directory
grep: control: No such file or directory
grep: control: No such file or directory
Usage: grep [OPTION]... PATTERN [FILE]...
Try 'grep --help' for more information.
grep: control: No such file or directory
grep: control: No such file or directory
grep: control: No such file or directory
grep: control: No such file or directory
Usage: grep [OPTION]... PATTERN [FILE]...
Try 'grep --help' for more information.
grep: control: No such file or directory
grep: control: No such file or directory
grep: control: No such file or directory
grep: control: No such file or directory
grep: control: No such file or directory
Usage: grep [OPTION]... PATTERN [FILE]...
Try 'grep --help' for more information.
Usage: grep [OPTION]... PATTERN [FILE]...
Try 'grep --help' for more information.
Usage: grep [OPTION]... PATTERN [FILE]...
Try 'grep --help' for more information.
grep: control: No such file or directory
grep: control: No such file or directory
grep: control: No such file or directory
grep: control: No such file or directory
grep: control: No such file or directory
grep: control: No such file or directory
grep: control: No such file or directory
expr: non-integer argument
Δημοσ.

:confused: Μήπως να περιόριζες τη χρήση του fakeroot? Σε ~3000 γραμμές κώδικα νομίζω είναι επόμενο κάποιες να μην παίζουν σωστά όταν τις κοροϊδεύεις ότι είσαι root.  :-D Άντε να κάνεις debug εδώ...

Δημοσ.

Ναι αλλά όλες οι εντολές τρέχουν σε ένα συγκεκριμένο φάκελο που μπορεί να είναι μέσα στο home οποιουδήποτε χρήστη

 

Το θέμα είναι ότι χωρίς τις γραμμές fakeroot << EOF και EOF το script (το οποίο είναι ανολοκλήρωτο) τρέχει χωρίς errors

Δημοσ.

Για ποιο λόγο χρειάζεσαι fakeroot στην τελική; Για τα archives; Κάνε όλες τις δουλειές σου σαν απλός χρήστης και άλλαξε σε fakeroot μόνο όταν χρειάζεται (i.e. όταν φτιάχνεις τα archives).

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...