SSH χρήστης τρέχει συγγεκριμένη εφαρμογή και όχι κέλυφος

...το μέρος για να ξεκινήσετε!

Συντονιστής: adem1

Κανόνες Δ. Συζήτησης
Παρακαλώ να επιλέξετε, με προσοχή, την άδεια που θέλετε να έχουν οι οδηγοί που συγγράφετε.
Πληροφορίες για τις άδειες μπορείτε να βρείτε εδώ.
Άμα επιθυμείτε κάποια άλλη άδεια επικοινωνήστε με κάποιο Διαχειριστή είτε Συντονιστή.

Σημαντικό είναι να χρησιμοποιήσετε την υπηρεσία http://imagebin.ubuntu-gr.org για τις εικόνες.

SSH χρήστης τρέχει συγγεκριμένη εφαρμογή και όχι κέλυφος

Δημοσίευσηαπό pc_magas » 29 Σεπ 2016, 16:47

Πολλάκις παρατηρήσατε ότι όταν κάνετε ssh στο giithub.com σας εμφανίζει τα κάτωθι:
Κώδικας: Επιλογή όλων
PTY allocation request failed on channel 0
Hi pc-magas! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.


Έτσι ώντας καλός χάκερ (Οκ συνείδηση είμαι ψωνάρα ;) ) σκεύτικα:
Θα μπορούσα να τρέξω μια εφαρμογή σε ένα απομακρυσμένο μηχάνημα απ' ευθείας με το που κάνω ssh χωρίς να μπώ καθόλου σε shell;


Και η απάντηση είναι ΝΑΙ.

Έτσι έκανα μια απλή εφαρμογή σε παλιά καλή C (να θυμηθούμε και τα φοιτητικά μας χρόνια):
Κώδικας: Επιλογή όλων
#include<stdio.h>

int main(int argc, char *argv)
{
  puts("Hello World!");
  return 0;
}


To αποθήκευσα σαν hello.c και την έκανα compile:
Κώδικας: Επιλογή όλων
gcc hello.c


Και μετά μετέφερα το a.out στον φάκελο /bin:

Κώδικας: Επιλογή όλων
sudo mv a.out /bin/hello


Έτσι δίνοντας απλά hello στο terminal δείχνει το μύνημα "Hello world".

Χμμ εφόσον έχουμε το απλό application εάν το ορίσω σαν shell ενός χρήστη τι θα γίνει;

Έτσι λοιπόν έκανα έναν χρήστη ορίζοντας σαν shell το /bin/hello.

Κώδικας: Επιλογή όλων
sudo adduser --s /bin/hello hello


Εφόσον συμπληρώσουμε τα πεδία που λείπουν τότε προσπαθούμε να συνδεθούμε μέσω του χρήστη hello.
Κώδικας: Επιλογή όλων
sudo su hello


Και λαμβάνουμε το μύνημα "Hello world".

Χμμ εάν προσπαθήσω να συνδεθώ μέσω ssh ώς χρήστης hello τι θα συμβεί;

Μα φυσικά θα εμφανιστεί το μύνημα hello μαζί όμως με κάποια άλλα μυνήματα συστήματος.

Στο αρχικό παράδειγμα όμως δεν εμφανίζει τέτοια μυνήματα, πρέπει κάπως να τα "σιωπήσουμε" (και για κάποιο λόγο παίζει το soundtrack της ταινίας "Godfather" δεν ξέρω γιατί :?: ).

Αυτό γίνεται σχετικά εύκολα τρέχοντας:
Κώδικας: Επιλογή όλων
sudo -u hello touch /home/hello/.hushlogin


Και παίρνουμε αυτό που θέλουμε.

Όμως τώρα μου ήρθε μια ιδέα εάν τρέχει μια εφαρμογή που τρέχει σε περιβάλλον ncurses (παράθυρα σε τερματικό σε απλά Ελληνικά);

Έτσι έβαλα στο hello.c τον κώδικα που βρήκα στο http://www.tldp.org/HOWTO/NCURSES-Progr ... NDOWBASICS

εγκατέστησα την ncurses-dev
Κώδικας: Επιλογή όλων
sudo apt-get install ncursed-dev


Και το έκανα ξανά compile:

Κώδικας: Επιλογή όλων
gcc hello.c -lncurses


Και μετά ξαναμετέφερα το a.out στον φάκελο /bin:

Κώδικας: Επιλογή όλων
sudo mv a.out /bin/hello


Τώρα πλέον έχουμε μια εφαρμογή με ένα περιβάλλον λιιγο ποιο φιλικό προς τον χρήστη μέσω ssh connection.

Τώρα που μπορεί να χρησιμέψει αυτό:

Στο να έχεις μια εφαρμογή σε έναν server και να επιτρέπεις σε συγγεκριμένα άτομα και υπολογιστές να την τρέχουν χωρίς πολλά πολλά. Η εφαρμογή μπορεί να είναι το οτιδήποτε από την super secret εφαρμογή που να ελέγχει την εκτόξευση πυρινικών κεφαλών μέχρι απλά ένα trollapp που να δείχνει σε asciiart την ταινία starwars.
Τελευταία επεξεργασία από pc_magas και 22 Οκτ 2016, 20:43, έχει επεξεργασθεί 3 φορά/ες συνολικά
My blog|Κυπριακή Κοινότητα Ελευθέρου Λογισμικού Λογισμικού ανοικτού Κώδικα
Γνώσεις Linux:Ποτέ αρκετές|Προγραμματισμός: Php, javascript, nodejs, python, bash |Aγγλικά:Καλά
Οι υπολογιστές μου:
Spoiler: show
Ubuntu 16.04 64 bit σεIntel(R) Pentium(R) CPU G4400 @ 3.30GHz, 16Gib Ram, 500Gib Hard Disk, και κάρτα γραφικών Nvidia Geforce GT610
Lubuntu 14.04 σε Dell Inspiron mini 10(1010) intel Atom Z500 1Gb ram και gma500 (εδώθη σε άλλον)
Kubuntu 16.04 Lenovo G70 Intel i5 Nvidia Grapgics Card, Intel Graphics card (έχει 2) με Nouveau, 16Gb RAM, 126GB SSD Σκληρό Δίσκο
Άβαταρ μέλους
pc_magas
powerTUX
powerTUX
 
Δημοσιεύσεις: 2593
Εγγραφή: 12 Απρ 2009, 18:55
Τοποθεσία: Αχαρναί Αττικής
Launchpad: pc_magas
IRC: pc_magas
Εκτύπωση

Re: SSH χρήστης po τρέχει συγγγεκριμένη εφαρμογή από το logi

Δημοσίευσηαπό the_eye » 29 Σεπ 2016, 22:48

Εγώ κατάλαβα ότι έκανες μια εφαρμογή τοπικά και την εκτέλεσες τοπικά.
Τι σχέση έχει με το ssh του giithub ;
Το shh σου δίνει όλον τον remote user και τρέχεις ότι έχει δικαίωμα να τρέξει ο χρήστης.

Προς τι το μυστήριο !
Όσο λιγότερο κλειστό λογισμικό έχεις, τόσα λιγότερα προβλήματα.
1 Γνώσεις ⇛ Linux: Καλό ┃ Προγραμματισμός: Ναι PHP, MySQL ┃ Αγγλικά: Καλά
2 Ubuntu 18.04 bionic 4.15.0-42-generic 64bit (el_GR.UTF-8, GNOME-Flashback:Unity gnome-flashback-compiz)
3 Intel Core i3-6100 CPU @ 3.70GHz ‖ RAM 3832 MiB ‖ Gigabyte B150M-HD3 DDR3-CF
4 Intel Sky Lake Integrated Graphics [8086:1912] {i915_bpo}
5 enp1s0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15)
Οδηγοί Ubuntu Βίντεο Οδηγοί
Άβαταρ μέλους
the_eye
Διαχειριστής
Διαχειριστής
 
Δημοσιεύσεις: 11455
Εγγραφή: 16 Μαρ 2010, 17:19
Launchpad: ntoulasd
IRC: the_eye_
Εκτύπωση

Re: SSH χρήστης po τρέχει συγγγεκριμένη εφαρμογή από το logi

Δημοσίευσηαπό pc_magas » 30 Σεπ 2016, 20:43

Όχι αλλά λέω όπως το github δεν σου πετά κέλυφος όταν κάνεις ssh έτσι και εγώ κάνω replicate αυτό.
My blog|Κυπριακή Κοινότητα Ελευθέρου Λογισμικού Λογισμικού ανοικτού Κώδικα
Γνώσεις Linux:Ποτέ αρκετές|Προγραμματισμός: Php, javascript, nodejs, python, bash |Aγγλικά:Καλά
Οι υπολογιστές μου:
Spoiler: show
Ubuntu 16.04 64 bit σεIntel(R) Pentium(R) CPU G4400 @ 3.30GHz, 16Gib Ram, 500Gib Hard Disk, και κάρτα γραφικών Nvidia Geforce GT610
Lubuntu 14.04 σε Dell Inspiron mini 10(1010) intel Atom Z500 1Gb ram και gma500 (εδώθη σε άλλον)
Kubuntu 16.04 Lenovo G70 Intel i5 Nvidia Grapgics Card, Intel Graphics card (έχει 2) με Nouveau, 16Gb RAM, 126GB SSD Σκληρό Δίσκο
Άβαταρ μέλους
pc_magas
powerTUX
powerTUX
 
Δημοσιεύσεις: 2593
Εγγραφή: 12 Απρ 2009, 18:55
Τοποθεσία: Αχαρναί Αττικής
Launchpad: pc_magas
IRC: pc_magas
Εκτύπωση


  • ΣΧΕΤΙΚΑ ΘΕΜΑΤΑ
    ΑΠΑΝΤΗΣΕΙΣ
    ΠΡΟΒΟΛΕΣ
    ΣΥΓΓΡΑΦΕΑΣ

Επιστροφή στο Οδηγοί - How to - Tutorials