5 Μαΐου 2012

Εντολές τερματικού Ubuntu (Γ' μέρος)


Δικαιώματα αρχείων
Έχουμε 3 δικαιώματα αρχείων. Δηλαδή, οι χρήστες έχουν 3 δικαιώματα πάνω σε ένα αρχείο:
r (read) Δικαίωμα προβολής και ανάγνωσης των περιεχομένων του αρχείου.
w (write) Δικαίωμα εγγραφής δεδομένων στο αρχείο (τροποποίησης του αρχείου), ακόμη και διαγραφή.
x (eXecute) Δικαίωμα εκτέλεσης ενός αρχείου εφόσον αυτό περιέχει εντολές (Εκτελέσιμο αρχείο)

Επίσης, έχουμε και 3 ομάδες χρηστών:
(User) Ο κάτοχος του αρχείου. Ο δημιουργός του.
g (Group) Οι χρήστες που ανήκουν στην ίδια ομάδα με τον κάτοχο του αρχείου.
(Others) Οι υπόλοιποι εκτός του κάτοχου και της ομάδας του.
Όταν θέλουμε να αναφερθούμε σε όλους τους χρήστες υπάρχει η ένδειξη a (all). Δηλαδή, όλοι οι παραπάνω χρήστες.

Όταν εκτελούμε την εντολή ls -l μπροστά από κάθε αρχείο εμφανίζεται μια σειρά από χαρακτήρες.
Π.χ. -rw-rw-r--

  • Η παύλα μπροστά σημαίνει ότι πρόκειται για αρχείο (όχι φάκελο)
  • Η πρώτη τριάδα χαρακτήρων (rwx) εμφανίζει τα δικαιώματα του κατόχου (user), ο οποίος στο συγκεκριμένο παράδειγμα έχει δικαίωμα Ανάγνωσης (r) και Τροποποίησης (w), ενώ δεν έχει δικαίωμα Εκτέλεσης (-) (σε  απλά αρχεία δεν απαιτείται αυτό το δικαίωμα.
  • Η δεύτερη τριάδα χαρακτήρων (rwx) εμφανίζει τα δικαιώματα των χρηστών που ανήκουν στην ομάδα χρηστών του κατόχου (group), οι οποίοι στο συγκεκριμένο παράδειγμα έχουν δικαίωμα Ανάγνωσης (r) και Τροποποίησης (w), ενώ δεν έχουν δικαίωμα Εκτέλεσης (-).
  • Η τρίτη τριάδα χαρακτήρων (rwx) εμφανίζει τα δικαιώματα των χρηστών που δεν ανήκουν στην ομάδα χρηστών του κατόχου (others),  οι οποίοι στο συγκεκριμένο παράδειγμα έχουν δικαίωμα Ανάγνωσης (r) ενώ δεν έχουν δικαίωμα Τροποποίησης (-) και  εκτέλεσης (-).
  • Αν όλοι οι τύποι χρηστών είχαν όλα τα δικαιώματα πάνω στο αρχείο η σειρά των χαρακτήρων θα ήταν -rwxrwxrwx


Τα παραπάνω δικαιώματα μπορούν να αλλάξουν για κάποιο αρχείο με την εντολή chmod (change mode).
Η εντολή έχει 3 τελεστές και δηλώνουμε και σε ποιο αρχείο αναφερόμαστε. Ο πρώτος είναι σε ποια κατηγορία χρηστών απευθύνεται. Δηλαδή, στον χρήστη (u), στην ομάδα του χρήστη (g), στους υπόλοιπους (o) ή σε όλους (a). Ο δεύτερος αναφέρεται στο αν θα προστεθεί (+) δικαίωμα, αν θα αφαιρεθεί δικαίωμα (-) ή αν θα θέσουμε απόλυτα διακαιώματα (=) στις κατηγορίες χρηστών που αναφερόμαστε. Τέλος, ο τρίτος τελεστής αναφέρεται στα δικαιώματα (r,w,x) που θα προστεθούν, αφαιρεθούν ή θα τεθούν απόλυτα.
Συγκεκριμένα, αν εκτελέσουμε την εντολή chmod go+w file1 αυτό σημαίνει ότι στο αρχείο file1 θα προστεθεί (+) το δικαίωμα τροποποίησης στην ομάδα του χρήστη (g) και σε όλους όσους δεν ανήκουν στην ομάδα (o).
Η εντολή chmod a-wx file2 θα αφαιρέσει το δικαίωμα τροποποίησης και εκτέλεσης από όλους ανεξαιρέτως τους χρήστες για το αρχείο file2.
Η εντολή chmod a=rw file3 θα θέσει απόλυτα δικαιώματα ανάγνωσης και τροποποίησης (δηλαδή θα έχουν αυτά τα δικαιώματα μόνο) όλοι οι χρήστες.

Αρχεία εντολών

Για να κάνουμε ένα αρχείο εντολών θα πρέπει στο περιεχόμενο του κειμένου ενός αρχείου να βάλουμε εντολές.
Για παράδειγμα αν στο περιεχόμενο ενός αρχείου βάλουμε τις παρακάτω γραμμές εντολών:
clear
cd
mkdir dir1
cd dir1
mkdir dir2
pwd
και εκτελέσουμε το παραπάνω αρχείο θα εκτελεστούν οι εντολές που περιέχονται σε αυτό γραμμή-γραμμή.
Δηλαδή,
  • Θα καθαρίσει η οθόνη από προηγούμενες εντολές
  • Θα πάμε στον κατάλογο του χρήστη.
  • Θα δημιουργήσουμε στον κατάλογο του χρήστη τον κατάλογο dir1 
  • Θα μπούμε στον κατάλογο dir1
  • Θα δημιουργήσουμε στον κατάλογο dir1 ένα νέο κατάλογο dir2
  • Τέλος, θα τυπωθεί στην οθόνη ο τρέχων κατάλογος

Για να γίνει αυτό θα ανατρέξουμε στην εντολή cat.
Θα πληκτρολογήσουμε:
cat>program1
clear
cd
mkdir dir1
cd dir1
mkdir dir2
pwd
Πατάμε ctrl-d
Τώρα, για να γίνει το αρχείο εκτελέσιμο (αρχείο εντολών) θα χρησιμοποιήσουμε την εντολή chmod.
Με την εντολή chmod u+x program1 θα δώσουμε στον χρήστη (τον κάτοχο του αρχείου) το δικαίωμα της εκτέλεσης των εντολών που περιέχει το program1.
Τέλος, πληκτρολογώντας sh program1 ο χρήστης θα μπορέσει να τρέξει τις εντολές του αρχείου εντολών program1.