Θέλω να κάνω κάτι συγκεκριμένο και θέλω να δουλεύει καί σε linux καί σε FreeBSD:
Ας πούμε ότι έχουμε ένα directory έστω το /bla-bla/.
Θέλω με 1-2 εντολές chown & chmod:
1. Όλα τα αρχεία και directories από εκεί και κάτω (μαζί με το /bla-bla/) να έχουν owner -> nobody & owner group -> nobody
2. Όλα τα directories από εκεί και κάτω (μαζί με το /bla-bla/) να έχουν permissions -> 40777 σε (octal) -> δηλαδή όλα, καί τα 9.
3. Όλα τα αρχεία από εκεί και κάτω να έχουν permissions -> 100666 σε (octal) -> δηλαδή όλα read-write από owner, group, others αλλά να ΜΗΝ είναι εκτελέσιμα.
Αναμένω τα φώτα σας.
Εμφάνιση 1-15 από 2341
Θέμα: Ερώτηση για bash
-
26-12-05, 19:03 Ερώτηση για bash #1Επιτέλους το ελάχιστο δυνατό, ευέλικτο, και ψηφιακό κράτος. Με διαρκή αξιολόγηση.
-
Αρχικό μήνυμα από WAntilles
μετά chmod ugoa-xrw bla-bla -R
και chmod u+rw bla-bla -R
Τα directories αν δεν είναι x, δεν τα κάνεις access πάντως!
Τώρα, αφού έχεις φτιάξει τα αρχεία, θα πρέπει να φτιάξεις τα directories να είναι ugoa+rwx το οποίο γίνεται αν κάνεις feed ένα ls μέσω pipe ή command substitution στο chmod...
σκεφτόμουν να σου πω ls /bla-bla/* -R -d -a αλλά δεν κάνει recursion, είναι κάποιο bug?
Οπότε θα το λύσουμε με την find
για να δεις μόνο τα directory κάτω από το bla-bla δώσε:
find /bla-bla -type d
για να τα κάνεις όλα αυτά τώρα αλλαγή με την chmod, δώσε:
chmod ugoa+rwx $(find /bla-bla -type d)
το $() λέγεται command substitution και παίρνει το αποτέλεσμα της εντολής εντός παρενθέσεως και το περνάει σαν παράμετρο στην προηγούμενη εντολή.
Ελπίζω να σου λύνει το πρόβλημα.Τελευταία επεξεργασία από το μέλος pelasgian : 26-12-05 στις 20:16.
... when you damp oscillations, you lose the high points as well as the low.
改善 - kai zen - continuous change for the better - the Tao of Linux.
Linux χωρίς εγκατάσταση, δωρεάν ΝΟΜΙΜΟ office, browser χωρίς ιούς ,
δωρεάν εγκατάσταση Linux, δωρεάν raytracer, γιατί το δωρεάν είναι όλα τα λεφτά...
ΟΔΗΓΙΕΣ εγκατάστασης Linux
-
26-12-05, 20:22 #3Αρχικό μήνυμα από WAntilles
1) chown -R nobody:nobody bla-bla
2) find . -type d -exec chmod 777 {} \;
3) find . ! -type d -exec chmod 666 {} \;
Τα 2 και 3 υποθέτουν ότι τρέχων κατάλογος είναι ο bla-bla (αλλιώς άλλαξε το
"." με το κατάλογο που θες)
-
26-12-05, 21:09 #4Κώδικας:
chown -R nobody:nobody bla-bla find bla-bla -type d -exec chmod 777 {} \; find bla-bla ! -type d -exec chmod 666 {} \;
Βγάλε το "imi" από το nick.Επιτέλους το ελάχιστο δυνατό, ευέλικτο, και ψηφιακό κράτος. Με διαρκή αξιολόγηση.
-
αν είχαν παραδείγματα φίλε Wan, δεν θα ήταν MANual pages, θα ήταν η δομή!
Άλλωστε πάντοτε έχουν το synopsis στην αρχή.
Πάντως μαγκιά που η find έχει το flag -exec, διότι το command substitution έχει περιορισμό στο μέγιστο αριθμό arguments!
Ωραίος, ωραίος!... when you damp oscillations, you lose the high points as well as the low.
改善 - kai zen - continuous change for the better - the Tao of Linux.
Linux χωρίς εγκατάσταση, δωρεάν ΝΟΜΙΜΟ office, browser χωρίς ιούς ,
δωρεάν εγκατάσταση Linux, δωρεάν raytracer, γιατί το δωρεάν είναι όλα τα λεφτά...
ΟΔΗΓΙΕΣ εγκατάστασης Linux
-
26-12-05, 23:19 #6Αρχικό μήνυμα από imitheos
Επιτέλους ένας χριστιανός που λέει τον κατάλογο κατάλογο και όχι φάκελο.
Εύγε
(Άσχετο αλλά να πώ τον πόνο μου: ΜΙΣΗ ΩΡΑ ΣΤΑ ΔΙΟΔΙΑ!!!)Πείτε όχι στα ναρκωτικά.
Δε φτάνουν για όλους!!!
-
29-12-05, 13:22 #7Κώδικας:
chown -R nobody:nobody bla-bla find bla-bla -type d -exec chmod 777 {} \; find bla-bla ! -type d -exec chmod 666 {} \;
π.χ. σε DOS-Windows command prompt το παραπάνω θα το κάναμε ως εξής:
fix.bat
Κώδικας:chown -R nobody:nobody %1 find %1 -type d -exec chmod 777 {} \; find %1 ! -type d -exec chmod 666 {} \;
Κώδικας:fix "adir"
Σε bash θα πάει προφανώς κάπως έτσι:
fix.sh
Κώδικας:!/bin/bash chown -R nobody:nobody ${dir} find ${dir} -type d -exec chmod 777 {} \; find ${dir} ! -type d -exec chmod 666 {} \;
ΥΓ: [action=WAntilles]σκέφτεται καιρός να μάθει και λίγο bash ύστερα από 1.5 χρόνο ενασχόληση με unix-οειδή.[/action]Επιτέλους το ελάχιστο δυνατό, ευέλικτο, και ψηφιακό κράτος. Με διαρκή αξιολόγηση.
-
29-12-05, 13:50 #8αλλά πώς δίνω τιμή στη μεταβλητή ${dir} το πρώτο όρισμα που θα πάρει στην command line;
-
29-12-05, 14:11 #9Αρχικό μήνυμα από hayzel
fix.sh
Κώδικας:!/bin/bash dir=$1 chown -R nobody:nobody $dir find $dir -type d -exec chmod 777 {} \; find $dir ! -type d -exec chmod 666 {} \;
Για τέτοιου είδους σκριπτάκια που φτιάχνω για δική μου χρήση ως superuser, σε ποιό directory είναι η ενδεδειγμένη τοποθέτησή τους, ώστε να βρίσκονται στο path:
α. σε διανομή linux
β. σε FreeBSD 6.0Τελευταία επεξεργασία από το μέλος WAntilles : 29-12-05 στις 17:31.
Επιτέλους το ελάχιστο δυνατό, ευέλικτο, και ψηφιακό κράτος. Με διαρκή αξιολόγηση.
-
29-12-05, 16:56 #10
$dir, χωρίς {}
ΠΡΟΣΘΗΚΗ:
/usr/local/etc δεν θα ήταν κι άσχημα...
Εναλλακτικά, /usr/local/bin ή και .../sbin ίσως.
-
29-12-05, 17:02 #11Αρχικό μήνυμα από pelasgian
ls -R /bla-bla
-
29-12-05, 17:42 #12Αρχικό μήνυμα από frap
Όταν έβαλα το -R τελευταίο στην chown, αυτή μ' έβρισε.Τελευταία επεξεργασία από το μέλος WAntilles : 29-12-05 στις 18:07.
Επιτέλους το ελάχιστο δυνατό, ευέλικτο, και ψηφιακό κράτος. Με διαρκή αξιολόγηση.
-
29-12-05, 17:59 #13
παιδιά ξέρει κανείς αν μπορούμε να χρησιμοποιήσουμε bash με gtk2 ώστε να κάνουμε scriptakia που κάνουν πεντε , 10 απλά πράγματα και ταυτόχρονα να έχουμε γραφικό περιβάλλον. Παράδειγμα: φτιάχνεις ενα πρόγραμμα bash που εγκαθιστά ορισμένα πακέτα (αλλά automatix στο ubuntu) και απευθύνετε σε αρχάριους στο linux.
Υπάρχει κανένας οδηγός για κάτι τέτοιο;
-
29-12-05, 18:01 #14
- Εγγραφή
- 08-01-2004
- Περιοχή
- Espoo, FI
- Ηλικία
- 51
- Μηνύματα
- 21.423
- Downloads
- 41
- Uploads
- 0
- Άρθρα
- 4
- Τύπος
- FTTH
- Ταχύτητα
- 1000/400
- ISP
- Elisa
- Router
- Unifi Gateway Max
Αρχικό μήνυμα από WAntillesΑνυπόγραφος
-
30-12-05, 00:23 #15Αρχικό μήνυμα από WAntilles
Μπορείς να το κάνεις /usr/local/bin/bash για να παίζει σε FreeBSD ή /bin/sh για
να παίζει παντού.
Κώδικας:#!/bin/sh if [ "$1" == "" ]; then echo Dwse ena katalogo re man exit 0 fi chown -R nobody:nobody $1 find $1 -type d -exec chmod 777 {} \; find $1 ! -type d -exec chmod 666 {} \;
Παρόμοια Θέματα
-
Βοήθεια για ένα απλό bash script
Από AddictedToChaos στο φόρουμ Unix - LinuxΜηνύματα: 34Τελευταίο Μήνυμα: 22-07-11, 01:57 -
bash - matlab
Από simeon.mattes στο φόρουμ Unix - LinuxΜηνύματα: 25Τελευταίο Μήνυμα: 25-06-08, 23:00 -
Bash Script help (Αρχάριος)
Από weakwire στο φόρουμ Unix - LinuxΜηνύματα: 12Τελευταίο Μήνυμα: 08-05-07, 00:41 -
bash rename (mv)
Από hayzel στο φόρουμ Unix - LinuxΜηνύματα: 6Τελευταίο Μήνυμα: 07-01-07, 16:33
Bookmarks