posted by qubix on March 22, 2016

Ίσως γνωρίζετε το vinagre, το default app στο gnome για remote desktop connections. Είναι πολύ απλό στη χρήση, υποστηρίζει rdp,vnc,ssh, spice και είναι αρκετά γρήγορο.

Σε περίπτωση λοιπόν που την πατήσετε σαν εμένα που πήγα να δω ένα κολλημένο vm και δεν μπορούσα να επανέλθω στο desktop μου με τίποτα, το ..μαγικό key για να πάρετε πίσω τον έλεγχο του mouse είναι το.. F10


posted by qubix on December 30, 2015

Πρόσφατα δoκίμασα τα windows 10 σε κάποιο καινούργιο Laptop. Οι αρχικές εντυπώσεις ήταν αρκετά θετικές: γρήγορη εκκίνηση και τερματισμός, ευχάριστο περιβάλλον, αληθινό desktop και όχι metro ui για touch screens (windows 8) και άλλα. Τι κρύβεται όμως πίσω από το ευχάριστο πρόσωπο των windows 10? Δε θα σταθώ στο ότι είναι ακόμη beta version με νέα builds συνεχώς, με αποτέλεσμα σε υπολογιστές με win7 ή 8 που γίνεται το upgrade σε 10 να εμφανίζονται παρενέργειες όπως desktop freeze, εφαρμογές που δεν παίζουν με τίποτα, boot loops, updates που αποτυγχάνουν συνεχώς και λοιπά. Πάμε σε κάτι διαφορετικό, τα νέα "features" των windows 10, τα οποία χωρίς να σε ρωτήσουν, δίνουν στη microsoft..τα πάντα. Απο που να αρχίσει και που να τελειώσει κανείς. Στο βωμό του user experience αν κάποιος πατήσει τα "express settings" ή και όχι (πχ αν έχει προεγκατεστημένα τα win10), έχουμε τα παρακάτω από τη μαμά microsoft:

Telemetry (windows and applictions)
Με αυτή τη λειτουργία τα windows στέλνουν reports στην microsoft τα οποία περιέχουν πληροφορίες για τυχόν κρασαρίσματα, δυσλειτουργίες κλπ. Ενώ δεν είναι απαραίτητα κακό, το πρόβλημα βρίσκεται στο ότι οι πληροφορίες έχουν πολλές λεπτομέρειες όπως πχ ότι κράσαρε το outlook ενώ έγραφες email από το myemail@account.com (δλδ το εκάστοτε mail σου) και πήγες να κάνεις attach ένα αρχείο το myworddocument.docx. Ή ότι ο chrome κόλλησε για λίγο ενώ ήσουν στο facebook. Τέτοια λεπτομέρεια δηλαδή.

Biometrics
Είτε το θέλουμε, είτε όχι, κάποια στιγμή δε θα χρειάζεται να πατάς κάποιον κωδικό για να μπεις κάπου, θα γίνεται είτε με αναγνώριση προσώπου, είτε με δακτυλικό αποτύπωμα, είτε κάτι άλλο "αυστηρά προσωπικό". Η τεχνολογία ήδη υπάρχει και χρησιμοποιείται και τα windows 10 υποστηρίζουν biometric based authentication. Η πιστοποίηση οτι είστε εσείς που χρησιμοποιείτε τον υπολογιστή με τα windows 10 γίνεται μάλιστα τοπικά και όχι μέσω της microsoft. Μέχρις εδώ όλα καλά. Αλλά..όπως ήδη έχετε μαντέψει, τα windows 10 στέλνουν μια κρυπτογραφημένη version των biometric data που σας αφορούν. Κανείς δεν ξέρεις που πηγαίνουν και φυσικά κανείς δεν ξέρει αν θα τα μοιραστεί η MS με κάποια υπηρεσία ασφαλείας. Και φυσικά δε χρειάζεται να είστε ένοχος για κάτι για να μοιραστούν τα εν λόγω δεδομένα..

Handwriting Data Sharing
Εδώ τα windows συλλέγουν πληροφορίες για το πως γράφετε, σε περίπτωση που έχετε κάποιο stylus pen. Ο λόγος που συλλέγουν την πληροφορία αυτή είναι για βελτίωση του λογισμικού αναγνώρισης χαρακτήρων. Σύμφωνα με τη microsoft δε συλλέγεται το περιεχόμενο αυτών που γράφεις, αλλά το πως το γράφεις (πως κάνεις το Α ή πως γράφεις τη λέξη home κλπ κλπ)

windows Keylogger
Έχετε ακούσει για κάποιους ιους/malware που ονομάζονται keyloggers και σκοπός τους είναι να σας κλέψουν κωδικούς, pin καρτών και γενικώς προσωπικά δεδομένα? Ε τα windows 10 έχουν έναν τέτοιο εξ'ορισμού! Και γίνεται ακόμη πιο περίεργο: σύμφωνα με την ίδια την Microsoft όταν χρησιμοποιείτε μια windows συσκευή είτε με ομιλία, είτε με handwriting, είτε απλά πληκτρολογώντας, τα windows συλλέγουν πληροφορίες σχετικά με αυτά, συμπεριλαμβανομένων και πληροφοριών από το ημερολόγιό σας και τις επαφές σας. Έτσι όπως το διαβάσατε, ούτε τι ακριβώς συλλέγουν δε λένε, αλλά δε τους φτάνουν τα δικά σας δεδομένα, θέλουν και τις επαφές σας!

Inventory Collector
Αυτό είναι μια εφαρμογή η οποία συλλέγει το software και hardware που υπάρχει στον υπολογιστή. Δεν είναι κάτι καινούργιο, αλλά με τα windows 10 πήρε και μια νέα λειτουργία, συλλέγει και τις πληροφορίες από άλλους υπολογιστές με windows στο ίδιο δίκτυο. Ο σκοπός είναι να υπάρχει συγκεντρωμένη η λίστα αν πχ έχετε μια επιχείρηση με 100 υπολογιστές και να βλέπετε αν υπάρχουν ασυμβατότητες. Τώρα γιατί αυτό είναι χρήσιμο στο σπίτι σας, δεν έχουμε ιδέα...

Steps Recorder
Η εφαρμογή αυτή καταγράφει το τι κάνει ένας χρήστης στον υπολογιστή. Χρησιμεύει ως troubleshooting εργαλείο σε περιπτώσεις σφαλμάτων. Το αποτέλεσμα της καταγραφής μπορεί μετά να σταλεί σε κάποιον τεχνικό για να το αξιολογήσει. Το καλό με αυτό είναι πως τα δεδομένα που καταγράφονται δε στέλνονται αυτόματα πουθενά και πως δεν αρχίζει αυτόματα. Υπάρχει και στα windows 7/8.

Lock Screen Camera
Εδώ έχουμε ένα feature που εμφανίστηκε στα windows 8. Ο σκοπός του είναι όταν μπαίνεις στα windows να μη γράφεις κάποιον κωδικό αλλά η πιστοποιήση να γίνεται με face detection. Το πρόβλημα εδώ είναι πως αποθηκεύεται μια εικόνα του εαυτού σας από τα windows, η οποία μπορεί να αποσταλεί στη microsoft. Ή μπορεί και όχι. Σύμφωνα με τη microsoft, τα windows συλλέγουν πληροφορίες κατά το δοκούν, συμπεριλαμβανομένης και της φωτογραφίας σας..

Cortana
Σύμφωνα με τη microsoft "Cortana will help you find things on your PC, manage your calendar, track packages, find files, chat with you, and tell joke". Για να καταφέρει τώρα η εν λόγω εφαρμογή να είναι για τα γούστα σας, προσπαθεί να καταλάβει τι σας αρέσει και τι όχι, τι ψάχνετε και τι όχι, τι κάνετε και πότε. Φυσικά λόγω της πολιτικής της microsoft για τα δεδομένα σας, οποιοδήποτε από αυτά μπορεί να σταλεί σε αυτήν οποτεδήποτε.

Location tracking και location history
Το γνωστό "που είσαι" που ρωτάνε οι εφαρμογές για διαφημιστικούς κυρίως σκοπούς ή αλλιώς για "personalised experience". Όλοι ξέρουμε τι σημαίνει αυτό, ένα κάρο διαφημίσεις. Και άντε, στο κινητό μπορεί κάποια στιγμή να είναι χρήσιμο το Location για κάποια εφαρμογή. Στο desktop, not so much.

Sensors
Τα windows 10 έχουν και αυτά τη δυνατότητα να χρησιμοποιούν αισθητήρες (sensors) όπως πχ proximity sensor, motion sensors κλπ κλπ. Όλοι τους χρησιμοποιούμε καθημερινά στα κινητά μας, μιας και έχουν προφανείς πρακτικές χρήσεις όπως το να καταλαβαίνει το κινητό πότε το πλησιάζουμε στο αυτί μας, να κάνει περιστροφή της οθόνης, να αυξομειώνει την ένταση του φωτισμού και πάει λέγοντας. Τι σχέση έχουν τώρα αυτά με το Pc μας? Και τα δεδομένα αυτά μας εγγυάται η microsoft πως δε συλλέγονται και δεν αποστέλλονται κάπου? Όχι.

Web Search
Με αυτό εννοούμε πως όταν κάνεις search στα windows, σου εμφανίζουν και αποτελέσματα από την μηχανή αναζήτηση Bing της microsoft. Όχι ευχαριστούμε.

Advertising ID
Εξ' ορισμού με τη δημιουργία λογαριασμού στα windows, αυτά δημιουργούν ένα μοναδικό αναγνωριστικό για..διαφημίσεις..Ναι είναι για να σας πετάνε διαφημίσεις όταν χρησιμοποιείτε συγκεκριμένες εφαρμογές, και να είναι "personalised" για να σας αρέσουν. Φυσικά για να είναι "personalised" πρέπει να γνωρίζουν πράγματα για εσάς.

SmartScreen Filter for URLs
Αυτό βασικά είναι κάτι χρήσιμο. Όταν επισκέπτεστε έναν ιστότοπο, τα windows χρησιμοποιούν το smartscreen filter για να δουν αν είναι κάποιος ύποπτος για malware, spam, bank phishing και άλλα ύποπτα. Μέχρις εδώ όλα καλά (εκτός του ότι όπου μπαίνετε τα windows το ξέρουν). Σύμφωνα με τη microsoft όμως, "κάποιες φορές", για κάποια websites που επισκέπτεστε, στέλνονται στη microsoft ένα κάρο δεδομένα όπως το full url, η έκδοση των windows σας, o browser που χρησιμοποιείτε, η γλώσσα κ.α. Μαζί με αυτά και το περιεχόμενο του site για ανάλυση. Φυσικά μπορεί στο περιεχόμενο να υπάρχουν προσωπικά σας δεδομένα, αλλά η microsoft υπόσχεται πως δε θα τα χρησιμοποιήσει για διαφημιστικούς σκοπούς. Για άλλους δε μας λέει.

Access to Language List
Αφορά την άδεια σε ιστοσελίδες να γνωρίζουν τη γλώσσα που χρησιμοποιείτε ώστε να δείχνουν διαφημίσεις στη γλώσσα σας...

App Access to Location Info, Camera, Microphone, Account Info, Calendar, Messages
Δε χρειάζεται να πούμε και πολλά, εξ' ορισμού στα windows επιτρέπεται σε εφαρμογές να έχουν πρόσβαση στα παραπάνω ώστε να γίνεται γενικώς η εμπειρία σας σε αυτά και αυτές πιο "προσωπική". Φυσικά επιτρέπεται να στέλνονται και στη microsoft...

Getting to know you
Ε πως να το κάνουμε, τα windows και η microsoft διακαώς θέλουν να μας γνωρίσουν! Αυτό είναι παρόμοιο με τα προηγούμενα περί "προσωπικής" εμπειρίας σας windows, αλλά ακόμη και αν απενεργοποιήσετε τα παραπάνω που έχουμε αναφέρει, η υπηρεσία αυτή τρέχει και πρέπει να την απενεργοποιήσετε ξεχωριστά...

Sync With Devices
Αυτό είναι ένα feature με το οποίο μπορείς να κάνεις sync μεταξύ πχ του laptop και του desktop στα themeσ, apps, web browser settings, passwords, language preferences κλπ. Αν δε σε ενδιαφέρει, το απενεργοποιείς γιατί εξ'ορισμού και αυτό είναι ενεργοποιημένο..

Windows Update Sharing
Άλλο κουφό και αυτό. Εξ ορισμού λοιπόν ξανά,τα windows 10 χρησιμοποιούν το bandwidth της σύνδεσής σας στο internet για να στέλνουν updates που έχετε κατεβάσει στο pc σας σε άλλους χρήστες των windows 10! Άρα γλιτώνει bandwidth η microsoft για να χαλάει το δικό της για δική της δουλειά. Σκέψου τώρα να μπαίνεις με κανένα 3G stick που πληρώνεις με το byte...

WiFi Sense
Αρχικά αυτή ήταν μια υπηρεσία των windows 8.1 phones που ήρθε και στα windows 10 pc. Ο σκοπός της είναι να γίνεται διαμοιρασμός του δικτύου wifi με τις επαφές σας στο facebook, outlook και skype. Αν μάλιστα και αυτοί έχουν windows 10 με το wifi sense ενεργοποιημένο, η διαδικασία γίνεται εκατέρωθεν, δηλαδή και εσύ δίνεις το wifi password σου σε αυτούς και αυτοί σε εσένα. Σύμφωνα με τη microsoft αυτό γίνεται για λόγους..ασφαλείας(!!) ώστε οι φίλοι σου αν τύχει και ανοίξουν το laptop τους σπίτι σου, αντί να σε ρωτάνε για το password, να μπαίνουν απευθείας αφού ήδη το έχουν! Καλά όλα αυτά αλλά μαντέψτε..το ποιοι είναι οι φίλοι σας και το αν έχουν αποθηκεύσει το password και ποιανού, στέλνονται κρυπτογραφημένα που αλλού, στη microsoft και αποθηκεύονται σε κάποιους δικούς της servers. Έτσι δημιουργείται μια βάση δεδομένων με στοιχεία ποιοι συνδέονται με ποιους και πότε και που. Κανείς δεν ξέρει αυτά που μπορεί να χρησιμοποιηθούν ή αν πχ δε θα γίνει μια παραβίασης της βάσης αυτής και τα στοιχεία βρεθούν στο Internet προς πώληση ή οτιδήποτε.

OneDrive
Το oneDrive είναι το cloud της microsoft για τους end-users δηλαδή εσάς.Αυτό που κάνει είναι πως συγχρονίζει διάφορα αρχεία από τον υπολογιστή σας στο cloud ώστε αν ποτέ είστε κάπου και τα χρειάζεστε να τα βρίσκετε εύκολα και αν ποτέ πάθει κάτι ο υπολογιστής ή κατά λάθος τα σβήσετε, να μπορείτε να τα ξαναβρείτε. Καλό αυτό αλλά..σύμφωνα με την microsoft..δεν μπορείς να το κλείσεις! Ντε και καλά πρέπει αυτό να κάνει sync όποτε νομίζει. Δε πα να έχεις τα πιο προσωπικά σου αρχεία που δε θες να δει κανένας και ποτέ? Πρέπει να γίνουν sync! Και όλοι έχουμε δει τι μπορεί να γίνει με ένα hack σε cloud based file storage (βλ. apple...). Ευτυχώς υπάρχει τρόπος να απενεργοποιηθεί παρ όλες τις διαβεβαιώσεις της μαμάς microsoft...

Automatic Windows Store Updates
Απενεργοποιήστε το, έχει να κάνει με το windows store για apps και εξ΄ορισμού χρησιμοποιεί και αυτό το windows update sharing...

Retrieving Device Metadata
Πρόκειται για ένα feature που υπάρχει από τα windows 7 και μετά. Τα windows μπορούν διαβάζοντας τα στοιχεία μιας συσκευής που είναι συνδεδεμένη στον υπολογιστή σας (πχ ένας εκτυπωτής) να κατεβάσει από το internet καλύτερα ..εικονίδια και drivers για τη συσκευή. Σε περίπτωση που για παράδειγμα ο driver που κατεβαίνει και εγκαθίσταται είναι λάθος, μπορείτε να το απενεργοποιήσετε και να βάλετε αυτόν που θέλετε. Φυσικά το οτι έχετε αυτή τη συσκευή καταγράφεται από τη microsoft.

Windows Customer Experience Improvement Program
Υποχρεωτικά μαζί μετα windows παίρνετε μέρος και στο windows customer experience improvement program ή αλλιώς η microsoft συλλέγει ότι νομίζει πως θα τη βοηθήσει να κάνει καλύτερα τα windows. Μαζεύει ακόμη και πόσα κλικ έχεις κάνει στο start menu, τι εικονίδια βάζεις στην επιφάνεια εργασίας και άλλα διάφορα. Συνιστούμε άμεση απενεργοποίηση.

Η λίστα φυσικά δεν τελειώνει εδώ.

Υπάρχουν αρκετά προγράμματα που δίνουν εύκολη λύση στην απενεργοποίηση των παραπάνω και άλλων ακόμη "features" των windows 10, όπως τα destroy windows 10 spying, disable win tracking, w10 privacy.

Υπάρχουν και αρκετές ρυθμίσεις στα ίδια τα windows που μπορείτε να κάνετε, αλλά δεν είναι αρκετές για να σταματήσουν τα windows από το να στέλνουν προσωπικά δεδομένα στη microsoft.

Τέλος, το κερασάκι στην τούρτα είναι πως η ίδια η microsoft δηλώνει:
Finally, we will access, disclose and preserve personal data, including your content (such as the content of your emails, other private communications or files in private folders), when we have a good faith belief that doing so is necessary to: 1.comply with applicable law or respond to valid legal process, including from law enforcement or other government agencies; 2.protect our customers, for example to prevent spam or attempts to defraud users of the services, or to help prevent the loss of life or serious injury of anyone; 3.operate and maintain the security of our services, including to prevent or stop an attack on our computer systems or networks; or 4.protect the rights or property of Microsoft, including enforcing the terms governing the use of the services – however, if we receive information indicating that someone is using our services to traffic in stolen intellectual or physical property of Microsoft, we will not inspect a customer’s private content ourselves, but we may refer the matter to law enforcement.

Μας το λένε κατάμουτρα δηλαδή, πως μας κλέβουν τι κάνουμε, πότε και που και τι περιεχόμενο έχει αυτό που κάνουμε.
Αυτά για τώρα, ελπίζω να πήρατε μια γεύση από το τι μπορείτε να κάνετε για να προστατεύσετε τα προσωπικά σας δεδομένα.

<br />

posted by qubix on December 29, 2015

Σε περίπτωση που χρειαστεί να φτιάξετε ένα iso από κάποιο dvd, στον κόσμο του linux είναι το πιο εύκολο πράγμα

cat /dev/sr0 > /path/to/myisofile.iso

ο λόγος που αυτό είναι δυνατό είναι επειδή το dvdrom σας στο linux είναι ένα block level device στο οποίο έχετε πρόσβαση από το ειδικό αρχείο /dev/sr0

brw-rw----+ 1 root cdrom 11, 0 Dec 29 12:39 /dev/sr0

Αν τώρα χρειαστεί να γράψετε αυτό το iso σε ένα usb disk/stick, και πάλι είναι μια γραμμή όλη κι όλη

dd bs=4 if=/path/to/myisofile.iso of=/dev/sdX

το bs είναι προαιρετικό αλλά καλό είναι να το βάλετε για να πάει λίγο πιο γρήγορα η αντιγραφή

/dev/sdX είναι το usb drive στο οποίο θέλετε να γράψετε το iso

για να βρείτε πιο είναι στο σύστημά σας, μπορείτε να γράψετε fdisk -l και να δείτε γενικά τους δίσκους -οπότε και να βρείτε ποιος είναι το usb drive-

τέλος, για να δείτε την πρόοδο μπορείτε να στείλετε ένα SIGINFO σήμα από ένα δεύτερο terminal

kill -USR1 $(pidof dd)

και στο terminal που τρέχει το dd θα δείτε στατιστικά όπως:

464300033+0 records in
464300033+0 records out
1857200132 bytes (1.9 GB) copied, 1438.94 s, 1.3 MB/s


posted by qubix on December 27, 2015

Πρόσφατα μου ανατέθηκε το task να μεγαλώσω ένα partition σε ένα vm. Μια χαρά λέω, πάμε. Τα είχα υπολογίσει όμως χωρίς τον ξενοδόχο..ο οποίος είχε κάνει την εγκατάσταση ΧΩΡΙΣ lvm οπότε το μόνο που έμενε ήταν το live resize...

Και πως γίνεται αυτό με ρωτάτε??

Ω ναι ... πρέπει να σβηστεί το partition και να ξαναγραφτεί..

αρχίζουμε κοιτάζοντας την υπάρχουσα κατάσταση:

# fdisk /dev/sda

Command (m for help): p

Disk /dev/sda: 128.8 GB, 128849018880 bytes
255 heads, 63 sectors/track, 15665 cylinders, total 251658240 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000d11b8

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   100663295    50330624   83  Linux
/dev/sda2       100665342   104855551     2095105    5  Extended
/dev/sda5       100665344   104855551     2095104   82  Linux swap / Solaris

Σβήνουμε τα partitions από το partition table
Command (m for help): d
Partition number (1-5): 1

Command (m for help): d
Partition number (1-5): 2

τσεκάρουμε και όντως έχουν σβηστεί
Command (m for help): p

Disk /dev/sda: 128.8 GB, 128849018880 bytes
255 heads, 63 sectors/track, 15665 cylinders, total 251658240 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000d11b8

Device Boot      Start         End      Blocks   Id  System

Φτιάχνουμε το νέο partition
Command (m for help): n
Partition type:
p   primary (0 primary, 0 extended, 4 free)
e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-251658239, default 2048): 2048
Last sector, +sectors or +size{K,M,G} (2048-251658239, default 251658239): 247468030

αν προσέξετε έχω αφήσει 251658239 - 247468030 = 4190209 sectors, το οποίο χοντρικά είναι 2G

Command (m for help): p
Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048   247468030   123732991+  83  Linux

Πάμε τώρα να φτιάξουμε και το extended partition στο οποίο μέσα θα είναι και το ..swap (μη με ρωτάτε γιατί...)
Command (m for help): n
Partition type:
p   primary (1 primary, 0 extended, 3 free)
e   extended
Select (default p): e
Partition number (1-4, default 2): 2
First sector (247468031-251658239, default 247468031):
Using default value 247468031
Last sector, +sectors or +size{K,M,G} (247468031-251658239, default 251658239):
Using default value 251658239

Command (m for help): p

Disk /dev/sda: 128.8 GB, 128849018880 bytes

Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048   247468030   123732991+  83  Linux
/dev/sda2       247468031   251658239     2095104+   5  Extended

Και τέλος φτιάχνουμε και το μελλοντικό swap
Command (m for help): n
Partition type:
p   primary (1 primary, 1 extended, 2 free)
l   logical (numbered from 5)
Select (default p): l
Adding logical partition 5
First sector (247470079-251658239, default 247470079):
Using default value 247470079
Last sector, +sectors or +size{K,M,G} (247470079-251658239, default 251658239):
Using default value 251658239

Ιδού το νέο partition table
Command (m for help): p

Disk /dev/sda: 128.8 GB, 128849018880 bytes

Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048   247468030   123732991+  83  Linux
/dev/sda2       247468031   251658239     2095104+   5  Extended
/dev/sda5       247470079   251658239     2094080+  83  Linux

αλλάζουμε το partition type στο swap
Command (m for help): t
Partition number (1-5): 5
Hex code (type L to list codes): 82
Changed system type of partition 5 to 82 (Linux swap / Solaris)

Command (m for help): p

Disk /dev/sda: 128.8 GB, 128849018880 bytes

Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048   247468030   123732991+  83  Linux
/dev/sda2       247468031   251658239     2095104+   5  Extended
/dev/sda5       247470079   251658239     2094080+  82  Linux swap / Solaris

βάζουμε το boot flag στο 1ο partition
Command (m for help): a
Partition number (1-5): 1

Command (m for help): p

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   247468030   123732991+  83  Linux
/dev/sda2       247468031   251658239     2095104+   5  Extended
/dev/sda5       247470079   251658239     2094080+  82  Linux swap / Solaris

και τέλος γράφουμε τις αλλαγές στον δίσκο
Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

όπως βλέπετε οι αλλαγές δεν είναι ορατές από τον kernel οπότε πρέπε να δοκιμάσετε είτε με το partprobe, είτε με το kpartx. Αν κανένα από τα δύο δεν πιάσει, απλά κάνετε reboot και μπαίνετε σε single user mode

Αφού καταφέραμε να μεγαλώσουμε το partition, πρέπει τώρα να μεγαλώσουμε και το filesystem μέσα σε αυτό. Ευτυχώς για εμάς αυτό το κάνει το resize2fs

# resize2fs /dev/sda1
resize2fs 1.42.9 (4-Feb-2014)
Filesystem at /dev/sda1 is mounted on /; on-line resizing required
old_desc_blocks = 3, new_desc_blocks = 8
The filesystem on /dev/sda1 is now 30933247 blocks long.

# df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sda1      ext4      117G   20G   92G  18% /
none           tmpfs     4.0K     0  4.0K   0% /sys/fs/cgroup
udev           devtmpfs  991M   12K  991M   1% /dev
tmpfs          tmpfs     201M  488K  200M   1% /run
none           tmpfs     5.0M     0  5.0M   0% /run/lock
none           tmpfs    1001M     0 1001M   0% /run/shm
none           tmpfs     100M     0  100M   0% /run/user

===================

Για το τέλος αφήσαμε το swap:

# free -m
total       used       free     shared    buffers     cached
Mem:          2001        592       1409          0         62        459
-/+ buffers/cache:         71       1930
Swap:            0          0          0

όντως δεν υπάρχει swap αφού δεν το φτιάξαμε οπότε πάμε να το "φορμάρουμε"

# mkswap /dev/sda5
Setting up swapspace version 1, size = 2094076 KiB
no label, UUID=8d78c3dc-5ed9-42c1-a04f-050b99b8a39d

είμαστε έτοιμοι και χωρίς απώλειες ελπίζω!

posted by qubix on November 1, 2015

Είπα να γράψω ένα απλό extension για firefox και αφού εγκατέστησα το node.js και το jpm tool, φτιάχνω το directory στο οποίο θα έβαζα το extension και περιχαρής πατάω jpm init για να φάω χυλόπιτα:
<br/> /usr/bin/env: node: No such file or directory

Well..δεν ήθελε και πολύ μυαλό βασικά, στο debian που δουλεύω εδώ, το πακέτο λέγεται nodejs και μαντέψτε: έτσι λέγεται και το node binary. Δεν υπάρχει λοιπόν node αλλά nodejs και η λύση είναι ένα απλό symlink:
ln -s /usr/bin/nodejs /usr/bin/node

Και ως δια συνδέσμου λοιπόν, λύθηκε το πρόβλημα

posted by qubix on October 31, 2015

Ναι, το joomla 1.5.x είναι αρχαιολογία. Έλα όμως που υπάρχουν ακόμη sites σε αυτό από ανθρώπους που δε θέλουν να τα αναβαθμίσουν, δεν ξέρουν πως ή απλά τα έχουν παρατήσει στο έλεος της μοίρας τους...

Σε ένα τέτοιο site λοιπόν, ξαφνικά αντί για χαρακτήρες, παντού εμφάνισε αγγλικά ερωτηματικά ?????
Τελικά όμως δεν ήταν και τόσο ξαφνικά. Στον server αυτό, για λόγους performance, οι ιδιοκτήτες πήγανε από mysql 5.5 σε mariaDB 10.1 και από τότε και μετά το utf8 πήγε περίπατο στο παλιό αυτό joomla.

Γιατί όμως; Η απάντηση βρέθηκε στο αρχείο:

libraries/joomla/database/database/mysql.php

και συγκεκριμένα στη function hasUTF() στην οποία η γραμμή

return ($verParts[0] == 5 || ($verParts[0] == 4 && $verParts[1] == 1 && (int)$verParts[2] >= 2));

είναι φανερό πως δεν μπορεί να αναγνωρίσει οτιδήποτε μεγαλύτερο του 5.x ως version του όποιου SQL server είναι εν χρήση, και η mariaDB όπως προείπα είναι..10.1..
To ίδιο ακριβώς ισχύει και στο αρχείο:

libraries/joomla/database/database/mysqli.php

Η λύση είναι η αντικατάσταση της εν λόγω γραμμής με την παρακάτω:

return ($verParts[0] >= 5 || ($verParts[0] == 4 && $verParts[1] == 1 && (int)$verParts[2] >= 2));

Τώρα το αγαπημένο σας παλιό site θα παίξει κανονικά :]

posted by qubix on October 24, 2015

Ως γνωστόν το plain FTP θεωρείται και είναι ανασφαλές. Στο πνεύμα αυτό λοιπόν, το filezilla αποφάσισε και καλά έκανε να βάλει default τη σύνδεση με FTP over TLS...

Κάπου εκεί λοιπόν ανακάλυψα πως ο server στον οποίο ήθελα να συνδεθώ, μετά από ένα warning για το tls certificate, όταν έφτανε στην εντολή MLSD για να δείξει τα περιεχόμενα του directory (PWD -> TYPE I -> PASV -> MLSD) πέταξε ένα ωραιότατο timeout..

Προφανώς το πρόβλημα ήταν στην PASV όπου προσπαθούσε να συνάψει σύνδεση σε passive mode(*). Έλα που όμως δεν υπήρχαν πόρτες ανοιχτές για το σκοπό αυτό...

O server αυτός έτρεχε cpanel και pureftpd οπότε ήταν απλά ..θέμα configuration:

1) κάνουμε uncomment τη γραμμή
PassivePortRange 30000 50000

στο αρχείο /etc/pure-ftpd.conf

προφανώς μπορούμε να βάλουμε οποιοδήποτε port range θέλουμε

2) κάνουμε restart τον pureftp daemon

/etc/init.d/pureftpd restart

3) για να κάνουμε τις αλλαγές μόνιμα πρέπει να πειράξουμε το conf του cpanel για τον pureftpd

/var/cpanel/conf/pureftpd/main

προσθέτουμε τη γραμμή

PassivePortRange: '30000 50000'

4) σιγουρευόμαστε πως οι πόρτες είναι ανοιχτές στο firewall

- αν δεν χρησιμοποιούμε κάποιο plugin (πχ csf)
iptables -t filter -I INPUT -p tcp –dport 30000:50000 -j ACCEPT

- αν χρησιμοποιούμε το csf (ή οποιοδήποτε άλλο plugin) πάμε στο interface του και σετάρουμε από εκεί τις πόρτες

5) δοκιμάζουμε τη νέα μας ασφαλή FTP over TLS σύνδεση :]

Τις παραπάνω εντολές τις τρέχουμε ως root ή ως privileged user


(*) passive ftp mode είναι ο τρόπος σύνδεσης ενός client με τον ftp server κατά τον οποίο ο client συνδέεται ο ίδιος με τον server και στο command channel και στο data channel σε κάποιες τυχαίες unprivileged ports, σε αντίθεση με τον active mοde, στον οποίο ο server συνδέεται με τον client στο data channel, πράγμα το οποίο συνήθως δεν επιτρέπουν τα firewalls και πρόβλημα το οποίο λύνει ο passive τρόπος σύνδεσης.

posted by qubix on October 11, 2015

I tried some days ago to transfer some accounts from a plesk vps to a cpanel one. Having root access to both machines and using cpanel's transfer tool I thought it would be a simple task but upon the first transfer something went wrong..

------------------------------------------------
Starting “TRANSFER” for “Account” “asdasd”.
Copy Destination: /home
Remote server type: “plesk”.
Packaging the account with the command: /scripts/pkgacct.MYSERVERHOST.com asdasd '' --split --compressed --mysql 5.5 --allow-multiple …
Unknown option: compressed
Unknown option: mysql
MySQL error: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) at /tmp/.perl-ppk-Kh2FBV/lib/Cpanel/Foreign/Plesk/DB.pm line 117.
Done
Target “/home” on host “myserver.net” has 412 GB free and requires at least 0 bytes free, which includes space for temporary files.
WARNING: The remote server failed to send the location of the transfer archive.
WARNING: Attempting to guess the location of the remote transfer archive.
Fetching md5sum of “/home/cpmove-asdasd.tar.gz” from the remote server … …
Done
Removing copied archive on remote server. …
Done

Failed: The remote execution of “pkgacct.myserver.net” was not sucessful, or the requested account, “asdasd” was not found on the server: “IP ADDRESS”.
-----------------------------

as we can see, the process stopped because the migration script could not connect to plesks mysql.

trying to find out what happened I realized that I couldn't connect either manually.

In plesk the password is stored in a file: /etc/psa/.psa.shadow
that ".shadow" doesn't look good and indeed tha password in that file is AES encrypted,something like
$AES-128-CBC$xR2nUGJY6HA8q8eGQUT38w==$EiTB+LFuWnRSHWFkqOgtKg==

According to plesk documentation you can see the password with the command:
/usr/local/psa/bin/admin --show-password

Amazingly it worked. What it didn't work is logging into mysql with it...again the same error trying
mysql -uadmin -ptheabovepassword

It turns out that mysql in plesk wants the encrypted version of it not the plaintext.So the correct command would be:
mysql -uadmin -p`cat /etc/psa/.psa.shadow`

well..that was weird :P

Now you can populate the file /root/.my.cnf with the correct credentials so cpanel can connect to plesk mysql and account transfer be completed successfully!

And the contents of .my.cnf file (place them without the lines!)
----------------
[client]
user=admin
password='$AES-128-CBC$xR2nUGJY6HA8q8eGQUT38w==$EiTB+LFuWnRSHWFkqOgtKg=='
----------------
 

posted by qubix on May 18, 2015

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

Προφανώς μία λύση είναι να ..αγοράσουμε περισσότερη RAM. Αυτό όμως δεν είναι πάντα εφικτό. Ίσως το μηχάνημα να μην παίρνει περισσότερη μνήμη, ίσως δεν υπάρχουν άλλα slots για να μπει, ίσως είναι κάποιο εταιρικό laptop το οποίο δεν μπορούμε ή δε θέλουμε να πειράξουμε.

Ήρθε η ώρα λοιπόν για τη δημιουργία ενός swapfile! Τι είναι αυτό καταρχάς. Το swapfile είναι ένα αρχείο το οποίο το λειτουργικό μπορεί να χρησιμοποιήσει ως εικονική μνήμη RAM όταν η κανονική τελειώσει. Αυτό έχει τα υπερ του, όπως για παράδειγμα το οτι μπορούμε να βάλουμε 64Gb αν θέλουμε και να σηκώσουμε 10 Virtual machines με windozzzee, αλλά έχει και το κατά πως οι σκληροί δίσκοι -ακόμη και οι ssd- είναι αργοί σα χελώνες σε σύγκριση με τη RAM και όλα θα σέρνονται.

Εν πάση περιπτώσει η διαδικασία είναι πολύ απλή. Χρειάζεται βέβαια να έχουμε δικαιώματα root ή παραπλήσια ώστε να την πραγματοποιήσουμε.

Πάμε παρακάτω λοιπόν:

1) τσεκάρουμε αν υπάρχει ήδη swap file ή κάποιο swap partition

free -m

αν δεν υπάρχει swap θα πρέπει να δείτε μια γραμμή

Swap: 0 0 0

2) εφόσον δεν υπάρχει κάποιο swap, πάμε να φτιάξουμε ένα με το utility fallocate

fallocate /swapfile -l 2G

έβαλα εγώ τώρα 2G, μπορείτε εσείς να βάλετε όσο θέλετε, κατά προτίμηση όσο και η διαθέσιμη RAM που έχετε, εκτός και έχετε πολύ λίγη οπότε βάλτε επί δύο ή τρία

3) κάνουμε το αρχείο swapfile format ως swap

mkswap /swapfile

4) του δίνουμε τα κατάλληλα δικαιώματα για να μη διαμαρτύρεται το σύστημα πως είναι "insecure"

chmod 600 /swapfile

5) του δίνουμε μία να ξεκινήσει :]

swapon /swapfile

6) τσεκάρουμε πως τώρα υπάρχει swap

swapon (σκέτο χωρίς ορίσματα)

πρέπει να δούμε κάτι σαν το παρακάτω:

NAME TYPE SIZE USED PRIO
/swapfile file 2G 0B -1

7) πάμε τώρα στο αρχείο /etc/fstab να το δηλώσουμε ώστε σε κάθε εκκίνηση να γίνεται mount

nano /etc/fstab (ή vim, emacs ότι editor προτιμάτε)

και προσθέτουμε τη γραμμή

/swapfile1 none swap sw 0 0

8) σώζουμε το αρχείο και είμαστε έτοιμοι!

posted by qubix on April 19, 2015

Τι γίνεται όταν ξαφνικά δεν μπορούμε να κάνουμε install καμία εφαρμογή στο android tablet/mobile που έχουμε;

Πριν δοκιμάσουμε τα παρακάτω, ας σιγουρευτούμε πως
1) έχουμε χώρο στη συσκευή
2) έχουμε external storage διαθέσιμο

καλό είναι λοιπόν να καθαρίσουμε πρώτα τη συσκευή μας, δεν έχουμε κάτι να χάσουμε

μπορούμε να χρησιμοποιήσουμε κάποιο app οπως πχ το android assistant για να καθαρίσουμε caches και να απεγκαταστήσουμε τυχόν άχρηστες πλέον εφαρμογές. Επίσης μπορούμε να μετακινήσουμε με το app2sd κάποιες εφαρμογές στην κάρτα από την εσωτερική μνήμη της συσκευής

αφού κάνουμε τον καθαρισμό προχωράμε παρακάτω

Καταρχήν δε χρειάζεται να έχουμε rootάρει τη συσκευή, όλα θα γίνουν με το adb

Αν δεν ξέρετε τι είναι αυτό, μην προχωρήσετε άλλο, ψάχτε το πρώτα γιατί θα πρέπει να το έχετε εγκαταστήσει και να βλέπει σωστά τη συσκευή!

Υποθέτουμε λοιπόν πως όλα είναι οκ και πατώντας adb devices στην κονσόλα (είτε linux,είτε windozze) θα δούμε κάτι σαν αυτό:

adb devices List of devices attached 032c1967e89500000000 device

αν δεν έχει αναγνωριστεί η συσκευή δεν μπορούμε να κάνουμε τίποτα. Αν είστε σε windoze θα χρειαστείτε drivers, αν είστε σε linux θα πρέπει να βάλετε κάποια στοιχεία από το lsusb output στο αρχείο ~/.android_usb.ini

anywayz, προχωράμε

γράφουμε τώρα adb shell για να ανοίξουμε μια root κονσόλα στη συσκευή μας

Ως root μπορούμε να κάνουμε πολλά και διάφορα οπότε προσωχή μη τα διαλύστε όλα :]

Για να δούμε που γίνεται εκ του default η εγκατάσταση των εφαρμογών στη συσκευή μας γράφουμε

pm get-install-location

θα επιστρέψει κάποια τιμή που μπορεί να είναι

0 default
1 internal
2 external

αναλόγως με τη συσκευή το 1 μπορεί να είναι και external και το 2 κάποια sdcard. Αυτό συμβαίνει γιατί κάποιες συσκευές έχουν ενσωματωμένη κάποια

αν ήδη είμαστε σε external, δεν μπορούμε να κάνουμε κάτι περισσότερο, το πρόβλημα είναι αλλού...

Αν τώρα δούμε 0 ή 1 και ξέρουμε πως έχουμε και κάποια sdcard memory, μπορούμε να δοκιμάσουμε να αλλάξουμε τη ρύθμιση με:

pm set-install-location 1 (ή 2)

κάνουμε ένα reboot
adb reboot

και δοκιμάζουμε να εγκαταστήσουμε την εφαρμογή που πριν κολλούσε

hyperworks