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