Δώστε σε άλλους χρήστες περιορισμένο έλεγχο του διακομιστή ιστού Raspberry Pi για την εκτέλεση εργασιών ρουτίνας.
Εάν χρησιμοποιείτε ένα Raspberry Pi ως οικιακό διακομιστή, είναι πιθανό οι φίλοι και η οικογένεια να έχουν πρόσβαση στις υπηρεσίες του επίσης. Περιστασιακά, θα χρειαστεί να εκτελέσουν ορισμένες εργασίες ρουτίνας που απαιτούν περιορισμένο έλεγχο του διακομιστή.
Το OliveTin είναι μια αυτο-φιλοξενούμενη εφαρμογή στην οποία μπορούν να έχουν πρόσβαση μέσω ενός προγράμματος περιήγησης ιστού για να εκτελέσουν προκαθορισμένες εντολές και σενάρια που ορίζετε εσείς.
Γιατί να χρησιμοποιήσετε το OliveTin στο Raspberry Pi;
Η σειρά υπολογιστών μονής πλακέτας Raspberry Pi δημιουργεί εξαιρετικούς ελαφρούς οικιακούς διακομιστές και είναι σχετικά εύκολο να ρυθμίστε έναν διακομιστή web Raspberry Pi.
Εκτός από τη φιλοξενία ιστοσελίδων και ιστολογίων, σας Το Raspberry Pi μπορεί να φιλοξενήσει γκαλερί φωτογραφιών, βιβλία μαγειρικής και διαδικτυακές σουίτες γραφείου. Μπορείς μεταδώστε ταινίες και εκπομπές στην τηλεόρασή σας με το Jellyfin
, ή φιλοξενήστε μόνοι σας μια βιβλιοθήκη ακουστικών βιβλίων με ράφι ακουστικών βιβλίων.Δεν περιορίζεστε στον αριθμό των χρηστών που μπορείτε να έχετε, επομένως, εκτός και αν ζείτε μόνοι, πιθανότατα μοιράζεστε την πρόσβαση στις υπηρεσίες Raspberry Pi με άλλα μέλη του νοικοκυριού σας.
Οι διακομιστές, όπως και κάθε άλλος τύπος υπολογιστή, χρειάζονται περιστασιακή συντήρηση. Οι χρήστες σας μπορεί να χρειαστεί έναρξη ή διακοπή συγκεκριμένων υπηρεσιών, συνδεθείτε σε ένα VPN, δημιουργία αντιγράφων ασφαλείας αρχείων στο Raspberry Pi, ή ελέγξτε για προβλήματα δικτύου.
Αν η οικογένεια και οι συγκάτοικοι σας είναι εξοικειωμένοι με τη γραμμή εντολών του Linux, και τους εμπιστεύεστε ότι δεν θα καταστρέψουν κατά λάθος ή σκόπιμα το σύστημά σας, μπορείτε να εξετάσετε το ενδεχόμενο να τους δώσετε τα δικά τους διαπιστευτήρια SSH μαζί με μέλος της ομάδας sudo, ώστε να μπορούν να εκτελούν αυτές τις εργασίες χωρίς να σας ενοχλούν.
Είναι μια δελεαστική αλλά επικίνδυνη πρόταση, και αν κάτι πάει στραβά, είστε εσείς που θα πρέπει να το διορθώσετε. Με το OliveTin, μπορείτε να ορίσετε εντολές ρουτίνας που μπορεί να χρειαστεί να εκτελούν τακτικά άλλοι χρήστες διακομιστή. Στη συνέχεια, μπορούν να ανοίξουν ένα πρόγραμμα περιήγησης ιστού και να πατήσουν ένα κουμπί που θα εκτελέσει την εντολή στο Pi σας — χωρίς ποτέ να χρειαστεί να αγγίξετε τη γραμμή εντολών.
Πώς να εγκαταστήσετε το OliveTin στο Raspberry Pi
Ο ευκολότερος τρόπος εγκατάστασης του OliveTin είναι η χρήση του Docker Compose. Εάν δεν έχετε ήδη εγκατεστημένο το Docker και το Docker Compose στο Raspberry Pi, ανατρέξτε στον βασικό μας οδηγό για πώς να εγκαταστήσετε το Docker και το Docker Compose στο Linux.
Συνδεθείτε στον διακομιστή Raspberry Pi χρησιμοποιώντας Secure Shell (SSH):
ssh pi@τα δικα σου-τοπική-pi-ip-διεύθυνση
Δημιουργήστε έναν νέο κατάλογο για το OliveTin και χρησιμοποιήστε το CD εντολή για να μετακινηθείτε σε αυτό:
mkdir olivetin && CD olivetin
Χρησιμοποιήστε το nano πρόγραμμα επεξεργασίας κειμένου για να δημιουργήσετε ένα νέο αρχείο Docker Compose:
νανολιμενεργάτης-συνθέτω.yml
Αντιγράψτε και επικολλήστε τα παρακάτω:
εκδοχή: "3.5"
Υπηρεσίες:
olivetin:
container_name: olivetin
εικόνα: jamesread/olivetin
χρήστης: root
τόμοι:
- ~/olivetin:/config
- /var/run/docker.sock:/var/run/docker.κάλτσα
λιμάνια:
- "1337:1337"
επανεκκίνηση: εκτός αν διακοπεί
δίκτυα:
ιστός:
Ενότητα:
εξωτερικός: αληθής
Τώρα αποθηκεύστε και βγείτε από το nano με Ctrl + O έπειτα Ctrl + X.
Πριν εκτελέσετε το OliveTin για πρώτη φορά, πρέπει να δημιουργήσετε ένα αρχείο διαμόρφωσης. Εδώ θα ορίσετε τις εντολές για εκτέλεση των χρηστών. Προς το παρόν, εισάγετε:
αφήconfig.yaml
Χρησιμοποιήστε το OliveTin για να δώσετε στους χρήστες σας περιορισμένο έλεγχο διακομιστή
Στο τερματικό σας, πληκτρολογήστε:
docker-συνθέτω επάνω -δ
Αυτή η εντολή θα εμφανίσει το Docker Compose σε λειτουργία αποσύνδεσης. Το Docker Compose θα κατεβάσει τις εικόνες για το OliveTin και θα δημιουργήσει κοντέινερ. Αυτή η διαδικασία μπορεί να πάρει κάποιο χρόνο. Όταν επιστρέψετε στη γραμμή εντολών, ελέγξτε ότι όλα εκτελούνται σωστά με:
docker-συνθέτω ps
Ανοίξτε ένα πρόγραμμα περιήγησης και μεταβείτε σε your-pi-local-ip-address: 1337. Θα πρέπει να δείτε μια γκρι ιστοσελίδα με το υποσέλιδο OliveTin. Είστε πλέον έτοιμοι να ξεκινήσετε να ορίζετε εντολές για τους χρήστες σας.
Επιστρέψτε στο τερματικό, χρησιμοποιήστε το nano για να επεξεργαστείτε το αρχείο διαμόρφωσης που δημιουργήσατε νωρίτερα:
νανοconfig.yaml
Η σύνταξη είναι απλή και μπορείτε να ορίσετε το όνομα των υπηρεσιών και τις ενέργειες που θα εκτελεστούν όπως στο ακόλουθο παράδειγμα:
Ενέργειες:
- τίτλος: "Επανεκκίνηση διακομιστή"
κέλυφος: επανεκκίνηση- τίτλος: "Ping Netflix"
κέλυφος: pingnetflix.com
- τίτλος: Επανεκκινήστε τον Apache
εικόνισμα: "🏁"
shell: επανεκκίνηση της υπηρεσίας sudo apache2
Το τitle πεδίο είναι ο τίτλος που μπορούν να δουν οι χρήστες, ενώ η παρακάτω εντολή κέλυφος: είναι η εντολή που θα εκτελεστεί πραγματικά στο Raspberry Pi σας.
Το OliveTin υποστηρίζει εικονίδια unicode και μπορείτε να καθορίσετε τον κώδικα HTML αυτών στο εικόνισμα Ενότητα. Εναλλακτικά, μπορείτε να ορίσετε την πλήρη διεύθυνση URL μιας εικόνας που θέλετε να χρησιμοποιήσετε. Για παράδειγμα:
εικονίδιο: '<imgsrc = " https://www.makeuseof.com/public/build/images/muo-logo-full-colored-light.svg"πλάτος = "81px"/>'
Ενώ η διαμόρφωση μας δίνει παραδείγματα που θα επανεκκινήσουν το Raspberry Pi, θα επανεκκινήσουν τον Apache και θα κάνουν ping στο Netflix, δεν υπάρχει πραγματικά κανένα όριο στις εντολές που μπορείτε να καθορίσετε. Μπορείτε να δώσετε στους χρήστες ένα κουμπί που θα αντιγράφει ταινίες από τον έναν κατάλογο στον άλλο, θα σκουπίζει γρήγορα και αντικαταστήστε ορισμένους καταλόγους ή δημιουργήστε έναν διακόπτη kill-switch που θα κρυπτογραφεί τις συσκευές αποθήκευσης με ένα τυχαίο κλειδί.
Όταν είστε ικανοποιημένοι με τις ρυθμίσεις σας, αποθηκεύστε το αρχείο και βγείτε από το nano πατώντας Ctrl + O έπειτα Ctrl + X.
Οποιοδήποτε stdout παράγεται ως αποτέλεσμα πατήματος κουμπιών καταγράφεται. Μπορείτε να δείτε τα αρχεία καταγραφής πατώντας το κούτσουρα κουμπί επάνω δεξιά. Με το OliveTin, μπορείτε επίσης να επιτρέψετε στους χρήστες να δίνουν εντολές, γνωστές ως ορίσματα, μέσω της διεπαφής ιστού—είτε με ένα πλαίσιο κειμένου είτε με αναπτυσσόμενες επιλογές.
Λόγω του κινδύνου που σχετίζεται με το να επιτρέπεται σε άπειρους χρήστες να εκδίδουν προνομιακές αυθαίρετες εντολές απευθείας στον διακομιστή Raspberry Pi, μπορείτε να περιορίσετε τον τύπο του επιχειρήματος που θα αποδεχθεί το OliveTin.
Για γρήγορη αναφορά, οι τύποι είναι:
Τύπος |
Αποδεκτές αξίες |
---|---|
πολύ_επικίνδυνη_ακατέργαστη_χορδή |
Όπως υποδηλώνει το όνομα, ο χρήστης θα μπορεί να εισάγει οποιοδήποτε κείμενο ή εντολή και να το εκτελεί |
ενθ |
Οποιοσδήποτε ακέραιος θετικός αριθμός |
ascii |
Οποιοσδήποτε χαρακτήρας ή αριθμός, αλλά όχι κενά ή σημεία στίξης |
ascii_identifier |
Για DNS και παρόμοια |
ascii_πρόταση |
α-ω, 0-9, με κενά, |
url |
Μια διεύθυνση ιστού |
Ένας ορισμός πλαισίου κειμένου στο δικό σας config.yaml το αρχείο έχει μορφοποιηθεί ως εξής:
Ενέργειες:
- τίτλος: Ηχώ κάτι στη γραμμή εντολών
εικόνισμα: "⛔"
κέλυφος: ηχώ {{ μήνυμα }}
επιχειρήματα:
- όνομα: μήνυμα
τύπος: very_dangerous_raw_string
Το πλαίσιο κειμένου θα εμφανιστεί όταν κάποιος πατήσει το κατάλληλο κουμπί και θα επιτρέψει σε οποιονδήποτε χρήστη στο τοπικό σας δίκτυο να εκτελέσει αυθαίρετο κώδικα μέσω του προγράμματος περιήγησης. Δεν είναι καθόλου καλή ιδέα.
Το OliveTin διευκολύνει τους χρήστες να εκτελούν βασικές εργασίες στον διακομιστή Raspberry Pi
Το Raspberry Pi είναι η τέλεια πλατφόρμα οικιακού διακομιστή για υπηρεσίες φιλοξενίας για χρήση από την οικογένειά σας και το OliveTin διευκολύνει την απλή συντήρηση χωρίς να σας ενοχλεί.
Υπάρχουν χιλιάδες αυτο-φιλοξενούμενα έργα που μπορείτε να εκτελέσετε στο Raspberry Pi και τα οποία θα ωφελήσουν το νοικοκυριό σας. Κάντε λίγη έρευνα και μάθετε ποιες υπηρεσίες πληρώνετε για τις οποίες θα μπορούσατε να φιλοξενήσετε τον εαυτό σας!