# Shelluser Probleme



## rkaerner (22. März 2013)

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


----------



## florian030 (22. März 2013)

Du kannst in /var/www/clients/clientx/weby per default nichts anlegen. Stichwort immutable attribute

http://www.howtoforge.de/forum/inst...hnis-anlegen-als-root-permission-denied-6695/


----------



## rkaerner (22. März 2013)

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


----------



## florian030 (22. März 2013)

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.


----------



## rkaerner (22. März 2013)

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...


----------

