Avatar billede jps2mt Nybegynder
31. juli 2002 - 20:49 Der er 31 kommentarer og
1 løsning

Større PHP-Linux projekt

Jeg er igang med et større projekt...

Sidder og opretter en FTP server med MySQL backend...

Nu kommer mit "lille" problem så...
Jeg skal have lavet en PHP frontend til den, hvor man kan oprette brugere...

Jeg skal bruge flg. funktioner:

Opret bruger
Sæt password
Sæt homedir
Sæt shell
chown home dir til rette bruger/gruppe
Finde uid/gid

Det er nok lidt af et projekt...

Hvis der er nogle der har løsninger på det, er jeg MEGET modtagelig...
Avatar billede BacceDK Juniormester
31. juli 2002 - 21:46 #1
har du noget selv eller snakker vi om fra bunden ??
hvilken ftp snakkes der om ?
Avatar billede jps2mt Nybegynder
31. juli 2002 - 23:51 #2
Alt med FTP og backend er oppe og køre...Mangler bare frontend'en...

Har en ide om at steppe /etc/passwd filen for at finde uid/gid

Resten har jeg bare ikke rigtigt nogen ide om...Andet end at lave en exec på adduser kommandoen samt på chown kommandoen...Det med at sætte password, kan jeg ikke rigtigt gennemskue, da jeg ikke kan se hvordan man skulle kunne angive passwordet begge gangene (for ikke at sige bare den ene gang)

Homedir og shell må vel også kunne klares ved at steppe /etc/passwd filen...

Men igen...Der må da findes en lettere måde end at skulle steppe den fil hver gang...Den kunne jo gå hen og blive lang med tiden...
Avatar billede razor Nybegynder
01. august 2002 - 00:38 #3
Jeg har flyttet dit spørgsmål til den rigtige kategori, da det var offtopic i den oprindelige.
Avatar billede jps2mt Nybegynder
01. august 2002 - 22:26 #4
Kunne ikke se den var OT...Det var jo PHP...

Det er jo bare et PHP script der skal laves...Eller rettere...Jeg skal bare bruge et hint til hvordan jeg skal sætte password...

Kan SAGTENS selv lave det...
Avatar billede BacceDK Juniormester
01. august 2002 - 23:13 #5
ALtså det med Uid og Gid kan du sagtens styre fra mysql.
giv dem et nummer højrere for hver bruger du opretter og så er den klaret
det med oprettelse af mappe til homedir der opretter du bare mappen normalt, dog skal du huske at scriptet der laver en chown sakl ejes af root før du kan dette.
Avatar billede jps2mt Nybegynder
02. august 2002 - 09:48 #6
Problemet er jo bare at hvis man så manuelt opretter en bruger på box'en, så har man jo det problem at den næste FTP bruger man opretter ikke får det rigtige UID/GID...Så man skal vel tjekke op mod passwd??
Avatar billede BacceDK Juniormester
02. august 2002 - 10:16 #7
nej nej
i det at du opretter dine ftp brugere i en Mysql databse så vil ftp programmet sætte rettighedder på alle deres filer til det som står skrevet i databasen.
Derfor behøver du slet ikke oprette brugeren i din box men kun i Mysql, det gør også at brugeren ikke får mulighed for at logge sig ind på din server via ssh og dermed mere sikkerhed...!
Avatar billede jps2mt Nybegynder
02. august 2002 - 10:56 #8
Det er derfor jeg skal have sat den til en nologin shell...Så kan brugeren jo ikke logge ind...

Problemet er nemlig at jeg har forsøgt at lade FTP'en bestemme, men det duer ikke...Brugeren kan godt se hvad der ligger i diret, men kan ikke oprette nye kataloger eller filer deri...
Avatar billede BacceDK Juniormester
02. august 2002 - 12:46 #9
hmm hvilken ftp bruger du da ??
Avatar billede jps2mt Nybegynder
02. august 2002 - 13:36 #10
ProFTPD
Avatar billede BacceDK Juniormester
02. august 2002 - 13:40 #11
kan vi se din proftpd.conf ??
for jeg bruger selv proftpd og har ingen probs, men at køre UID og GID via den
Avatar billede jps2mt Nybegynder
02. august 2002 - 13:48 #12
# This is a basic ProFTPD configuration file (rename it to
# 'proftpd.conf' for actual use.  It establishes a single server
# and a single anonymous login.  It assumes that you have a user/group
# "nobody" and "ftp" for normal operation and anon.

ServerName                      "twister.tyfus.dk"
ServerType                      standalone
DefaultServer                  on
DefaultRoot                    ~
LsDefaultOptions "-a"
UseReverseDNS                  off
IdentLookups                    off
ShowSymlinks                    on
AllowRetrieveRestart            on
AllowStoreRestart              on
RequireValidShell              no
AllowForeignAddress            on
AllowOverwrite                  on


# 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                          022

# 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

# Set the user and group that the server normally runs at.
User                            nobody
Group                          nobody

sqlconnectinfo                  proftp@localhost:3306 proftp proftp
SQLUserInfo                    users handle password uid gid homedir NULL
SQLAuthenticate                on
sqlauthtypes                    plaintext

# Normally, we want files to be overwriteable.
<Directory /*>
  AllowOverwrite                on
</Directory>

# A basic anonymous configuration, no upload directories.
#<Anonymous ~ftp>
#  User                        ftp
#  Group                                ftp
#  # We want clients to be able to login with "anonymous" as well as "ftp"
#  UserAlias                    anonymous ftp
#
#  # Limit the maximum number of anonymous logins
#  MaxClients                  10
#
#  # We want 'welcome.msg' displayed at login, and '.message' displayed
#  # in each newly chdired directory.
#  DisplayLogin                welcome.msg
#  DisplayFirstChdir            .message
#
#  # Limit WRITE everywhere in the anonymous chroot
#  <Limit WRITE>
#    DenyAll
#  </Limit>
#
#</Anonymous>
Avatar billede BacceDK Juniormester
02. august 2002 - 13:55 #13
prøv med noget i stil af dette

sqlconnectinfo                  proftp@localhost:3306 proftp proftp
SQLAuthTypes                  backend plaintext
SQLAuthenticate            users
SQLUserInfo                    ftp_users handle password uid gid homedir NULL
#SQLDefaultHomedir              /tmp
RequireValidShell              off
#SQLUsernameField                handle
SQLMinID                        80
SQLDefaultUID                  80
SQLDefaultGID                  80

RequireValidShell              off


Den har jeg ingen problemer med
Avatar billede jps2mt Nybegynder
02. august 2002 - 14:33 #14
Nu vi lige er ved det med ProFTPD...

Hvordan laver man en restart på den?? Kan ikke få den til at restarte, uden at man rebooter maskinen...Hvis jeg laver en killall på den, så kører den stadig (påstår den)
Avatar billede BacceDK Juniormester
02. august 2002 - 14:39 #15
hmm jeg laver bare en killall proftpd og så er den stoppet her
Avatar billede jps2mt Nybegynder
02. august 2002 - 15:09 #16
Hmmm...Det virker ikke med den setup...

Oprettede et dir med mkdir /www/test.test.test
Oprettede en bruger med brugernavn test pass test og homedir /www/test.test.test

Men den bruger kan IKKE få lov til at oprette et dir eller andet i sit homedir...
Avatar billede jps2mt Nybegynder
02. august 2002 - 15:10 #17
Diret er btw. oprettet som root...Hvad skal jeg chown'e det til??
Avatar billede jps2mt Nybegynder
02. august 2002 - 15:11 #18
Har prøvet at chown'e det til ftp.ftp som den test bruger skulle køre som...

Og det virker stadig ikke...

For at jeg kan få det til at virke, skal jeg oprette en bruger på box'en, og så er det jo at jeg vil give den bruger en nologin shell, så den ikke kan logge ind...
Avatar billede BacceDK Juniormester
02. august 2002 - 15:19 #19
hmm prøv at chown 888:888 dirnavn
og i din Mysql under netop denne bruger skifter du uid og gid ud med 888 i dem begge så skulle den være der :-))
Avatar billede BacceDK Juniormester
02. august 2002 - 15:20 #20
det er vigtigt at u&gid fra ftp databasen passer med de oprindelige fra selve mappen
og chmod mappen 775
Avatar billede BacceDK Juniormester
02. august 2002 - 15:21 #21
jeg er selv igang med et projekt der nok ligner dit en del, såå har været alt dette igennem :-)
hvad skal det egentlig bruges til hvis jeg må spørge ??
Avatar billede jps2mt Nybegynder
02. august 2002 - 15:59 #22
Det er en af mine kammerater der vil til at hoste nogle domæner for nogle han kender...Men han synes det var for besværligt på den gammeldags facon, med brugere, så derfor ville han have det med MySQL backend, og så lave det via den...
Avatar billede jps2mt Nybegynder
02. august 2002 - 16:02 #23
Okay...Fedt nok...Det virker...

Så er det vel bare at scriptet der opretter en ny bruger tjekker med MySQL hvad UID/GID den seneste bruger havde og lægger 1 til...

Er der et maks på hvad man kan bruge...Må vel hellere vælge nogle som der ikke er så store chancer for at de bliver brugt på normal vis med oprettelse...
Avatar billede BacceDK Juniormester
02. august 2002 - 16:09 #24
ja du tager bare tallet fra mysql og +'er det med 1 så virker det så de ikke har samme uid og gid
ved nu ikke om der er et max, jeg har sat mit til at starte fra 600 og så bare gå derop af
Avatar billede BacceDK Juniormester
02. august 2002 - 16:10 #25
husk nu at det script der laver chown på mapperne skal have root rettighedder
Avatar billede jps2mt Nybegynder
02. august 2002 - 17:22 #26
Hvilken kommando bruger du for at chown'e med PHP??

Jeg har forsøgt både system, exec og shell_exec, og ingen af dem vil reagere...
Avatar billede BacceDK Juniormester
02. august 2002 - 19:48 #27
$shellstr="chown 555:555 /sti/til/$mappenavn";
shell_exec($shellstr);
Avatar billede dank Nybegynder
06. august 2002 - 12:16 #28
Hvorfor lige 555:555
Avatar billede BacceDK Juniormester
06. august 2002 - 12:34 #29
hvorfor lige 555 ?? hmm ikke noget bestemt, det var ren copy fra icq message.
selv bruger jeg ikke shell_exec men i stedet chown i php funktionen
jeg fatter ikke rigtig det der shell og når nu php har noget til det og mine scripts er skrevet i php så går det jo nok
:-))
Avatar billede jps2mt Nybegynder
06. august 2002 - 17:12 #30
Jeg kan ikke få den til at bruge chown funktionen...(Et eller andet med secure system eller sådan noget)
Avatar billede dank Nybegynder
06. august 2002 - 17:15 #31
det er sikkert fordi du har

Open_basedir + og/eller safe_mode slået til i din php.ini
Avatar billede BacceDK Juniormester
06. august 2002 - 23:32 #32
ved ikke om man kan bruge chown med basedir meen med safe_mode kan man godt
det eneste problem der er med chown er at man kan ikke køre det via sin apache, da det kræver at det er root der kører det og apache har ikke root rettighedder
man kan sel.f sætte den op med root adgang meen der er ultimo usikkert :-((
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

Seneste spørgsmål Seneste aktivitet
I dag 10:21 Ny printer, men hvilken Af mort1 i Printere
I går 19:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging