Shelluser Probleme

Dieses Thema im Forum "Allgemein" wurde erstellt von rkaerner, 22. März 2013.

  1. rkaerner

    rkaerner New Member

    Hallo, liebe Mitnutzer!

    Dies ist mein erster Post, eine Suche nach entsprechenden Beiträgen, die das Thema eventuell schon behandeln, war erfolglos, also schreibe ich mir das jetzt mal von der Seele, in der Hoffnung, nicht gleich verhauen zu werden, weil ich den Wald vor leuter Bäumen nicht sehe.

    Eingerichtet wurde der Server nach diesem HowTo:
    The Perfect Server - Debian Squeeze (Debian 6.0) With BIND & Courier [ISPConfig 3] | HowtoForge - Linux Howtos and Tutorials

    Folgende Änderungen wurden dabei vorgenommen:
    - in /etc/locale.gen wurde de_DE.UTF8 zusätzlich eingeschaltet und danach mit locale-gen die beiden Sprachen en_US.UTF8 und de_DE.UTF8 gebaut. Sonst kommt es nämlich bei den meisten Installationen immer wieder zu Fehlermeldungen, die Sprachen betreffend.
    - die my.cnf wurde nicht geändert, da die Datenbanken nicht von "außen" erreichbar sein sollen. Wozu auch?
    - in /etc/vim/vimrc wurden folgende Ergänzungen vorgenommen:
    set expandtab
    set tabstop=4
    set shiftwidth=4
    syntax on
    - vim.basic wurde als editor mittels update-alternatives festgelegt

    So weit, so gut.

    Nun also ab ins Webinterface, Kunden und Domain anlegen, zum Kunden werden und einen Shelluser anlegen. Hierbei wird kein chroot vorgenommen. Was fällt auf? Ich gebe einen Benutzernamen an und merke erst hinterher, dass meinem Benutzernamen der Kundenloginname vorangestellt wird. Wieso ist das nicht von vornherein zu sehen? Also lege ich einen neuen User an, der schlicht "-ssh" heisst, weil ich jetzt ja weiss, dass ein "rkaerner" vorn angehängt wird. Danach lösche ich den ersten Shelluser, den ich angelegt habe und gehe erst einmal eine Zigarette rauchen, damit die Scripte auf der maschine auch die Gelegenheit haben, die Arbeit auszuführen, die ich ihnen gerade aufgehalst habe.

    Fein, der Login klappt. Mal eben überprüfen, wo ich bin und wer ich bin:
    web1@test:~$ pwd
    /var/www/clients/client1/web1
    web1@test:~$ whoami
    web1
    web1@test:~$

    Passt.
    Schnell mal eine .bashrc anlegen... aber was ist das?
    ".bashrc" E212: Can't open file for writing
    Wieso kann ich das nicht tun? Okay, verlassen wir vim mal eben.
    E138: Can't write viminfo file /var/www/clients/client1/web1/.viminfo!
    War zu erwarten nach der ersten Fehlermeldung. Schauen wir doch mal nach, was da klemmt:
    web1@test:~$ ls -lisa
    total 40
    99093 4 drwxr-xr-x 10 root root 4096 Mar 22 17:08 .
    99092 4 drwxr-xr-x 3 root root 4096 Mar 22 17:03 ..
    99123 0 -rwxr-xr-x 1 web1 client1 0 Mar 22 17:10 .bash_history
    99097 4 drwxr-xr-x 2 web1 client1 4096 Mar 22 17:03 cgi-bin
    99086 4 drwxr-xr-x 2 root root 4096 Mar 22 17:04 log
    99100 4 drwx--x--- 2 web1 client1 4096 Mar 22 17:03 private
    99121 4 drwx------ 2 web1 client1 4096 Mar 22 17:10 .ssh
    99094 4 drwxr-xr-x 2 root root 4096 Mar 22 17:03 ssl
    99098 4 drwxrwxrwx 2 web1 client1 4096 Mar 22 17:18 tmp
    99095 4 drwx--x--- 4 web1 client1 4096 Mar 22 17:03 web
    99099 4 drwx--x--- 2 web1 client1 4096 Mar 22 17:03 webdav
    web1@test:~$
    Nanu? Mein Heimatverzeichnis gehört dem User und der Gruppe root? Warum? Schauen wir mal, ob wir das gerade gebogen bekommen:
    root@test /var/www/clients/client1 # chown web1:client1 web1
    chown: changing ownership of `web1': Operation not permitted
    root@test /var/www/clients/client1 #
    Nö, offensichtlich nicht. Mal abgesehen davon, dass ich keine Lust habe, auf einer managed machine nach jeder Shelluser-Anlage eines Kunden da an den Verzeichnisrechten rumzubiegen, eröffnet sich mir nun folgende Frage:

    Was mache ich falsch und warum kann ein Shelluser in seinem Verzeichnis keine Dateien anlegen? Bin ich bei der Installation nach dem oben genannten Howto falsch abgebogen? Wieso habe ich nicht einmal als root die Möglichkeit, in dem Verzeichnis von web1 zu schreiben, um manuell Dateien anzulegen und deren Userzugehörigkeit zu ändern, damit der Shelluser in der Lage ist, eigene .bshrc, .bash_profile und dergleichen anlegen zu können?

    Ich bitte um Hilfe und bedanke mich im voraus.

    Ralph
     
  2. florian030

    florian030 Member

  3. rkaerner

    rkaerner New Member

    Aaaaaah *Kopf@Tisch*

    Himmel, ist das peinlich! Florian, vielen Dank für die schnelle Antwort.

    Jetzt gilt es nur noch, herauszufinden, wie gefährlich es ist, wenn ich immutable abschalte für den Server. Wird die Maschine dadurch von außen angreifbarer? Der Kunde kann mit der Shell umgehen und wird garantiert keine Verzeichnisse oder Dateien löschen, die nicht im web/ Verzeichnis liegen, hätte aber eben gern entsprechende Shelleigenschaften durch Aliase und dergleichen und würde natürlich auch gern ohne Probleme vim nutzen können samt eigener vimrc und eigener .viminfo...

    Ich nehme stark an, dass, wenn ich den Haken entferne, bereits angelegte Webverzeichnisse händisch von mir von dem Attribut befreit werden müssen, weil die Einstellung dann nur bei zukünftigen Webverzeichnissen greift?

    Ralph
     
  4. florian030

    florian030 Member

    Hallo Ralph,

    kannst Du dem User nicht einfach nen anderes Home-Dir verpassen? Meinetwegen /var/www/clients/clientx/weby/home? Und zwar unter Shell-User/Options.

    Ich hab das bis jetzt nicht gebraucht,könnte dafür aber passend sein.
     
  5. rkaerner

    rkaerner New Member

    Hallo Florian,

    die Idee ist wirklich nicht schlecht. Ich werde hier mal testen, welche Auswirkungen das hätte und dann entsprechend entscheiden, in wie weit das ohne jailkit dann realisierbar ist, denn jailkit stellt bei den Anforderungen meiner Bekannten leider so gar keine Alternative dar.

    Sie entwickelt halt direkt im web-Verzeichnis und schiebt, wenn überhaupt, Dateien per scp umeinander. Und so lange sie da ohne Probleme hin kommt, ist das eigentliche home ja durchaus vernachlässigbar.

    Ralph, sich gerade fragend, ob das private Verzeichnis nicht der ideale Ort wäre...
     

Diese Seite empfehlen