doc-el commit 850:fa5a138442ac - MFen: 1.153 -> 1.154 basics cha...
freebsd-doc-el at lists.hellug.gr
freebsd-doc-el at lists.hellug.gr
Sat Oct 4 05:07:18 EEST 2008
changeset: 850:fa5a138442ac
user: Manolis Kiagias <sonicy at otenet.gr>
date: 2008-09-29 16:51 +0300
details: http://hg.hellug.gr/freebsd/doc-el/?cmd=changeset;node=fa5a138442ac
description:
MFen: 1.153 -> 1.154 basics chapter (trhodes' permissions patch)
diffs (157 lines):
diff -r 182487419650 -r fa5a138442ac el_GR.ISO8859-7/books/handbook/basics/chapter.sgml
--- a/el_GR.ISO8859-7/books/handbook/basics/chapter.sgml Mon Sep 29 00:24:10 2008 +0300
+++ b/el_GR.ISO8859-7/books/handbook/basics/chapter.sgml Mon Sep 29 16:51:59 2008 +0300
@@ -713,8 +713,152 @@
&man.chflags.1; και &man.chflags.2; για περισσότερες πληροφορίες.
</para>
</sect2>
+
+ <sect2>
+ <sect2info>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Συνεισφορά από τον </contrib>
+ </author>
+ </authorgroup>
+ </sect2info>
+
+ <title>Οι Άδειες setuid, setgid και sticky</title>
+
+ <para>Εκτός από τις άδειες που έχουμε συζητήσει ήδη, υπάρχουν τρεις
+ ακόμα τις οποίες κάθε διαχειριστής πρέπει να γνωρίζει. Πρόκειται για
+ τις άδειες <literal>setuid</literal>, <literal>setgid</literal> και
+ <literal>sticky</literal>.</para>
+
+ <para>Οι παραπάνω είναι σημαντικές για κάποιες λειτουργίες στο &unix;,
+ καθώς παρέχουν λειτουργίες που δεν είναι φυσιολογικά διαθέσιμες στους
+ κοινούς χρήστες. Για να τις κατανοήσετε, θα πρέπει πρώτα να
+ καταλάβετε την διαφορά μεταξύ του πραγματικού αναγνωριστικού χρήστη
+ (real user ID) και του ενεργού αναγνωριστικού χρήστη (effective user
+ ID).</para>
+
+ <para>Το πραγματικό ID του χρήστη, είναι το <acronym>UID</acronym>
+ στο οποίο ανήκει, ή με το οποίο ξεκινά, μια διεργασία. Το ενεργό
+ <acronym>UID</acronym>, είναι το αναγνωριστικό χρήστη το οποίο
+ εκτελεί την διεργασία. Για παράδειγμα, το βοηθητικό πρόγραμμα
+ &man.passwd.1; εκτελείται με το πραγματικό ID του χρήστη που αλλάζει
+ τον κωδικό του. Ωστόσο, για να μπορεί να διαχειριστεί την βάση
+ δεδομένων με τους κωδικούς του συστήματος, το πρόγραμμα αυτό
+ χρησιμοποιεί ως ενεργό ID αυτό του χρήστη <username>root</username>.
+ Με αυτό τον τρόπο, επιτρέπεται στους απλούς χρήστες να αλλάζουν τους
+ κωδικούς τους χωρίς να παίρνουν το μήνυμα λάθους
+ <errorname>Permission Denied</errorname> (απαγόρευση
+ πρόσβασης).</para>
+
+ <note>
+ <para>Η επιλογή <literal>nosuid</literal> στην εντολή &man.mount.8;
+ θα προκαλέσει αποτυχία εκτέλεσης αυτών των εντολών, και μάλιστα
+ χωρίς κάποιο μήνυμα λάθους. Με λίγα λόγια, η εκτέλεση τους θα
+ αποτύχει, και ο χρήστης δεν θα ενημερωθεί για αυτό. Η επιλογή
+ αυτή δεν είναι επίσης απόλυτα ασφαλής, καθώς (σύμφωνα με τη σελίδα
+ manual &man.mount.8;) υπάρχει τρόπος να παρακαμφθεί μέσω κάποιου
+ ενδιάμεσου <literal>nosuid</literal> προγράμματος (wrapper).</para>
+ </note>
+
+ <para>Μπορείτε να καθορίσετε την άδεια setuid, τοποθετώντας τον αριθμό
+ τέσσερα (4) μπροστά από το γενικό σετ των αδειών, όπως φαίνεται
+ στο ακόλουθο παράδειγμα:</para>
+
+ <screen>&prompt.root; <userinput>chmod 4755 suidexample.sh</userinput></screen>
+
+ <para>Οι άδειες στο αρχείο
+ <filename><replaceable>suidexample.sh</replaceable></filename> θα
+ φαίνονται τώρα όπως παρακάτω:</para>
+
+ <programlisting>-rwsr-xr-x 1 trhodes trhodes 63 Aug 29 06:36 suidexample.sh</programlisting>
+
+ <para>Παρατηρήστε στο παράδειγμα, ότι το <literal>s</literal> είναι
+ πλέον μέλος του συνόλου αδειών που έχουν καθοριστεί για τον ιδιοκτήτη
+ του αρχείου, και έχει αντικαταστήσει την αντίστοιχη άδεια εκτέλεσης.
+ Με τον τρόπο αυτό λειτουργούν προγράμματα που χρειάζονται αυξημένα
+ δικαιώματα, όπως για παράδειγμα η εντολή
+ <command>passwd</command>.</para>
+
+ <para>Για να παρατηρήσετε αυτή τη λειτουργία την ώρα που συμβαίνει,
+ ανοίξτε δύο τερματικά. Στο πρώτο, ξεκινήστε την εντολή
+ <command>passwd</command> ως κανονικός χρήστης. Καθώς η εντολή
+ εκτελείται και περιμένει για την εισαγωγή του νέου κωδικού, ελέγξτε
+ τον πίνακα διεργασιών και αναζητήστε τις πληροφορίες του χρήστη που
+ εκτελεί την εντολή <command>passwd</command>.</para>
+
+ <para>Στο τερματικό Α:</para>
+
+ <screen>Changing local password for trhodes
+Old Password:</screen>
+
+ <para>Στο τερματικό Β:<para>
+
+ <screen>&prompt.root; <userinput>ps aux | grep passwd</userinput></screen>
+
+ <screen>trhodes 5232 0.0 0.2 3420 1608 0 R+ 2:10AM 0:00.00 grep passwd
+root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
+
+ <para>Όπως είπαμε παραπάνω, η εντολή <command>passwd</command>
+ εκτελείται από ένα κανονικό χρήστη, αλλά χρησιμοποιεί το ενεργό
+ <acronym>UID</acronym> του χρήστη <username>root</username>.</para>
+
+ <para>Η άδεια <literal>setgid</literal> εκτελεί την ίδια λειτουργία όπως
+ και η <literal>setuid</literal>, αλλά επιδρά στις άδειες της ομάδας
+ (group). Όταν εκτελέσετε μια τέτοια εφαρμογή ή βοηθητικό πρόγραμμα,
+ θα χρησιμοποιεί τις άδειες της ομάδας στην οποία ανήκει το αρχείο,
+ και όχι του χρήστη που την ξεκίνησε.</para>
+
+ <para>Για να θέσετε την άδεια <literal>setgid</literal> σε ένα αρχείο,
+ θα πρέπει να τοποθετήσετε τον αριθμό δύο (2) μπροστά από το σύνολο
+ αδειών, στην εντολή <command>chmod</command>. Δείτε το παρακάτω
+ παράδειγμα:</para>
+
+ <screen>&prompt.root; <userinput>chmod 2755 suidexample.sh</userinput></screen>
+
+ <para>Όπως και πριν, θα παρατηρήσετε τη νέα άδεια <literal>s</literal>,
+ αλλά αυτή τη φορά στο σετ των αδειών της ομάδας:</para>
+
+ <screen>-rwxr-sr-x 1 trhodes trhodes 44 Aug 31 01:49 suidexample.sh</screen>
+
+ <note>
+ <para>Στα παραδείγματα μας, αν και το αρχείο είναι ένα εκτελέσιμο
+ script για κέλυφος, δεν θα εκτελεστεί με διαφορετικό ενεργό ID
+ (<acronym>EUID</acronym>). Αυτό συμβαίνει γιατί σε αυτά τα scripts
+ δεν επιτρέπεται η πρόσβαση στις κλήσεις &man.setuid.2; του
+ συστήματος.</para>
+ </note>
+
+ <para>Οι δύο πρώτες ειδικές άδειες που αναφέραμε,
+ οι <literal>setuid</literal> και <literal>setgid</literal>,
+ ενδεχομένως να μειώσουν την ασφάλεια του συστήματος, αφού επιτρέπουν
+ σε προγράμματα να εκτελούνται με αυξημένα δικαιώματα. Υπάρχει ωστόσο
+ μια τρίτη ειδική άδεια, η οποία μπορεί να αυξήσει την ασφάλεια του
+ συστήματος: το <literal>sticky bit</literal>.</para>
+
+ <para>Όταν θέσετε το <literal>sticky bit</literal> σε ένα κατάλογο,
+ επιτρέπεται η διαγραφή ενός αρχείου μόνο από τον ιδιοκτήτη του.
+ Η άδεια αυτή είναι χρήσιμη για να αποφεύγεται η διαγραφή ενός αρχείου
+ από κοινόχρηστους καταλόγους, όπως για παράδειγμα ο
+ <filename class="directory">/tmp</filename>, από κάποιο χρήστη που
+ δεν είναι ο ιδιοκτήτης του. Για να θέσετε αυτή την άδεια, τοποθετήστε
+ τον αριθμό ένα (1) στην αρχή του σετ αδειών:</para>
+
+ <screen>&prompt.root; <userinput>chmod 1777 /tmp</userinput></screen>
+
+ <para>Μπορείτε τώρα να δείτε το αποτέλεσμα, χρησιμοποιώντας την εντολή
+ <command>ls</command>:</para>
+
+ <screen>&prompt.root; <userinput>ls -al / | grep tmp</userinput></screen>
+
+ <screen>drwxrwxrwt 10 root wheel 512 Aug 31 01:49 tmp</screen>
+
+ <para>Η άδεια <literal>sticky bit</literal> φαίνεται ως
+ <literal>t</literal> στο τέλος του συνόλου των αδειών.</para>
+ </sect2>
</sect1>
-
+
<sect1 id="dirstructure">
<title>Δομή Καταλόγου</title>
<indexterm><primary>ιεραρχία δομής</primary></indexterm>
More information about the Freebsd-doc-el
mailing list