[FBSD] Proftpd: Struktur över användarna :/

Permalänk
Medlem

[FBSD] Proftpd: Struktur över användarna :/

Jag har satt upp en MySQL-databas med användare.
Varje användare har login/pass samt uid och gid och homedir.

Proftpd kör under ftp:ftp

Jag har en mapp där jag vill att de flesta ska börja.
/ftp (ftp:ftp 777 för tillfället)

Nu till min fråga.. Hur ska jag sätta upp det om jag vill att folk ska se vissa saker och ej andra?
Ska jag sätta chown till gid för usern då? Så jag har olika groups?
Sen vill jag även att vissa ska kunna ladda upp, medan andra inte kan.

Slutnot: Klockan är mycket, säg till om jag är luddig

Visa signatur

Swec @ 2001 / Chalmerist - Javisst!
'Den som har flest prylar när han dör vinner!'

Permalänk
Medlem

Hm. Det där kan bli krångligt.
Kan du inte ha varsin "hemmapp" till de som har tillåtelse till att ladda upp?
Dessa ska då vara läsbara för alla användare.

Eller tänker jag helt fel nu?

EDIT: För att förenkla mitt tänkande

x /ftp | |-- en massa bröte (alla får läsa) `--x rudolfs hemmapp (här har rudolf läs OCH skrivrättighet) |- en massa bröte som rudolf laddat upp (alla här läsrättighet)

Hm.. Den där gjorde det ju iofs inte mycket klarare. Men jag fick iaf visa upp mina finfina rit-kunskaper.

Visa signatur

+++++++[>++++++++++>+++++++++++++++<<-]>-.---------[>>++<<-]>>----.<-.---.>++++.

Permalänk
Medlem


Du är ju uppe ännu senare än jag

Hmm, ah jo..
Men det är iaf en mapp jag vill att 2 pers ska kunna ladda hem ifrån.
Men jag vill bara att en ska kunna ladda upp.

Edit: När jag laddar upp en fil blir det uid som ägare, så jag ser vem det är. Men group blir ftp, vilket server kör under, såjag är lite konfunderad.

Visa signatur

Swec @ 2001 / Chalmerist - Javisst!
'Den som har flest prylar när han dör vinner!'

Permalänk
Medlem

Gör som Ethex sade, skapa en FTP root med flera hemkataloger i.
Skriv sedan DefaultRoot /usr/home/FTProot, så är det alla användares root.

Visa signatur

MVH Adam
Kulturstrategisk aggregator

Permalänk
Medlem

hmm, bra.. men homedir i databasen bestämmer vilken mapp man börjar i.
Så jag har massa i FTProot. I den har jag de länkar jag vill att alla ska ta del av?
Hur bestämmer jag olika rättigheter för olika grupper då?

Visa signatur

Swec @ 2001 / Chalmerist - Javisst!
'Den som har flest prylar när han dör vinner!'

Permalänk
Medlem

Det enda du egentligen kan bestämma är ju läs, skriv och körrättigheter i mapparna.
Men kör ftp som ftp:ftp, sedan kan du skapa en grupp som alla ftp-användare är medlem i, typ uftp. Och sedan skapar du något liknande detta:

x /ftp (chmoddad 755, ägare ftp) |- /ftp/loffes-hemmapp (chmoddad 755, fast ägare loffe) |- /ftp/rudolfs-hemmapp (chmoddad 755, fast ägare rudolf)

Det är den enda lösningen jag kan se just nu.

Visa signatur

+++++++[>++++++++++>+++++++++++++++<<-]>-.---------[>>++<<-]>>----.<-.---.>++++.

Permalänk
Hedersmedlem

drwxrwxr-t root:ftpupload upload/
medlemmar i ftpupload kan skriva i mappen, övriga kan bara läsa.
t-flaggan gör att användare som kan skriva till mappen inte kan skriva över varandras filer.
Vill du göra det enkelt för dig kan du sedan sätta dig själv som delägare till allt som laddas upp i mappen mha ACL, men det är ett helt kapitel i sig.

ang din edit: vad är initial group satt till för de här användarna? skall det inte vara ftp?

Vill du begränsa vad som är synligt så är HideNoAccess & IgnoreHidden två bra direktiv. med de påslagna kommer en katalog som tex:
drwxr-x--- root:ftpr0n fresha_bejbz/
att vara helt osynlig för alla som inte har medlemskap i gruppen ftpr0n.

Visa signatur

Det kan aldrig bli fel med mekanisk destruktion

Permalänk
Medlem

de har grupp gid 1100. Så jag borde väl kunna skriva in grupp-namn eller?
Det borde ju göra att jag kan sätta grupp-behörigheter.

Edit: Ok, jag har förstått att jag måste skapa grupperna på riktigt. Måste jag skapa användarna också?

Visa signatur

Swec @ 2001 / Chalmerist - Javisst!
'Den som har flest prylar när han dör vinner!'

Permalänk
Hedersmedlem
Citat:

Ursprungligen inskrivet av Zapher
de har grupp gid 1100. Så jag borde väl kunna skriva in grupp-namn eller?
Det borde ju göra att jag kan sätta grupp-behörigheter.

Hur menar du då skriva in? använd kommandot pw för att skapa grupper och ändra vilka medlemmar som är med i vilka grupper. initial group är den som är "default" och den som blir ägare till alla nya filer som skapas av användaren, sen kan en användare vara med i hur många andra grupper som helst. Så låt dem forsätta ha ftp som initial group och lägg till medlemskap vartefter det behövs.

Visa signatur

Det kan aldrig bli fel med mekanisk destruktion

Permalänk
Hedersmedlem
Citat:

Ursprungligen inskrivet av Zapher
Edit: Ok, jag har förstått att jag måste skapa grupperna på riktigt. Måste jag skapa användarna också?

..du sa att dina användare hade uid, det tolkade jag som att de hade varsitt uid.. eller är alla mappade till en och samma systemanvändare?

Visa signatur

Det kan aldrig bli fel med mekanisk destruktion

Permalänk
Medlem

Jag har alltså bara skapat dem i mysql-databasen.

Visa signatur

Swec @ 2001 / Chalmerist - Javisst!
'Den som har flest prylar när han dör vinner!'

Permalänk
Hedersmedlem

Hmm.. tja min metod kräver att varje användare har ett unikt system-uid, så antingen får du se till att de har det eller köra med nån hemkatalog-lösning som de föreslog ovan, och fixa rättigheterna i proftpd.conf i stället.

Visa signatur

Det kan aldrig bli fel med mekanisk destruktion

Permalänk
Medlem

Behöver hjälp att felsöka nu..

Jag har:

Grupp:
ftp-admin:*:1100:
Användare:
test:*:1003:1100:Ftp-tester:/ftp:/sbin/nologin

Samt i tablet users:

+--------+------+------+--------+-------+---------+-------+ | userid | uid | gid | passwd | shell | homedir | count | +--------+------+------+--------+-------+---------+-------+ | test | 1103 | 1100 | test | NULL | /ftp | 0 | +--------+------+------+--------+-------+---------+-------+

Samt i tablet groups:

+-----------+------+---------+----------+ | groupname | gid | members | groupdir | +-----------+------+---------+----------+ | ftp-admin | 1100 | | /ftp | +-----------+------+---------+----------+

------------------------------------------------

Min proftpd.conf ser ut såhär:

ServerName "XXXXXXXXXXXX.no-ip.com" ServerType standalone DefaultServer on DefaultRoot ~ RequireValidShell off AuthPAM on AuthPAMConfig ftp AllowForeignAddress on #Bind <ip> MaxClientsPerHost 2 TransferRate RETR 250000 # Port 21 is the standard FTP port. Port 21 # Umask 022 is a good standard umask to prevent new dirs and files # from being group and world writable. Umask 002 # To prevent DoS attacks, set the maximum number of child processes # to 30. If you need to allow more than 30 concurrent connections # at once, simply increase this value. Note that this ONLY works # in standalone mode, in inetd mode you should use an inetd server # that allows you to limit maximum number of processes per service # (such as xinetd). MaxInstances 30 #Mysql SQLAuthTypes Plaintext SQLAuthenticate users* SQLConnectInfo ftp@localhost ftp ftp SQLDefaultUID 65534 SQLDefaultGID 408 SQLMinUserUID 3000 SQLMinUserGID 21 SQLUserInfo users username password uid gid homedir shell SQLLog PASS login SQLNamedQuery login UPDATE "last_login = NOW() WHERE username = '%u'" users # Set the user and group under which the server will run. User ftp Group ftp # Normally, we want files to be overwriteable. <Directory /> AllowOverwrite on AllowStoreRestart on TransferRate RETR 250000 </Directory> <Directory ~> AllowOverwrite on AllowStoreRestart on TransferRate RETR 250000 </Directory>

Såhär går loggen när jag försöker logga in:
Connecting to 192.168.0.34 #10
Connected to 192.168.0.34 -> IP=192.168.0.34 PORT=21
220 ProFTPD 1.2.10 Server (zapher.no-ip.com) [192.168.0.34]
USER test
331 Password required for test.
PASS (hidden)
Connection failed (Connection lost)

Visa signatur

Swec @ 2001 / Chalmerist - Javisst!
'Den som har flest prylar när han dör vinner!'