Καλημέρα σε όλους.
Προσπαθώ να εκτελέσω συγκεκριμένες εντολές από το command prompt του root αλλά ως διαφορετικός χρήστης.
Ο υπάρχων χρήστης είναι ο user1 για τον οποίον έχω την παρακάτω γραμμή στο /etc/sudoers:
Παίρνω κονσόλα λοιπόν ως root και δίνω:Κώδικας:user1 ALL=(ALL) ALL
το αποτέλεσμα είναιΚώδικας:sudo -u user1 whoami
Συνεχίζω τώρα και προσπαθώ να δώσω άλλες εντολές όπως pacman -Syu (δουλεύω σε arch), mount κλπ, το αποτέλεσμα είναι:Κώδικας:user1
Κώδικας:sudo -u user1 pacman -SyuΕδώ διαπιστώνω ότι κάτι δεν έχω καταλάβει σωστά, γιατί κανονικά θα έπρεπε να με ρωτάει το password του user1 και να εκτελει την εντολή.Κώδικας:error: you cannot perform this operation unless you are root.
Όλα αυτά φαντάζουν κάπως άσκοπα, αλλά ο τελικός σκοπός είναι να εκτελεί συγκεκριμένες εντολές ο user http (ο ανάλογος του www-data σε debian και άλλες διανομές), μέσα από php script και χρήση nginx.
Έχετε καμιά ιδέα πως θα δουλέψει το pacman στο παραπάνω σενάριο;
Ευχαριστώ εκ των προτέρων.
- - - Updated - - -
Μετά από 100000 δοκιμές, έδωσα την παρακάτω και δούλεψε:
και επιτελους ζητάει τον κωδικό του user1.Κώδικας:sudo -u user1 sudo pacman -Syu
Παρόλα αυτά μου φαίνεται παρανοική η παραπάνω σύνταξη. Χρησιμοποιεί δηλαδή το sudo -u απλά για να εξομοιώσει τον user και μετά θέλει και ένα δεύτερο sudo.
Τι στο καλό συμβαίνει;
Εμφάνιση 1-7 από 7
-
12-09-17, 11:38 Εκτέλεση εντολής με sudo ως συγκεκριμένος χρήστης #1
-
12-09-17, 13:53 Απάντηση: Εκτέλεση εντολής με sudo ως συγκεκριμένος χρήστης #2
Πρέπει να φανταστείς λίγο την εντολή sudo σαν ο ίδιος χρήστης να παίρνει τα δικαιώματα κάποιου άλλου. Έτσι, όταν είσαι στον user1 και τρέχεις sudo στην ουσία επιτρέπεις στον user1 να τρέξει μία εντολή με τα δικαιώματα του root (ή όποιου άλλου χρήστη έχει οριστεί).
Όταν είσαι συνδεδεμένος σαν user1, τρέχοντας
Κώδικας:sudo pacman -Syu
Τρέχοντας την εντολή
Κώδικας:sudo -u user1
Τρέχοντας
Κώδικας:sudo -u user1 sudo pacman -Syu
-
12-09-17, 13:56 Απάντηση: Εκτέλεση εντολής με sudo ως συγκεκριμένος χρήστης #3
Σε ευχαριστώ πολύ. Ήταν λάθος αυτό που είχα καταλάβει για το -u option. Νόμιζα ότι αρκεί για να τρέξει η εντολή με χρήστη τον user1 και τα ορισμένα δικαιώματά του στο sudoers, ενώ απλά προσομοίωνε το χρήστη και ήθελε και το δεύτερο sudo.
-
12-09-17, 14:54 Απάντηση: Εκτέλεση εντολής με sudo ως συγκεκριμένος χρήστης #4
Είναι όπως σου το εξήγησε ο 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
Γα.... την πολιτική ορθότητα.
-
15-09-17, 14:39 Απάντηση: Εκτέλεση εντολής με sudo ως συγκεκριμένος χρήστης #5
-
15-09-17, 15:23 Απάντηση: Εκτέλεση εντολής με sudo ως συγκεκριμένος χρήστης #6
Είμαι κάθετα αντίθετος προσωπικά σε αυτό στο οποίο αναφέρεσαι (εννοω access σε root εντολές μέσω web interface), αλλά βοηθάω έναν φίλο που κάνει τη δική του υλοποίηση. Έχει προειδοποιηθεί για το κενό ασφαλείας και δεν τον ενδιαφέρει, οπότε δεν ενδιαφέρει ούτε και μένα
Ευχαριστώ πολύ πάντως για την επισήμανση.Τελευταία επεξεργασία από το μέλος tuxx : 15-09-17 στις 15:47.
-
15-09-17, 16:43 Απάντηση: Εκτέλεση εντολής με sudo ως συγκεκριμένος χρήστης #7Unix is user-friendly. It's just very selective about who its friends are...
Παρόμοια Θέματα
-
Αυτόματη εκτέλεση αρχείων ~ Γίνεται;
Από georgep800 στο φόρουμ Software γενικάΜηνύματα: 1Τελευταίο Μήνυμα: 16-07-17, 22:50 -
Οι αισθητήρες κίνησης του κινητού, μπορούν να "προδώσουν" το PIN ή password που χρησιμοποιεί ο χρήστης τους
Από nnn στο φόρουμ ΕιδήσειςΜηνύματα: 6Τελευταίο Μήνυμα: 02-05-17, 23:35 -
Αποκτήστε 2GB επιπλέον χώρο στο Google Drive με την εκτέλεση του Security checkup στο account σας
Από nnn στο φόρουμ ΕιδήσειςΜηνύματα: 50Τελευταίο Μήνυμα: 07-02-17, 11:18 -
Γιατί γίνεται στην Νova όλο αυτό το μπάχαλο με πληρωμή εντολής από τράπεζα
Από gtc στο φόρουμ Σταθερή & Κινητή ΤηλεφωνίαΜηνύματα: 4Τελευταίο Μήνυμα: 18-12-16, 12:29 -
Το νέο πρότυπο των καρτών SD στοχεύει στην ταχύτερη απόδοση τους σε εκτέλεση εφαρμογών
Από nnn στο φόρουμ ΕιδήσειςΜηνύματα: 9Τελευταίο Μήνυμα: 27-11-16, 06:12
Bookmarks