Ik ben bezig met een site-je voor m'n familie enzo (mensen op IRC hebben em vast wel een keer langs zien vliegen) met daarbij allerlei functionaliteiten.
Zo heb ik reeds:
[list]• $user.$domain.$tld subdomeintje;
• FTP login via FTP-protocol of via een HTTP->FTP-script naar de user's homedir;
• E-Mail m.b.v. MySQL voor de user-gegevens.
Nu wil ik daar nog een eigen MySQL-database per user aan toevoegen (niet zo moeilijk te realiseren) en een SSH (shell) login die chrooted is in de user's homedir.
Het gaat dus om de SSH-login. De chroot-jail werkt prima en heb ik werkend als volgt:
/bin/chrooted-shell
Deze wordt in /etc/passwd aangeroepen als laatste argument van een line i.p.v. /bin/bash
So far so good.
Maar omdat ik alles graag wil beheren via PHP en niet alleen accounts toevoegen en verwijderen (wat eventueel nog wel via system() met useradd en userdel zou kunnen), maar ook bijv simpel d.m.v. een vinkje in de Admin SSH-login aan en uit zetten.
Dus ik dacht: Mooi, dan gaan we hetzelfde trucje flikken als bij postfix etc en gaan we MySQL weer gebruiken
En daar komt mijn probleem: Ik moet hiervoor (denk ik tenminste) PAM gebruiken. Nu heb ik zelf al het een en ander over PAM gezocht en gelezen (http://www.kernel.org/pub...m/Linux-PAM-html/pam.html) en dat is me nog niet helemaal duidelijk. Maar dat is niet eens het grootste probleem. Er moet gebruik gemaakt worden van pam_mysql. En die luitjes hebben geen enkel manual voor hun module
(Check site: http://pam-mysql.sourceforge.net/)
Nu is mijn vraag: Heeft iemand hier al eens gebruik gemaakt van pam_mysql en kan mij diegene uitleggen hoe dat precies werkt? Ik weet wel dat je user en passwd en table etc etc. moet gebruiken, maar hoe moet de table zelf er precies uitzien etc?
Verder zijn alle tips welkom. Is het een goed idee om MySQL hiervoor te gebruiken? (niet open op internet, dus geen security-riscs lijkt me?)
Alvast bedankt voor jullie input
Zo heb ik reeds:
[list]• $user.$domain.$tld subdomeintje;
• FTP login via FTP-protocol of via een HTTP->FTP-script naar de user's homedir;
• E-Mail m.b.v. MySQL voor de user-gegevens.
Nu wil ik daar nog een eigen MySQL-database per user aan toevoegen (niet zo moeilijk te realiseren) en een SSH (shell) login die chrooted is in de user's homedir.
Het gaat dus om de SSH-login. De chroot-jail werkt prima en heb ik werkend als volgt:
/bin/chrooted-shell
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| #!/bin/bash
if [ "$1" = "-c" ]; then
i=0;
PARAMS="";
for param in $*; do
if [ $i -gt 0 ]; then
PARAMS="$PARAMS $param";
fi
let i++;
done;
sudo /usr/bin/chroot /home/users/$USER /bin/su - $USER -c "$PARAMS"
else
sudo /usr/bin/chroot /home/users/$USER /bin/su - $USER
fi; |
Deze wordt in /etc/passwd aangeroepen als laatste argument van een line i.p.v. /bin/bash
So far so good.
Maar omdat ik alles graag wil beheren via PHP en niet alleen accounts toevoegen en verwijderen (wat eventueel nog wel via system() met useradd en userdel zou kunnen), maar ook bijv simpel d.m.v. een vinkje in de Admin SSH-login aan en uit zetten.
Dus ik dacht: Mooi, dan gaan we hetzelfde trucje flikken als bij postfix etc en gaan we MySQL weer gebruiken
En daar komt mijn probleem: Ik moet hiervoor (denk ik tenminste) PAM gebruiken. Nu heb ik zelf al het een en ander over PAM gezocht en gelezen (http://www.kernel.org/pub...m/Linux-PAM-html/pam.html) en dat is me nog niet helemaal duidelijk. Maar dat is niet eens het grootste probleem. Er moet gebruik gemaakt worden van pam_mysql. En die luitjes hebben geen enkel manual voor hun module
Nu is mijn vraag: Heeft iemand hier al eens gebruik gemaakt van pam_mysql en kan mij diegene uitleggen hoe dat precies werkt? Ik weet wel dat je user en passwd en table etc etc. moet gebruiken, maar hoe moet de table zelf er precies uitzien etc?
Verder zijn alle tips welkom. Is het een goed idee om MySQL hiervoor te gebruiken? (niet open op internet, dus geen security-riscs lijkt me?)
Alvast bedankt voor jullie input
[ Voor 3% gewijzigd door Osiris op 04-12-2004 09:27 ]