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

users και groups, θέλω να καταλάβω κάτι, χωρίς LDAP


nikolaos_

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

Μέχρι στιγμής έχω σχηματίσει την εικόνα ότι ένας υπολογιστής Linux παρέχει όλα τα προγράμματα στους χρήστες τα οποία βρίσκονται στο /usr/bin και είναι κοινά για όλους. Οι χρήστες κατανέμονται με διάφορους τρόπους σε ομάδες μόνο και μόνο για λόγους πρόσβασης στους home φακέλους καθενός.

 

Ωστόσο εγώ έχω απορία, αν μπορώ χωρίς LDAP, να περιορίσω την χρήση των προγραμμάτων που μπορούν να τρέξουν κάποιοι χρήστες. Θέλω συγκεκριμένα να φτιάξω μια ιεραρχία ομάδων όπου ο χρήστης θα ανήκει μόνο σε μία από αυτές και θα μπορεί να τρέχει ολοένα και περισσότερα προγράμματα όσο ανεβαίνει στην ιεραρχία.

 

Το πρόβλημά μου είναι ότι δεν ξέρω πώς να το σχεδιάσω αυτό το πράγμα και μπλέκουν και οι άλλες ομάδες στις οποίες ανήκουν αυτόματα οι χρήστες.

 

Π.χ. Έχω τα προγράμματα Π1, Π2, Π3, Π4 και τους χρήστες Χ, Ψ, root. Θέλω ο Χ που είναι "χαμηλά" να μπορεί να τρέχει τα Π1, Π2 αλλά όχι τα Π3, Π4. Ο Ψ είναι ψηλά, μπορεί να τρέχει τα Π1, Π2, Π3 αλλά όχι το Π4. Δηλαδή το group του Ψ είναι "υποσύνολο" του Χ. Και τα τέσσερα προγράμματα μπορεί μόνο ο root να τα τρέξει.

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

Μία λύση είναι να κάνεις mount το /usr/bin read-only μόνο απο τον root και να δίνεις μέσω sudo δικαιώματα να τρέχουν τα προγράμματα που θες τα μέλη των group. Aλλα αυτό προυποθέτει ότι οι χρήστες είναι εξοικιωμένοι με το πως να ξεκινούν ένα πρόγραμμα απο τη κονσόλα.Αλλα αυτό έχει και τα αρνητικά του π.χ δεν είναι σωστό να τρέχεις firefox με sudo.Θα μπορούσες επίσης να βάλεις στο home directory του χρήστη τα προγράμματα που μπορούν να τρέξουν ως σοφτλινκς και να βγάλεις απο το path τους το /usr/bin. Αλλα αυτο αν κάποιος γνωρίζει λίγο απο λίνουξτο φέρνει βόλτα εύκολα.

Σαφώς πιο σωστή είναι λύση domain logins(αλλά αυτό προυποθέτει ldap,κερβερο) ή selinux guests/users/xguests

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

Για δες και τα Jails του FreeBSD αν λειτουργούν σε Linux έκδοση που έχεις..αυτά θα σε σώσουν πιστεύω αν λειτουργούν!

Εδώ ξεφευγουν απο jails και chroot δαίμονες που τρέχουν χωρίς shell(/bin/false) δε θα ξεφύγει χρήστης με valid shell? Εκτός κ αν οι χρήστες του είναι τελείως αρχάριοι/άσχετοι

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

Οι διανομές που δουλεύω είναι Ubuntu, Debian, Opensuse και Centos. Μια σκέψη που έκανα είναι να φτιάξω group για κάθε πρόγραμμα που βρίσκεται στο /usr/bin και να βάλω τους users στις ομάδες που θέλω. Όμως δεν μου κολλάει η ιεραρχία και ανησυχώ μήπως το ένα κάνει κλήση στο άλλο και γίνει μπάχαλο.

 

Jails θα τα διαβάσω αλλά δεν έχουν εφαρμογή στην περιπτωσή μου.

 

Δυστυχώς η αναζήτηση στο internet δίνει αποτελέσματα που δεν ξεπερνούν τα βασικά.

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

Ναι κατά καιρούς έχεις δίκιο υπάρχουν διάφορα τέτοια κρούσματα που μπορείς να κάνεις escape από chroot. Από jails όμως ποτέ δεν έχω δει κάτι τέτοιο.(μιλώντας πάντα για το BSD και όχι για τους κλώνους του στο linux που δεν ξέρω)


http://www.freebsd.org/doc/handbook/jails-intro.html

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

Ναι κατά καιρούς έχεις δίκιο υπάρχουν διάφορα τέτοια κρούσματα που μπορείς να κάνεις escape από chroot. Από jails όμως ποτέ δεν έχω δει κάτι τέτοιο.(μιλώντας πάντα για το BSD και όχι για τους κλώνους του στο linux που δεν ξέρω)

http://www.freebsd.org/doc/handbook/jails-intro.html

Φίλε μου σίγουρα στο *bsd υπάρχει σαφέστερος διαχωρισμός ανάμεσα στο userland και στο kernel space και αυτό απο μόνο του είναι security advantage σε σχέση με το λίνουξ. Μη γελιέσαι όμως δεν είναι άτρωτο, ούτε unhackable λειτουργικό. Το γεγονός οτι έχει λίγους/λιγότερους χρήστες συμβάλει στη μυθοποίηση του ως ασφαλέστερου απο όλα τα *nix Τώρα για το φίλο νομίζω είναι overkill να προτείνουμε να μάθει νέο λειτουργικό απο τη στιγμή που δε ξέρει τόσο καλά ούτε το λίνουξ.

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

Δεν προτείνουμε να μάθει freebsd, σαφώς. Απλά λέω αν υπάρχει η ίδια αξιόπιστη λύση και στο linux.

 

Είναι πολύ κοντά στο unhackable. Το FreeBSD φτιάχνεται με πρώτη σκέψη την ασφάλεια και μετά έρχονται όλα τα άλλα. Το ότι δεν χρησιμοποιείτε από πολύ κόσμο είναι άλλο thread από μόνο του.

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

Π.χ. Έχω τα προγράμματα Π1, Π2, Π3, Π4 και τους χρήστες Χ, Ψ, root. Θέλω ο Χ που είναι "χαμηλά" να μπορεί να τρέχει τα Π1, Π2 αλλά όχι τα Π3, Π4. Ο Ψ είναι ψηλά, μπορεί να τρέχει τα Π1, Π2, Π3 αλλά όχι το Π4. Δηλαδή το group του Ψ είναι "υποσύνολο" του Χ. Και τα τέσσερα προγράμματα μπορεί μόνο ο root να τα τρέξει.

 

Με γκρουπς δεν νομιζω να γινεται....δηλ. να ειναι καποιο γκρουπ υποσυνολο του αλλου κλπ κλπ....και μπορει το ενα να καλει το αλλο και παει λεγοντας και να γινει κωλος.

 

Αυτο που σκεφτηκα εχει να κανει με τα PATHs.

 

Δηλαδη φτιαχνεις εναν φακελο καπου π.χ. στο /usr/bin για παραδειγμα /usr/bin/X , /usr/bin/Y

Μετα τραβαμε soft links των προγραμματων απο οπου και αν βρισκονται μεσα στους φακελους αυτους.Αναλογως με το ποιος χρηστης θελουμε να τρεχει τι.

Επειτα στο .bash_profile του καθε χρηστη αφαιρουμε ολα τα paths και βαζουμε το /bin για να χει τις βασικες εντολες και το /usr/bin/X ή οποιος ειναι τελοσπαντων ο χρηστης....

 

Αν θελεις να "ανεβασεις" το επιπεδο του χρηστη..να τρεχει δηλ περισσοτερα προγραμματα...απλα τραβας soft links τα "νεα" προγραμματα που θες να τρεχει στον "φακελο" του.

 

Χοντρικα ετσι το φανταζομαι ...δοκιμασε το να δουμε αν δουλευει κιολας   :)

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

αν φτιάξεις /usr/bin/level1 και /usr/bin/level2 και θες το δεύτερο να είναι υποσύνολο του πρώτου

απλά βάζεις στο πρώτο τα παραπάνω προγράμματα και προσθέτεις και τα δύο στο path του χρήστη που θες

 

πάντως μου κάνει λίγο μπακάλικο

με access control list μου φαίνεται πιο διαχειρίσιμο

 

πχ

root@dlp:~# getfacl /home/test.txt

# file: home/test.txt
# owner: root
# group: root
user::rwx
group::---
group:security:rw-
mask::rw-
other::--- 

όλα στο /usr/bin είναι root:root

αλλάζεις δικαιώματα σε 700 σε όλα και μετά αρχίζεις και φτιάχνεις τα groups που θες και τους δίνεις τα δικαιώματα

βάζεις και το χρήστη στο ανάλογο group και τελείωσες

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

Το ACL διαφέρει από την ιδέα των users/groups;

 

Ξέχασα επίσης να διευκρινήσω ότι τα περισσότερα μηχανήματα είναι ήδη στημένα, οπότε δεν μπορώ απλά να πάρω το πρόγραμμα από το ένα directory και να το ρίξω στο άλλο. Ουσιαστικά θέλω "να βάλω μια τάξη", αν καταλαβαίνετε: πολλοί χρήστες πρέπει να δουλεύουν σε ένα πρόγραμμα "απλού χρήστη", λιγότεροι να δουλεύουν σε ένα πρόγραμμα "εξειδικευμένου" (χωρίς να απαγορεύεται να τρέχουν το "απλό"), ενώ υπάρχουν και χρήστες του συστήματος για διάφορες αυτοματοποιημένες διαχειριστικές εργασίες που μπορεί να τρέχουν ό,τι να 'ναι... Στην πράξη έχω 2-3 ανθρώπους που μπαίνουν με ένα "ισχυρό" λογαριασμό (όλοι το ίδιο) με κοινό username (π.χ. admin) και 8-9 που έχουν τον "απλό", με άλλο επίσης κοινό όμως username (π.χ. user). Το root φυσικά δεν πρέπει να το έχει κανείς τους. Από την άλλη το να φτιάξω 1 user ανά πρόσωπο παρότι ενδεδειγμένο, απλά δεν γίνεται.

 

Είναι λοιπόν σημαντικό να είναι κάτι ενσωματωμένο και σχετικά εύκολα παραμετροποιήσιμο, αν είναι να μην καταφύγω στη λύση users/groups.

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

τo acl είναι το ίδιο πράγμα με τα user/groups αλλά εξελιγμένο

αντί να έχει ένα αρχείο μόνο τα δικαιώματα για user/group/others μπορείς να ορίζεις και δικαιώματα στο συγκεκριμένο αρχείο για συγκεκριμένους χρήστες/groups κλπ

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

Μάλλον φαίνεται χρήσιμο το ACL, ελπίζω να βρω έναν καλό οδηγό για να διαβάσω.

 

Για αρχή: http://www.yolinux.com/TUTORIALS/LinuxTutorialManagingGroups.html#ACL

 

Αν πρόκειται για συγκεκριμένα binaries και όχι του συστήματος

μπορείς να το πετύχεις και με groups per category και απλά με το usermod να δίνεις πρόσβαση

σε περισσότερα από ένα groups στο χρήστη (usermod -a -G group user).

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

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

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

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

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

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

Σύνδεση

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

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