Εμφάνιση 1-7 από 7
  1. #1
    Εγγραφή
    12-07-2017
    Ηλικία
    40
    Μηνύματα
    27
    Downloads
    0
    Uploads
    0
    ISP
    HOL
    Router
    Netgear R7000/DD-WRT
    Καλημέρα σε όλους.

    Προσπαθώ να εκτελέσω συγκεκριμένες εντολές από το command prompt του root αλλά ως διαφορετικός χρήστης.

    Ο υπάρχων χρήστης είναι ο user1 για τον οποίον έχω την παρακάτω γραμμή στο /etc/sudoers:

    Κώδικας:
    user1 ALL=(ALL) ALL
    Παίρνω κονσόλα λοιπόν ως root και δίνω:

    Κώδικας:
    sudo -u user1 whoami
    το αποτέλεσμα είναι
    Κώδικας:
    user1
    Συνεχίζω τώρα και προσπαθώ να δώσω άλλες εντολές όπως pacman -Syu (δουλεύω σε arch), mount κλπ, το αποτέλεσμα είναι:
    Κώδικας:
    sudo -u user1 pacman -Syu
    Κώδικας:
    error: you cannot perform this operation unless you are root.
    Εδώ διαπιστώνω ότι κάτι δεν έχω καταλάβει σωστά, γιατί κανονικά θα έπρεπε να με ρωτάει το password του user1 και να εκτελει την εντολή.

    Όλα αυτά φαντάζουν κάπως άσκοπα, αλλά ο τελικός σκοπός είναι να εκτελεί συγκεκριμένες εντολές ο user http (ο ανάλογος του www-data σε debian και άλλες διανομές), μέσα από php script και χρήση nginx.

    Έχετε καμιά ιδέα πως θα δουλέψει το pacman στο παραπάνω σενάριο;

    Ευχαριστώ εκ των προτέρων.

    - - - Updated - - -

    Μετά από 100000 δοκιμές, έδωσα την παρακάτω και δούλεψε:
    Κώδικας:
    sudo -u user1 sudo pacman -Syu
    και επιτελους ζητάει τον κωδικό του user1.

    Παρόλα αυτά μου φαίνεται παρανοική η παραπάνω σύνταξη. Χρησιμοποιεί δηλαδή το sudo -u απλά για να εξομοιώσει τον user και μετά θέλει και ένα δεύτερο sudo.

    Τι στο καλό συμβαίνει;

  2. #2
    Εγγραφή
    13-11-2011
    Περιοχή
    Χολαργός
    Ηλικία
    37
    Μηνύματα
    1.446
    Downloads
    1
    Uploads
    0
    Τύπος
    VDSL2
    Ταχύτητα
    24000 / 4500
    ISP
    Wind
    DSLAM
    Wind - ΧΟΛΑΡΓΟΣ
    Path Level
    Interleaved
    Πρέπει να φανταστείς λίγο την εντολή sudo σαν ο ίδιος χρήστης να παίρνει τα δικαιώματα κάποιου άλλου. Έτσι, όταν είσαι στον user1 και τρέχεις sudo στην ουσία επιτρέπεις στον user1 να τρέξει μία εντολή με τα δικαιώματα του root (ή όποιου άλλου χρήστη έχει οριστεί).
    Όταν είσαι συνδεδεμένος σαν user1, τρέχοντας
    Κώδικας:
    sudo pacman -Syu
    παίρνεις δικαίωμα να τρέξεις το pacman αλλά με δικαιώματα root. Αν απλά τρέξεις `pacman -Syu` δεν θα στο επιτρέψει.

    Τρέχοντας την εντολή
    Κώδικας:
    sudo -u user1
    στην ουσία τρέχεις κάτι με τα δικαιώματα του user1. Ο user1 όμως δεν έχει δικαίωμα να τρέξει το pacman. Για αυτό και το error.

    Τρέχοντας
    Κώδικας:
    sudo -u user1 sudo pacman -Syu
    παίρνεις από τον root δικαίωμα να τρέξεις κάτι σαν user1 και από τον user1 ζητάς το δικαίωμα να τρέξεις κάτι σαν root. Έτσι φαίνεται ότι την εντολή την έτρεξε ο user1 αλλά με ίδια δικαιώματα, σαν να ήταν root.

  3. #3
    Εγγραφή
    12-07-2017
    Ηλικία
    40
    Μηνύματα
    27
    Downloads
    0
    Uploads
    0
    ISP
    HOL
    Router
    Netgear R7000/DD-WRT
    Σε ευχαριστώ πολύ. Ήταν λάθος αυτό που είχα καταλάβει για το -u option. Νόμιζα ότι αρκεί για να τρέξει η εντολή με χρήστη τον user1 και τα ορισμένα δικαιώματά του στο sudoers, ενώ απλά προσομοίωνε το χρήστη και ήθελε και το δεύτερο sudo.

  4. #4
    Εγγραφή
    20-12-2005
    Μηνύματα
    3.215
    Downloads
    4
    Uploads
    0
    Τύπος
    VDSL2
    Ταχύτητα
    49997/4997
    ISP
    ΟΤΕ Conn-x
    DSLAM
    ΟΤΕ - ΞΑΝΘΗ
    Router
    Speedport W 724V
    SNR / Attn
    24,4(dB) / (dB)
    Παράθεση Αρχικό μήνυμα από tuxx Εμφάνιση μηνυμάτων
    Σε ευχαριστώ πολύ. Ήταν λάθος αυτό που είχα καταλάβει για το -u option. Νόμιζα ότι αρκεί για να τρέξει η εντολή με χρήστη τον user1 και τα ορισμένα δικαιώματά του στο sudoers, ενώ απλά προσομοίωνε το χρήστη και ήθελε και το δεύτερο sudo.
    Είναι όπως σου το εξήγησε ο mitsakos. Η su (και κατ επέκταση και η sudo) όπως λέει και το όνομά της (substitute user) τρέχει κάτι σαν άλλος χρήστης. Για να μπορεί όμως να τρέξει αυτό το κάτι πρέπει ο χρήστης κάτω από την ομπρέλα του οποίου θα τρέξει να μπορεί να το τρέξει. Δεν σου πέρασε αυτό από το μυαλό γιατί στο 99% των περιπτώσεων χρησιμοποιούμε τα su / sudo για να αλλάξουμε από ένα χρήστη στον root ο οποίος μπορεί να τρέξει τα πάντα.

    Όταν όμως αλλάξεις από root σε κάποιο χρήστη, τότε είναι δυνατόν να μην μπορεί να τρέξει κάποια λειτουργία. Επίσης μια άλλη διαφοροποίηση είναι ότι δεν σου ζητάει κωδικό όταν αλλάζεις από root σε κάποιο χρήστη επειδή ο root είναι πιο δυνατός χρήστης οπότε σου λέει δεν χρειάζεται να ζητήσει κωδικό. Για αυτό περίμενες να σου ζητήσει κωδικό και δεν το έκανε.

    Το sudo σου δηλαδή έτρεχε σωστά και άλλαζε το περιβάλλον σαν να είσαι user1 όπως είδες και με το whoami. Το pacman όμως για να αναβαθμίσει την βάση του με τα προγράμματα πρέπει να γράψει σε καταλόγους που δεν έχει άδεια ο user1 οπότε δεν μπορεί να παίξει. Για αυτό το λόγο προνόησαν οι devs του και έχουν βάλει έλεγχο αν πας να το τρέξεις σαν απλός χρήστης να μην τρέχει. Το μήνυμα λάθους δηλαδή που έπαιρνες ήταν του pacman και όχι του sudo.

    Αν οι εντολές που θέλεις να τρέξεις δεν είναι γενικά διάφορες εντολές αλλά συγκεκριμένα ο pacman τότε ο δόκιμος τρόπος είναι να ψάξεις πώς γίνεται αυτό μέσα από τον pacman και όχι μέσα από το sudo. Για παράδειγμα, η portage του gentoo έχει άδειες portageortage και όλο το χτίσιμο γίνεται επίσης σαν αυτός ο χρήστης. Έτσι λοιπόν αν βάλουμε ένα χρήστη στην ομάδα portage θα μπορεί και να τρέχει το αντίστοιχο του pacman -Sy για να ανανεώσει την βάση με τα προγράμματα και θα μπορεί να χτίσει κιόλας (φυσικά μέχρι το στάδιο της εγκατάστασης όπου εκεί θα του ζητήσει τον κωδικό για να γυρίσει σε root). Θα ψάξεις στο archwiki μήπως και ο pacman έχει υποστήριξη για να τρέχει σαν απλός χρήστης (τουλάχιστον κάποιες λειτουργίες του)
    "I like offending people, because I think people who get offended should be offended" - Linus Torvalds

    "Παλιά είχαμε φτωχούς οι οποίοι ζούσανε σε φτωχογειτονιές. Τώρα, η οικονομικά δυσπραγούσα τάξη
    κατέχει στέγες υποδεέστερης ποιότητας σε υποβαθμισμένα αστικά κέντρα" - George Carlin
    Γα.... την πολιτική ορθότητα.

  5. #5
    Εγγραφή
    18-04-2008
    Περιοχή
    /boot/vmlinuz
    Μηνύματα
    192
    Downloads
    4
    Uploads
    0
    Ταχύτητα
    12288/1024
    ISP
    ΟΤΕ Conn-x
    Router
    Zyxel P-661H-D1
    SNR / Attn
    6(dB) / 30(dB)
    Παράθεση Αρχικό μήνυμα από tuxx Εμφάνιση μηνυμάτων
    σκοπός είναι να εκτελεί συγκεκριμένες εντολές ο user http (ο ανάλογος του www-data σε debian και άλλες διανομές), μέσα από php script και χρήση nginx.
    Μόνο προσεξε να το κανεις οσο ποιο συγκεκριμένο μπορείς γιατι βλέπω το vulnerabilty για priviledge escalation μέσω web στην γωνία...
    Unix is user-friendly. It's just very selective about who its friends are...

  6. #6
    Εγγραφή
    12-07-2017
    Ηλικία
    40
    Μηνύματα
    27
    Downloads
    0
    Uploads
    0
    ISP
    HOL
    Router
    Netgear R7000/DD-WRT
    Είμαι κάθετα αντίθετος προσωπικά σε αυτό στο οποίο αναφέρεσαι (εννοω access σε root εντολές μέσω web interface), αλλά βοηθάω έναν φίλο που κάνει τη δική του υλοποίηση. Έχει προειδοποιηθεί για το κενό ασφαλείας και δεν τον ενδιαφέρει, οπότε δεν ενδιαφέρει ούτε και μένα

    Ευχαριστώ πολύ πάντως για την επισήμανση.
    Τελευταία επεξεργασία από το μέλος tuxx : 15-09-17 στις 15:47.

  7. #7
    Εγγραφή
    18-04-2008
    Περιοχή
    /boot/vmlinuz
    Μηνύματα
    192
    Downloads
    4
    Uploads
    0
    Ταχύτητα
    12288/1024
    ISP
    ΟΤΕ Conn-x
    Router
    Zyxel P-661H-D1
    SNR / Attn
    6(dB) / 30(dB)
    Παράθεση Αρχικό μήνυμα από tuxx Εμφάνιση μηνυμάτων
    Είμαι κάθετα αντίθετος προσωπικά σε αυτό στο οποίο αναφέρεσαι (εννοω access σε root εντολές μέσω web interface)


    - - - Updated - - -

    Παράθεση Αρχικό μήνυμα από tuxx Εμφάνιση μηνυμάτων
    Έχει προειδοποιηθεί για το κενό ασφαλείας και δεν τον ενδιαφέρει, οπότε δεν ενδιαφέρει ούτε και μένα
    θα πρότεινα επίσης να τον βοηθήσεις να κλείσει τα κενα ασφαλείας. Θεωρώ πως το θέμα της ασφάλειας είναι θέμα όλων μας και πρέπει να κάνουμε οτι καλύτερο μπορεί ο καθενας γι' αυτο.
    Unix is user-friendly. It's just very selective about who its friends are...

Παρόμοια Θέματα

  1. Αυτόματη εκτέλεση αρχείων ~ Γίνεται;
    Από georgep800 στο φόρουμ Software γενικά
    Μηνύματα: 1
    Τελευταίο Μήνυμα: 16-07-17, 22:50
  2. Μηνύματα: 6
    Τελευταίο Μήνυμα: 02-05-17, 23:35
  3. Μηνύματα: 50
    Τελευταίο Μήνυμα: 07-02-17, 11:18
  4. Μηνύματα: 4
    Τελευταίο Μήνυμα: 18-12-16, 12:29
  5. Μηνύματα: 9
    Τελευταίο Μήνυμα: 27-11-16, 06:12

Bookmarks

Bookmarks

Δικαιώματα - Επιλογές

  • Δεν μπορείτε να δημοσιεύσετε νέα θέματα
  • Δεν μπορείτε να δημοσιεύσετε νέα μηνύματα
  • Δεν μπορείτε να αναρτήσετε συνημμένα
  • Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας
  •  
  • Τα BB code είναι σε λειτουργία
  • Τα Smilies είναι σε λειτουργία
  • Το [IMG] είναι σε λειτουργία
  • Το [VIDEO] είναι σε λειτουργία
  • Το HTML είναι εκτός λειτουργίας