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

fakeroot μέσα σε script


Oxygene

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

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

 

#!/bin/bash

fakeroot

command1

command2

...

commandN

 

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

 

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

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Έχεις δίκιο, το /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).

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

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

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

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

Σύνδεση

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

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