Συνεχίζουμε με τα επόμενα δύο κεφάλαια του οδηγού μας.
Κεφάλαιο Γ – Προσθήκη και διαμόρφωση σκληρών δίσκων
Εισαγωγικά να πούμε ότι αν θέλουμε αν επανεκκινήσουμε τον Server μας, δίνουμε την εντολή
sudo reboot
ενώ αν θέλουμε απλά να τερματίσουμε την λειτουργία του, δίνουμε την εντολή
sudo shutdown now
Ένας server φυσικά δεν θα έχει μόνο ένα σκληρό δίσκο, αλλά συνήθως πολύ περισσότερους. Αφού έχουμε ολοκληρώσει την εγκατάσταση των δίσκων μας στο κουτί του υπολογιστή μας, η προσθήκη στο λειτουργικό σύστημα γίνεται απλούστατα, με την χρήση του εργαλείου parted ( PARTition EDitor) . Το πρόγραμμα parted δεν είναι άλλο από την έκδοση τερματικού του πολύ γνωστού προγράμματος διαχείρισης δίσκων GParted .
Η τεκμηρίωση του προγράμματος ή αλλιώς το manual, όπου μπορείτε να βρείτε περισσότερες πληροφορίες σχετικά με όσα εκτίθενται στον παρόντα οδηγό, βρίσκεται εδώ:
https://www.gnu.org/software/parted/manual/
Στο σημείο αυτό να αναφέρουμε ότι στο Linux οι δίσκοι sata αναφέρονται με την μορφή / dev/ sda και τα partitions σε αυτούς με την μορφή / dev/ sda1 . Όπου dev = device, sd = sata disk , τα γράμματα a, b, c κλπ. αναφέρονται στους δίσκους διαδοχικά, ενώ οι αριθμοί που ακολουθούν αναφέρονται στα partitions κάθε δίσκου.
Έχοντας αυτή τη γνώση λοιπόν, ξεκινάμε!
Αρχικά δίνουμε την εντολή
sudo fdisk -l
για να δούμε ποιους δίσκους έχει το σύστημά μας, ποια partitions υπάρχουν και σε ποιο όνομα αντιστοιχεί κάθε συσκευή.
Στην παραπάνω εικόνα βλέπουμε (στο πράσινο πλαίσιο) ότι ο δίσκος των 15 GB έχει το όνομα / dev/ sda , είναι ο δίσκος στον οποίο έχουμε κάνει την εγκατάσταση του λειτουργικού και έχει τέσσερα partitions, τα sda1, sda2, sda3 και sda4 .
Στον Server μας έχουμε προσθέσει και έναν δεύτερο sata δίσκο, μεγέθους μόλις 5 GB, που έλαβε το όνομα / dev/ sdb και όπως βλέπουμε (στο κόκκινο πλαίσιο) δεν έχει καθόλου partitions, καθώς είναι ολοκαίνουριος, του κουτιού.
Θα πρέπει λοιπόν στον δεύτερο δίσκο μας, να δημιουργήσουμε partition table και στη συνέχεια partition , μετά να διαμορφώσουμε file system σε αυτό και να ορίσουμε mount point (σημείο προσάρτησης) αυτού, δηλαδή να ορίσουμε σε ποιον φάκελο της δομής του λειτουργικού συστήματος, θα αντιστοιχεί ο νέος δίσκος μας.
Ξεκινάμε δίνοντας απλά την εντολή
sudo parted
και εισερχόμαστε στο περιβάλλον του προγράμματος, το οποίο όπως βλέπουμε στην παραπάνω εικόνα, αμέσως μας ενημερώνει ότι έχει ήδη επιλέξει τον πρώτο δίσκο του συστήματός μας, τον / dev/ sda . Για να ξέρουμε ότι βρισκόμαστε πάντα εντός του προγράμματος, στο prompt υπάρχει συνεχώς σε παρένθεση το ( parted) .
Δίνοντας, όπως μας προτρέπει το ίδιο το πρόγραμμα,
help
βλέπουμε τις εντολές που δέχεται το πρόγραμμα.
Εμείς θέλουμε να επέμβουμε στον δεύτερο δίσκο του συστήματός μας, οπότε επιλέγουμε αυτόν με την εντολή
select /dev/sdb
και στη συνέχεια δίνουμε την εντολή
print
για να δούμε την κατάσταση του δίσκου. Όπως είναι φυσικό, μας αναφέρει με error ότι δεν υπάρχει καν partition table στον δίσκο, αφού αυτός είναι όπως είπαμε, ολοκαίνουριος.
Φτιάχνουμε λοιπόν νέο partition table (το πρόγραμμα το αποκαλεί label ), με την εντολή
mklabel gpt
και στη συνέχεια δίνουμε ξανά την εντολή
print
οπότε βλέπουμε ότι πλέον έχει δημιουργηθεί ένα gpt partition table , ενώ φυσικά ακόμα δεν υπάρχει partition:
Στη συνέχεια δημιουργούμε ένα νέο partition, το οποίο θα καταλαμβάνει όλο τον δίσκο, αφού αυτός θα χρησιμοποιηθεί αποκλειστικά για αποθήκευση δεδομένων, με την εντολή
mkpart primary 1MiB -1s
ΠΡΟΣΟΧΗ εδώ :
Το primary δεν είναι τύπος partition όταν ο δίσκος είναι σε gpt partition table , αλλά απλά ένα όνομα. Οι άλλες δύο παράμετροι αποτελούν τα σημεία έναρξης και τέλους του partition που δημιουργούμε. Το πρόγραμμα ελέγχει εάν δίνουμε σωστό alignment στο partition που δημιουργούμε, και για να το πετύχουμε αυτό, δίνουμε ως σημείο έναρξης του partition το 1 MiB , που σημαίνει 1048576 bytes. Η επόμενη παράμετρος, -1 s σημαίνει το τέλος του δίσκου (ο τελευταίος sector αυτού). Το πρόγραμμα όπως βλέπουμε πραγματοποιεί έλεγχο και μας ρωτάει αν συμφωνούμε, απαντάμε yes και το partition δημιουργείται αμέσως και επιτυχώς, όπως φαίνεται με την εντολή
print
Τα παραπάνω αναφέρονται ρητά στην τεκμηρίωση του προγράμματος:
“Note that negative numbers count back from the end of the disk, with “-1s” pointing to the last sector of the disk.
Note that as of parted-2.4, when you specify start and/or end values using IEC binary units like “MiB”, “GiB”, “TiB”, etc., parted treats those values as exact, and equivalent to the same number specified in bytes (i.e., with the “B” suffix), in that it provides no “helpful” range of sloppiness. Contrast that with a partition start request of “4GB”, which may actually resolve to some sector up to 500MB before or after that point. Thus, when creating a partition, you should prefer to specify units of bytes (“B”), sectors (“s”), or IEC binary units like “MiB”, but not “MB”, “GB”, etc”.
Πλέον ολοκληρώσαμε την εργασία μας με το parted. Βγαίνουμε από το πρόγραμμα με την εντολή
quit
και μπορούμε να δούμε το νέο μας partition και με την εντολή
lsblk
Στη συνέχεια δημιουργούμε file system στο νέο μας partition, τύπου ext4 , με την εντολή
sudo mkfs.ext4 /dev/sdb1
Προσέχουμε ότι το file system μας έχει δημιουργηθεί επιτυχώς, ενώ αναφέρεται και το Filesystem UUID ( Universally Unique IDentifier) , εδώ το b54ca790-b91c-4744-92d2-83c5b5738eff , το οποίο το χρειαζόμαστε αργότερα. Γι’ αυτό το επιλέγουμε, το αντιγράφουμε και το αποθηκεύουμε σε ένα απλό αρχείο κειμένου. Μην ξεχνάμε ότι βρισκόμαστε στον desktop υπολογιστή μας και μπορούμε να χρησιμοποιήσουμε όλα τα πλεονεκτήματά του:
Αν παρόλα αυτά δεν έχουμε κρατήσει το UUID, μπορούμε να το έχουμε ξανά εύκολα με την εντολή
lsblk -f
Στη συνέχεια, δημιουργούμε έναν φάκελο, στον οποίο θα προσαρτήσουμε το νέο μας partition, με την εντολή
sudo mkdir /mnt/disk01
Προφανώς το όνομα και η διαδρομή του φακέλου είναι ελεύθερη επιλογή μας , απλά διευκολύνει όλοι οι δίσκοι να είναι μαζεμένοι κάτω από την διαδρομή / mnt , που είναι από default το σημείο προσάρτησης δίσκων σε πολλές διανομές Linux.
Κατόπιν προσαρτούμε ( mount ) το νέο μας partition στον παραπάνω φάκελο, με την εντολή
sudo mount /dev/sdb1 /mnt/disk01
και μεταβαίνουμε σε αυτόν με την εντολή
cd /mnt/disk01
Με την εντολή
ls -alhF
(η οποία στην εικόνα παρακάτω έχει αντιστοιχιστεί με alias στο la ) βλέπουμε ότι τόσο ο συγκεκριμένος φάκελος, όσο και τα περιεχόμενά του και ο ανώτερος από αυτόν, ανήκουν στον υπερχρήστη root , οπότε για να δημιουργήσουμε έναν φάκελο δίνουμε την εντολή
sudo mkdir Shares
Τον φάκελο αυτό θα χρησιμοποιήσουμε αργότερα για να δημιουργήσουμε εντός αυτού τα Shares, τους φακέλους δηλαδή τους οποίους θα μοιράζει ο Server και στους οποίους θα αποθηκεύονται τα δεδομένα, στον συγκεκριμένο δίσκο.
Εδώ βλέπουμε τον δίσκο μας και τον φάκελο που έχουμε δημιουργήσει, μέσω SFTP:
Τέλος πρέπει να ορίσουμε μόνιμο σημείο προσάρτησης του νέου μας partition στο file system του Server, ώστε να προσαρτάται αυτόματα σε κάθε εκκίνηση αυτού. Για τον σκοπό αυτό θα επέμβουμε στο αρχείο fstab που βρίσκεται στην διαδρομή / etc/ fstab , δίνοντας την εντολή
sudo nano /etc/fstab
οπότε το συγκεκριμένο αρχείο ανοίγει στον γνωστό μας πλέον nano :
Εδώ, όπως φαίνεται στην παραπάνω εικόνα, ακολουθώντας τη δομή και των υπόλοιπων γραμμών που έχουν δημιουργηθεί κατά την εγκατάσταση του λειτουργικού, προσθέτουμε στο τέλος του αρχείου τη γραμμή
/dev/disk/by-uuid/b54ca790-b91c-4744-92d2-83c5b5738eff /mnt/disk01 ext4 defaults 0 0
αναγράφοντας δηλαδή: 1) το UUID του νέου μας partition που είχαμε αποθηκεύσει παραπάνω, 2) το mount point που θέλουμε, 3) το σύστημα αρχείων ( file system ) που έχουμε δημιουργήσει, 4) τις επιλογές προσάρτησης (το defaults είναι αρκετό) και 5) δύο ακόμα παραμέτρους, όπου δίνουμε τις τιμές 0 0 .
Για περισσότερες πληροφορίες σχετικά με τη δομή του fstab , μπορείτε να διαβάσετε την επίσημη τεκμηρίωση:
https://manpages.ubuntu.com/manpages/focal/man5/fstab.5.html
Επανεκκινούμε τον Server μας με
sudo reboot
και αφού ξαναεισέλθουμε σε αυτόν, δίνοντας την εντολή
lsblk -f
βλέπουμε ότι όλα έχουν καλώς και το νέο partition μας έχει προσαρτηθεί αυτόματα στη θέση που έχουμε ορίσει:
Εδώ ολοκληρώνεται το κεφάλαιο σχετικά με τους σκληρούς δίσκους.
Κεφάλαιο Δ – Προσθήκη χρηστών
Αφού λοιπόν έχουμε πλέον ολοκληρώσει τη διαδικασία απομακρυσμένου ελέγχου του server μας και την προσθήκη των δίσκων μας, καιρός να προχωρήσουμε στην κυρίως διαμόρφωσή του. Το πρώτο που πρέπει να κάνουμε είναι να προσθέσουμε τους χρήστες που θα έχουν πρόσβαση στα δεδομένα του server μας.
Να τονίσουμε εξαρχής ότι για να έχουν πρόσβαση οι χρήστες απομακρυσμένα μέσω samba , θα πρέπει να έχουν και τοπικό λογαριασμό στον server μας , unix λογαριασμό όπως λέγεται. Το username τους θα πρέπει να είναι το ίδιο, ενώ ο κωδικός μπορεί να είναι διαφορετικός, κάτι όμως που δεν προτείνεται, για να αποφευχθούν στο μέλλον επιπλοκές και απορίες του στυλ «μα γιατί επιτέλους δεν έχω πρόσβαση στα δεδομένα μου στον server;». Με άλλα λόγια, οι χρήστες θα πρέπει να έχουν το ίδιο username, τόσο στους λογαριασμούς τους σε υπολογιστή με Windows, όσο και στον server μας .
H προσθήκη χρηστών στον server μας μπορεί να γίνει με δύο εντολές. Η πρώτη είναι το useradd , που είναι η πρωταρχική, low level εντολή, ενώ η δεύτερη είναι η adduser , που είναι και αυτή που θα χρησιμοποιήσουμε. Η adduser είναι στην ουσία ένα script , προσαρμοσμένο στις απαιτήσεις των νέων ισχυουσών πολιτικών του Debian/ Ubuntu (αν δεν το γνωρίζετε, το Ubuntu βασίζεται στο Debian), που τρέχει στο υπόβαθρο την εντολή useradd , αλλά είναι πιο φιλική στο χρήστη, φροντίζοντας αυτόματα να κάνει όλα όσα πρέπει για να έχουμε προσθήκη χρηστών σύμφωνα με τα νεότερα πρότυπα του Debian. Τα παραπάνω αναφέρονται και στην επίσημη τεκμηρίωση της εντολής (man page):
“adduser and addgroup add users and groups to the system according to command line options and configuration information in /etc/adduser.conf. They are friendlier front ends to the low level tools like useradd, groupadd and usermod programs, by default choosing Debian policy conformant UID and GID values, creating a home directory with skeletal configuration, running a custom script, and other features”.
Μερικές από τις πιο χρήσιμες λειτουργίες της εντολής adduser , είναι ότι δημιουργεί αυτόματα home folder για τον χρήστη που προσθέτουμε, και group με το ίδιο όνομα με του χρήστη, το οποίο ορίζει ως πρωταρχικό , γεγονός σημαντικό για πολλές λειτουργίες του λειτουργικού συστήματος σχετικά με τα δικαιώματα πρόσβασης.
Η εισαγωγή λοιπόν νέων χρηστών γίνεται με την εντολή
sudo adduser username
και στη συνέχεια ερωτόμαστε για κωδικό πρόσβασης, πραγματικό ονοματεπώνυμο και άλλα στοιχεία που τυχόν θέλουμε να προσθέσουμε για τον χρήστη. Με την εντολή αυτή εμείς δημιουργήσαμε για τις ανάγκες του οδηγού δύο χρήστες, τους user01 και user02 :
Αφού προσθέσαμε τους χρήστες μας, υπάρχει περίπτωση να έχουμε κάνει κάποιο λάθος ή να άλλαξε κάτι, ή να θέλουμε να εντάξουμε κάποιους χρήστες σε νέο group κλπ.
Η βασική διαχείριση των χρηστών και των groups γίνεται ως εξής:
1. Για να δούμε όλους τους χρήστες του λειτουργικού, ώστε να εξετάσουμε μήπως ξεχάσαμε κάποιον (η παρακάτω εντολή δείχνει και «χρήστες» που δημιουργεί το σύστημα για τις ανάγκες λειτουργίας του, εμείς ασχολούμαστε μόνο με τους χρήστες μας, οι οποίοι συνήθως εμφανίζονται στο τέλος της λίστας):
compgen -u
2. Για να δούμε όλα τα groups:
compgen -g
3. Για να δούμε όλα τα μέλη ενός group:
getent group groupname
4. Για να δούμε την αναλυτική ταυτότητα ενός χρήστη, σε ποια group ανήκει κλπ. (αν δεν δώσουμε username, η εντολή μας επιστρέφει τα δικά μας στοιχεία):
id username
5. Για να δούμε σε ποια group ανήκει ένας χρήστης (αν δεν δώσουμε username, η εντολή μας επιστρέφει τα δικά μας στοιχεία):
groups username
6. Για να προσθέσουμε ένα νέο group στο σύστημα
addgroup groupname
7. Για να προσθέσουμε υπάρχοντα χρήστη σε υπάρχον group:
adduser username groupname
Για περισσότερες πληροφορίες σχετικά με την διαχείριση χρηστών και groups, θα πρέπει να ανατρέξετε στις σελίδες τεκμηρίωσης (man pages) των εντολών adduser , deluser , usermod, καθώς οι δυνατότητες είναι πάρα πολλές και ξεφεύγουν από τα πλαίσια αυτού του οδηγού.
Συνεχίζεται…