Bekijk Volledige Versie : ftp-upload met php-script.
Eduard Bekker
25/05/04, 15:25
Beste mensen!
Op dit moment gebruik ik een php-tool die voor buitenstaanders
eenvoudig is om een deel van hun website zelf bij te houden, te
vergelijken met een gastenboek, waarbij je via een formulier tekst
kunt toevoegen.
Een deel van dit script is:
$fp = fopen("body.txt", "w");
fputs($fp, $body_opslaan);
fclose($fp);
Nu is het nadeel, dat je betreffende bestanden op de server de
schrijfpermissie 'everyone' moet geven. Daardoor kunnen anderen - als
zij erachter komen - ook dit bestand wijzigen.
Wat me het eenvoudigst lijkt, is voordat bovenstaande regels worden
tegepast, de schrijfpermissie van 'owner' naar 'everyone' wordt
omgezet en na het wegschrijven weer van 'everyone' naar 'owner'.
Voor een eenvoudiger alternatief sta ik uiteraard open.
Nu heb ik gepuzzeld in tips in deze nieuwsgroep en in handleidingen,
maar er komen dan zoveel voor mij nog onduidelijke begrippen opduiken,
dat het me niet gelukt is het script zo aan te passen, dat je pas kunt
wegschrijven, nadat je met je ftp usernaam en wachtwoord hebt
gebruikt.
Kortom: wat zou er vóór en ná bovenstaande drie regels moeten komen te
staan, om dit script te laten werken met een bestand, waarbij de
persmissies op de server op 'owner' staan.
--
/\/\/\/\/\/\/\/\
..|
..| Eduard Bekker
..| http://www.harmonicahoek.nl
..|
\/\/\/\/\/\/\/\/
Daniel Tryba
25/05/04, 16:05
Eduard Bekker <e.bekker@layout.nl> wrote:
[knip]
> Nu is het nadeel, dat je betreffende bestanden op de server de
> schrijfpermissie 'everyone' moet geven. Daardoor kunnen anderen - als
> zij erachter komen - ook dit bestand wijzigen.
>
> Wat me het eenvoudigst lijkt, is voordat bovenstaande regels worden
> tegepast, de schrijfpermissie van 'owner' naar 'everyone' wordt
> omgezet en na het wegschrijven weer van 'everyone' naar 'owner'.
> Voor een eenvoudiger alternatief sta ik uiteraard open.
[knip]
Dit lijkt me volkomen zinloos. Immers iedereen kan vanuit een script de
permissies wijzigen.
Als je met meerdere gebruikers op een beetje zinnige manier wilt werken
op 1 machine zul je ervoor moeten zorgen dat de aanpas scripts onder het
uid van de gebruiker draaien en dat alleen deze gebruiker die files mag
wijzigen.
--
Daniel Tryba
Eduard Bekker
26/05/04, 00:55
Daniel Tryba wrote:
> Eduard Bekker <e.bekker@layout.nl> wrote:
> [knip]
>
>>Nu is het nadeel, dat je betreffende bestanden op de server de
>>schrijfpermissie 'everyone' moet geven. Daardoor kunnen anderen - als
>>zij erachter komen - ook dit bestand wijzigen.
>>
>>Wat me het eenvoudigst lijkt, is voordat bovenstaande regels worden
>>tegepast, de schrijfpermissie van 'owner' naar 'everyone' wordt
>>omgezet en na het wegschrijven weer van 'everyone' naar 'owner'.
>>Voor een eenvoudiger alternatief sta ik uiteraard open.
>
> [knip]
>
> Dit lijkt me volkomen zinloos. Immers iedereen kan vanuit een script de
Nee, dit script kan alleen geactiveerd worden via variabelen, die via
een formulier worden gegenereerd.
> Als je met meerdere gebruikers op een beetje zinnige manier wilt werken
> op 1 machine zul je ervoor moeten zorgen dat de aanpas scripts onder het
> uid
Uid?
Blijf ik een leek? Ik weet niet wat dat is.
> van de gebruiker draaien en dat alleen deze gebruiker die files mag
> wijzigen.
Is inderdaad de bedoeling.
--
/\/\/\/\/\/\/\/\/\
..|
..| Groetjes, Eduard
..|
\/\/\/\/\/\/\/\/\/
Daniel Tryba
26/05/04, 01:55
Eduard Bekker <e.bekker@layout.nl> wrote:
>> [knip]
>>
>> Dit lijkt me volkomen zinloos. Immers iedereen kan vanuit een script de
>
> Nee, dit script kan alleen geactiveerd worden via variabelen, die via
> een formulier worden gegenereerd.
Dit script wel, maar dat andere wat ik in mijn eigen directory heb staan
en onder precies de zelfde credentials draaid kan dat gewoon direct
aanpassen.
>> Als je met meerdere gebruikers op een beetje zinnige manier wilt werken
>> op 1 machine zul je ervoor moeten zorgen dat de aanpas scripts onder het
>> uid
>
> Uid?
> Blijf ik een leek? Ik weet niet wat dat is.
UserIDentity.
>> van de gebruiker draaien en dat alleen deze gebruiker die files mag
>> wijzigen.
>
> Is inderdaad de bedoeling.
Dat doe je dus niet in de scripts zelf regelen maar in je webserver, bv
suexec voor Apache.
--
Daniel Tryba
Eduard Bekker
26/05/04, 11:45
Daniel Tryba wrote:
> Eduard Bekker <e.bekker@layout.nl> wrote:
> Dit script wel, maar dat andere wat ik in mijn eigen directory heb staan
> en onder precies de zelfde credentials draaid kan dat gewoon direct
> aanpassen.
Inderdaad kan iemand die het wachtwoord uit de html-pagina (die
overigens slechts lokaal staat opgeslagen - en dus alleen voor degene te
zien is, die hem op zijn mapje heeft staan) haalt de site op.
Dit script is echter geschreven voor mensen waarvan ik weet dat ze daar
geen gebruik van zullen maken.
Wat is dus uiteindelijk gewoon wil is antwoord op mijn vraag:
Hoe kan ik het volgende doen:
- php-commando om de file-permissies van 'owner' naar 'everyone'
worden omgezet.
gevolgd door:
$fp = fopen("body.txt", "w");
fputs($fp, $body_opslaan);
fclose($fp);
gevolgd door
- php-commando om de file-permissies terug te zetten van 'everyone'
naar 'owner'.
--
/\/\/\/\/\/\/\/\/\
..|
..| Eduard
..|
\/\/\/\/\/\/\/\/\/
Tim Van Wassenhove
26/05/04, 14:05
In article <40b46558$0$835$a344fe98@news.wanadoo.nl>, Eduard Bekker wrote:
> Wat is dus uiteindelijk gewoon wil is antwoord op mijn vraag:
>
> Hoe kan ik het volgende doen:
> - php-commando om de file-permissies van 'owner' naar 'everyone'
> worden omgezet.
> gevolgd door:
> $fp = fopen("body.txt", "w");
> fputs($fp, $body_opslaan);
> fclose($fp);
> gevolgd door
> - php-commando om de file-permissies terug te zetten van 'everyone'
> naar 'owner'.
Dat kan je inderdaad omzeilen door de bestanden vanuit een php script te
uploaden via ftp. Hoe je dat precies doet, vind je in de handleiding
duidelijk terug. http://www.php.net/manual section over ftp functions.
--
Tim Van Wassenhove <http://home.mysth.be/~timvw/contact.php>
Daniel Tryba
26/05/04, 14:05
Eduard Bekker <e.bekker@layout.nl> wrote:
> Wat is dus uiteindelijk gewoon wil is antwoord op mijn vraag:
> Hoe kan ik het volgende doen:
> - php-commando om de file-permissies van 'owner' naar 'everyone'
> worden omgezet.
> gevolgd door:
> $fp = fopen("body.txt", "w");
> fputs($fp, $body_opslaan);
> fclose($fp);
> gevolgd door
> - php-commando om de file-permissies terug te zetten van 'everyone'
> naar 'owner'.
Aha, maar dit is niet de zelfde vraag als uit de OP, het heeft verder
verdomd weinig verband met het subject (FTP???)
Maar goed, de oplossing is te vinden in het filesystem gebeuren:
http://nl2.php.net/manual/en/ref.filesystem.php (das toch de logische
plek als je met files bezig bent!)
Om precies de 3de functie mist de functies op alfabetisch gesorteerd
zijn.
--
Daniel Tryba
Eduard Bekker
26/05/04, 17:05
Daniel Tryba wrote:
> Eduard Bekker <e.bekker@layout.nl> wrote:
>
>>Wat is dus uiteindelijk gewoon wil is antwoord op mijn vraag:
>
>
>>Hoe kan ik het volgende doen:
>> - php-commando om de file-permissies van 'owner' naar 'everyone'
>> worden omgezet.
>>gevolgd door:
>> $fp = fopen("body.txt", "w");
>> fputs($fp, $body_opslaan);
>> fclose($fp);
>>gevolgd door
>> - php-commando om de file-permissies terug te zetten van 'everyone'
>>naar 'owner'.
> Maar goed, de oplossing is te vinden in het filesystem gebeuren:
> http://nl2.php.net/manual/en/ref.filesystem.php (das toch de logische
> plek als je met files bezig bent!)
Goed, dat is duidelijk. a.d.h.v. deze tip ben ik tot de volgende regels
gekomen:
chmod("body.txt", 0646);
$fp = fopen("body.txt", "w");
fputs($fp, $body_opslaan);
fclose($fp);
chmod("body.txt", 0644);
Gevolg:
Warning: chmod failed: Operation not permitted in /[pad]/file.php on line 10
Warning: fopen("body.txt", "w") - Permission denied in /[pad]/file.php
on line 11
Warning: Supplied argument is not a valid File-Handle resource in
/[pad]/file.php on line 12
Warning: Supplied argument is not a valid File-Handle resource in
/[pad]/file.php on line 13
Warning: chmod failed: Operation not permitted in /[pad]/file.php on line 14
Te begrijpen, want volgens mij moet ik eerst via php inloggen met naam
en wachtwoord voor ftp-en. Het staat inderdaad allemaal in de manual,
maar helaas niet zo, dat ik het zomaar in dit script in de praktijk kan
brengen.
--
/\/\/\/\/\/\/\/\/\
..|
..| Groetjes, Eduard
..|
\/\/\/\/\/\/\/\/\/
Daniel Tryba
26/05/04, 17:55
Eduard Bekker <e.bekker@layout.nl> wrote:
> Warning: chmod failed: Operation not permitted in /[pad]/file.php on line 10
Dat staat in direct verband met het verhaal over uids van de gebruikers
en waaronder de webserver draait. Alleen de eigenaar kan normaal
gesproken de mode van een file veranderen.
> Te begrijpen, want volgens mij moet ik eerst via php inloggen met naam
> en wachtwoord voor ftp-en.
Dit begrijp ik niet, de kreet ftp komt alweer uit de lucht vallen. Mijn
vermoeden is dat je je verhaal niet eens voor de helft vertelt hebt.
> Het staat inderdaad allemaal in de manual, maar helaas niet zo, dat ik
> het zomaar in dit script in de praktijk kan brengen.
Vertel eens wat meer over 'dit script'.
--
Daniel Tryba
Eduard Bekker
27/05/04, 00:35
Daniel Tryba wrote:
> Eduard Bekker <e.bekker@layout.nl> wrote:
>>Het staat inderdaad allemaal in de manual, maar helaas niet zo, dat ik
>>het zomaar in dit script in de praktijk kan brengen.
>
>
> Vertel eens wat meer over 'dit script'.
Het gaat uiteindelijk om een formulier waarbij in een TEXTAREA de tekst
van de pagina staat (zonder HTML-tags). Die tekst is dus in dat
formulier te veranderen. Via SUBMIT moet die dus worden weggeschreven:
De kern blijft:
$fp = fopen("body.txt", "w");
fputs($fp, $body_opslaan);
fclose($fp);
Nu moet om dit te kunnen op dit moment - net als bij een gastenboek de
permissie op 'everyone' staan. Niet al te veilig, dus.
De server moet dus doorkrijgen dat hij met een iemand van doen heeft,
die die permissies mag wijzigen. Volgens mij kan dit alleen meer met een
commandregel, waarbij username en password voor ftp worden doorgegeven.
De 'owner' dus.
En dat lukt dus niet, ondanks dat ik talloze voorbeeld heb gezien en
opgevolgd.
Neem bijvoorbeeld:
<?php
$ftp_server = "www.domeinnaam.nl";
$ftp_user = "user";
$ftp_pass = "wachtwoord";
// set up a connection or die
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to
$ftp_server");
// try to login
if (@ftp_login($conn_id, $ftp_user, $ftp_pass))
{
echo "Connected as $ftp_user@$ftp_server\n";
}
else
{
echo "Couldn't connect as $ftp_user\n";
}
// close the connection
ftp_close($conn_id);
?>
Zelfs letterlijk gekopïeerd uit de manual komt er een foutmelding op de
laatste regel:
Fatal error: Call to undefined function: ftp_close() in
[pad]/[filenaam].php on line 21
Bij
ftp_close niet.
Het betreft php-versie 4.1.2.
--
---------------------------
Groetjes,
Eduard
http://www.websitez.nl
---------------------------
Tim Van Wassenhove
27/05/04, 05:25
In article <40b51a8c$0$149$1b2cd167@news.wanadoo.nl>, Eduard Bekker wrote:
> De kern blijft:
>
> $fp = fopen("body.txt", "w");
> fputs($fp, $body_opslaan);
> fclose($fp);
>
> Nu moet om dit te kunnen op dit moment - net als bij een gastenboek de
> permissie op 'everyone' staan. Niet al te veilig, dus.
Dat los je niet scriptmatig op. Zoals al aangehaald in deze draad,
contacteer je sysadmin.
--
Tim Van Wassenhove <http://home.mysth.be/~timvw/contact.php>
Jaap-Andre de Hoop
27/05/04, 07:55
In article <40b51a8c$0$149$1b2cd167@news.wanadoo.nl>, Eduard Bekker <e.bekker@layout.nl> wrote:
>Nu moet om dit te kunnen op dit moment - net als bij een gastenboek de
>permissie op 'everyone' staan. Niet al te veilig, dus.
>
>De server moet dus doorkrijgen dat hij met een iemand van doen heeft,
>die die permissies mag wijzigen. Volgens mij kan dit alleen meer met een
>commandregel, waarbij username en password voor ftp worden doorgegeven.
je kan natuurlijk ook de authenticatie in het script doen en op grond daarvan
bepalen in welke dir hij mag wegschrijven.
Jaap-Andre
Eduard Bekker
27/05/04, 14:15
Tim Van Wassenhove wrote:
> In article <40b51a8c$0$149$1b2cd167@news.wanadoo.nl>, Eduard Bekker wrote:
> Dat los je niet scriptmatig op. Zoals al aangehaald in deze draad,
> contacteer je sysadmin.
Dat zal ik inderdaad maar gaan doen, maar ik heb de indruk dat het niet
goed overkomt wat ik wil: als het niet mogelijk is wat ik wil, zou je
namelijk geen op php-scripting gebaseerd CMS kunnen draaien, en dat
geloof ik niet.
--
---------------------------
Groetjes,
Eduard
http://www.websitez.nl
---------------------------
Daniel Tryba
27/05/04, 15:55
Eduard Bekker <e.bekker@layout.nl> wrote:
> De kern blijft:
>
> $fp = fopen("body.txt", "w");
> fputs($fp, $body_opslaan);
> fclose($fp);
>
> Nu moet om dit te kunnen op dit moment - net als bij een gastenboek de
> permissie op 'everyone' staan. Niet al te veilig, dus.
Denk nu eens even goed na: als de webserver zelf permissies kan wijzigen
dan is dat absoluut niet veiliger, het kost alleen een extra functie
aanroep.
> De server moet dus doorkrijgen dat hij met een iemand van doen heeft,
> die die permissies mag wijzigen. Volgens mij kan dit alleen meer met een
> commandregel, waarbij username en password voor ftp worden doorgegeven.
> De 'owner' dus.
Dat soort authenticatie kan je gewoon in je script afhandelen, geen
reden om met permissies te gaan rotzooien. Mits die natuurlijk de enige
manier van het aanbrengen van wijzigingen is!
[knip]
Alweer die ftp. Ik snap nog steeds niet wat dit te maken heeft met je
chmod/ownership problemen (je wilt er immers alleen maar een user/passwd
combo mee authentificeren (toch? (het antwoord hierop is uitermate
cruciaal voor een potentiele oplossing))). Helaas snap je zelf het
probleem ook (nog) niet, de onderliggende oorzaak is je webserver (maar
dat had ik reeds opgemerkt in eerdere postings).
> ftp_close($conn_id);
>
> Zelfs letterlijk gekop?eerd uit de manual komt er een foutmelding op de
> laatste regel:
>
> Fatal error: Call to undefined function: ftp_close() in
> [pad]/[filenaam].php on line 21
>
> Bij
> ftp_close niet.
>
> Het betreft php-versie 4.1.2.
Lang leve de manual:
<q src='http://nl2.php.net/ftp_close'>
ftp_close
(PHP 4 >= 4.2.0, PHP 5)
ftp_close -- Closes an FTP connection
</q>
_Lees_ de rest van de pagina (inclusief usercomments om de correcte
functie te vinden voor je php versie).
--
Daniel Tryba
Michiel de Roo
27/05/04, 16:25
Eduard Bekker wrote:
> Beste mensen!
>
> Op dit moment gebruik ik een php-tool die voor buitenstaanders
> eenvoudig is om een deel van hun website zelf bij te houden, te
> vergelijken met een gastenboek, waarbij je via een formulier tekst
> kunt toevoegen.
>
> Een deel van dit script is:
>
> $fp = fopen("body.txt", "w");
> fputs($fp, $body_opslaan);
> fclose($fp);
>
> Nu is het nadeel, dat je betreffende bestanden op de server de
> schrijfpermissie 'everyone' moet geven. Daardoor kunnen anderen - als
> zij erachter komen - ook dit bestand wijzigen.
>
Weet je dat zeker ? Op een normaal ingerichte Linux webserver is dat niet
het geval. Als een andere user geen permissies heeft om in jouw home
directory te lezen (zoals gewoonlijk), dan kunnen de files die er in staan
best 'permissie everyone' hebben, maar dan kunnen ze die nog steeds niet
lezen. Ze kunnen de directory immers niet in.
Als je nog een tweede account op die server hebt kun je het eenvoudig
proberen.
Michiel.
Michiel de Roo
27/05/04, 16:25
Daniel Tryba wrote:
[knip]
>
> Alweer die ftp. Ik snap nog steeds niet wat dit te maken heeft met je
> chmod/ownership problemen
Als je de files per ftp upload i.p.v. ze door de webserver te laten
schrijven, dan hebben ze wel de goede ownership, namelijk die van de ftp user.
Michiel.
Michiel de Roo <yourlove@welovespam.nl>:
> Op een normaal ingerichte Linux webserver is dat niet het geval. Als een
> andere user geen permissies heeft om in jouw home directory te lezen
> (zoals gewoonlijk), dan kunnen de files die er in staan best 'permissie
> everyone' hebben, maar dan kunnen ze die nog steeds niet lezen. Ze
> kunnen de directory immers niet in.
$ ls -ld t
d--x--x--x 3 root admin 102 May 27 16:23 t
$ ls -al t/foo
-rw-r--r-- 1 robert staff 0 May 27 16:23 t/foo
Ondanks dat de directory geen leespermissies heeft, kan ik de file die erin
staat wel stat'en (en lezen). Het ligt er dus een beetje aan wat jij met
'jouw homedirectory te lezen' bedoelt :)
--
robert
Daniel Tryba
27/05/04, 16:55
Michiel de Roo <yourlove@welovespam.nl> wrote:
> [knip]
>>
>> Alweer die ftp. Ik snap nog steeds niet wat dit te maken heeft met je
>> chmod/ownership problemen
>
> Als je de files per ftp upload i.p.v. ze door de webserver te laten
> schrijven, dan hebben ze wel de goede ownership, namelijk die van de ftp user.
Flauw om dat te verklappen, alles wat tussen de haakjes stond was ervoor
om de OP eens goed te laten denken over wat hij nu eigenlijk wil :(
--
Daniel Tryba
Eduard Bekker
27/05/04, 18:05
Daniel Tryba wrote:
> Eduard Bekker <e.bekker@layout.nl> wrote:
> Alweer die ftp. Ik snap nog steeds niet wat dit te maken heeft met je
> chmod/ownership problemen (je wilt er immers alleen maar een user/passwd
> combo mee authentificeren (toch? (het antwoord hierop is uitermate
> cruciaal voor een potentiele oplossing))). Helaas snap je zelf het
> probleem ook (nog) niet, de onderliggende oorzaak is je webserver (maar
> dat had ik reeds opgemerkt in eerdere postings).
We gaan met frisse moed verder, want blijkbaar kan ik niet duidelijk
maken waar het om gaat. Ik vraag het nu maar op een andere manier.
Vertaald van http://nl2.php.net/manual/en/function.ftp-chmod.php
kom ik tot het volgende.
<?php
$file="body.txt";
$ftp_server = "www.domein.nl";
$ftp_user = "user";
$ftp_pass = "ww";
// set up a connection or die
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to
$ftp_server");
// try to login
if (@ftp_login($conn_id, $ftp_user, $ftp_pass))
{
echo "Connected as ".$ftp_user."@".$ftp_server."\n";
}
else
{
echo "Couldn't connect as ".$ftp_user."\n";
}
if (ftp_chmod($conn_id,0644, $file))
{
echo $file." cdmoded successfully to 644\n";
}
else
{
echo "could not chmod $file\n";
}
// close the connection
if (ftp_close)
{
echo "<BR>\nVerbinding weer gesloten";
}
?>
Als ik dit uit laat voeren, krijg ik:
--
Connected as user@www.domein.nl
Fatal error: Call to undefined function: ftp_chmod() in
/[pad]/ftptest.php on line
--
Waarom?
--
/\/\/\/\/\/\/\/\/\
..|
..| Groetjes, Eduard
..|
\/\/\/\/\/\/\/\/\/
Eduard Bekker <e.bekker@layout.nl>:
> Als ik dit uit laat voeren, krijg ik:
> --
> Connected as user@www.domein.nl
> Fatal error: Call to undefined function: ftp_chmod() in
> /[pad]/ftptest.php on line
> --
> Waarom?
Omdat jij PHP 4.1.2 gebruikt en ftp_chmod volgens de documentatie pas in
PHP 5 verschenen is?
--
robert
Tim Van Wassenhove
27/05/04, 18:15
In article <40b5f893$0$36861$e4fe514c@news.xs4all.nl>, Michiel de Roo wrote:
> Daniel Tryba wrote:
> [knip]
>>
>> Alweer die ftp. Ik snap nog steeds niet wat dit te maken heeft met je
>> chmod/ownership problemen
>
> Als je de files per ftp upload i.p.v. ze door de webserver te laten
> schrijven, dan hebben ze wel de goede ownership, namelijk die van de ftp user.
Maar als zo'n script kan ftp-en... waarom zou een evil user dan niet je
username en password uit dat script kunnen halen?
--
Tim Van Wassenhove <http://home.mysth.be/~timvw/contact.php>
Daniel Tryba
27/05/04, 18:15
Eduard Bekker <e.bekker@layout.nl> wrote:
> We gaan met frisse moed verder, want blijkbaar kan ik niet duidelijk
> maken waar het om gaat. Ik vraag het nu maar op een andere manier.
>
> Vertaald van http://nl2.php.net/manual/en/function.ftp-chmod.php
>
> kom ik tot het volgende.
[...]
> Fatal error: Call to undefined function: ftp_chmod() in
> /[pad]/ftptest.php on line
> --
> Waarom?
Zucht...
Omdat je niet leest? Wederom staat er in de usercontribs een mogelijke
oplossing (is natuurlijk weer afhankelijk van de ftpd).
--
Daniel Tryba
Eduard Bekker
27/05/04, 18:25
Tim Van Wassenhove wrote:
> In article <40b5f893$0$36861$e4fe514c@news.xs4all.nl>, Michiel de Roo wrote:
>
>>Daniel Tryba wrote:
>>[knip]
>>
>>>Alweer die ftp. Ik snap nog steeds niet wat dit te maken heeft met je
>>>chmod/ownership problemen
>>
>>Als je de files per ftp upload i.p.v. ze door de webserver te laten
>>schrijven, dan hebben ze wel de goede ownership, namelijk die van de ftp user.
>
>
> Maar als zo'n script kan ftp-en... waarom zou een evil user dan niet je
> username en password uit dat script kunnen halen?
Omdat het niet in de uiteindelijke versie komt te staan, maar via post
wordt opgehaald.
--
---------------------------
Groetjes,
Eduard
http://www.websitez.nl
---------------------------
Michiel de Roo
27/05/04, 19:05
robert wrote:
> Michiel de Roo <yourlove@welovespam.nl>:
> > Op een normaal ingerichte Linux webserver is dat niet het geval. Als een
> > andere user geen permissies heeft om in jouw home directory te lezen
> > (zoals gewoonlijk), dan kunnen de files die er in staan best 'permissie
> > everyone' hebben, maar dan kunnen ze die nog steeds niet lezen. Ze
> > kunnen de directory immers niet in.
>
> $ ls -ld t
> d--x--x--x 3 root admin 102 May 27 16:23 t
> $ ls -al t/foo
> -rw-r--r-- 1 robert staff 0 May 27 16:23 t/foo
>
> Ondanks dat de directory geen leespermissies heeft, kan ik de file die erin
> staat wel stat'en (en lezen). Het ligt er dus een beetje aan wat jij met
> 'jouw homedirectory te lezen' bedoelt :)
Ja, verkeerd uitgedrukt. Het gaat natuurlijk om het uitvoeren (x) en niet
om r of w. Het is beter om je homedirectory drwx--x--- te maken (0710), in
dat geval kan niemand er ooit in.
Eduard Bekker
27/05/04, 19:25
Daniel Tryba wrote:
> Eduard Bekker <e.bekker@layout.nl> wrote:
>>Fatal error: Call to undefined function: ftp_chmod() in
>>/[pad]/ftptest.php on line
>>--
>>Waarom?
>
>
> Zucht...
>
> Omdat je niet leest? Wederom staat er in de usercontribs een mogelijke
> oplossing (is natuurlijk weer afhankelijk van de ftpd).
ftpd Is me weer een onbekend begrip.
Het leek allemaal zo eenvoudig, maar het is allemaal blijkbaar veel
ingewikkelder dan ik dacht.
De tip in de usercontrib geeft:
--
could not chmod body.txt
--
Ik begin inderdaad van deze groep aan te nemen, dat het niet zomaar
mogelijk is om met php een file te wijzigen die als permissie 'owner'
heeft. Excuses dat ik zo eigenwijs was te denken dat dat zou moeten
kunnen (met PHP_versie_4.1.2.). Eigenlijk is dit de eerste keer dat een
probleem dat ik in deze groep aandraag, inderdaad niet blijkt op te lossen.
Willen mijn klanten werkelijk veilig hun site onderhouden, dan zullen
toch moeten leren ftp-en. (In Windows is dat nauwelijks meer als het
verslepen van het bestand van het ene mapje naar het andere, maar als je
het woord 'mapje' laat vallen klapt menig klant al bij voorbaat dicht).
Daarom was het handig geweest, als het ook mogelijk was geweest via een
formulier en een php-script.
Daar komen blijkbaar dingen bij kijken, die ik zelf niet in de hand heb.
Het is wel ontzettend jammer. Er zit weinig anders op dan af te wachten
tot versie 5 op de server staat, waarmee het waarschijnlijk wel mogelijk is.
Hoe dan ook: bedankt voor de moeite en excuses dat ik tevergeefs een
beroep op jullie tijd heb gedaan.
--
---------------------------
Groetjes,
Eduard
http://www.websitez.nl
---------------------------
Daniel Tryba
27/05/04, 19:25
Michiel de Roo <yourlove@welovespam.nl> wrote:
> Ja, verkeerd uitgedrukt. Het gaat natuurlijk om het uitvoeren (x) en niet
> om r of w. Het is beter om je homedirectory drwx--x--- te maken (0710), in
> dat geval kan niemand er ooit in.
Hoe komt de webserver er dan bij?
--
Daniel Tryba
Daniel Tryba
27/05/04, 19:45
Eduard Bekker <e.bekker@layout.nl> wrote:
> Ik begin inderdaad van deze groep aan te nemen, dat het niet zomaar
> mogelijk is om met php een file te wijzigen die als permissie 'owner'
> heeft. Excuses dat ik zo eigenwijs was te denken dat dat zou moeten
> kunnen (met PHP_versie_4.1.2.). Eigenlijk is dit de eerste keer dat een
> probleem dat ik in deze groep aandraag, inderdaad niet blijkt op te lossen.
De oplossing is reeds lang geleden aangedragen. Zorg ervoor dat de
webserver dingen draaid onder het id van de gebruiker. bv suexec voor
Apache: http://httpd.apache.org/docs/suexec.html
> Willen mijn klanten werkelijk veilig hun site onderhouden, dan zullen
> toch moeten leren ftp-en.
ftp is totaal onveilig, het is veiliger om gewoon je huidige php opzet
te houden dan te gaan prutsen met ftp (zowat elke ftpd heeft regelmatig
een securitylek en het protocol is niet encrypted). SSH (scp/sftp) is
een zinnig alternatief.
--
Daniel Tryba
Eduard Bekker
27/05/04, 23:55
Daniel Tryba wrote:
> Eduard Bekker <e.bekker@layout.nl> wrote:
>
>> Ik begin inderdaad van deze groep aan te nemen, dat het niet zomaar
>> mogelijk is om met php een file te wijzigen die als permissie
>> 'owner' heeft. Excuses dat ik zo eigenwijs was te denken dat dat
>> zou moeten kunnen (met PHP_versie_4.1.2.). Eigenlijk is dit de
>> eerste keer dat een probleem dat ik in deze groep aandraag,
>> inderdaad niet blijkt op te lossen.
>
>
> De oplossing is reeds lang geleden aangedragen. Zorg ervoor dat de
> webserver dingen draaid onder het id van de gebruiker. bv suexec voor
> Apache: http://httpd.apache.org/docs/suexec.html.
Helaas: ik ben geen echte IT-er en deze zaken gaan me te ver.
De systeemberen van de betreffende site heb ik echter hulp gevraagd.
Ongetwijfeld weten zij een oplossing voor wat ik wil.
> ftp is totaal onveilig, het is veiliger om gewoon je huidige php
> opzet te houden dan te gaan prutsen met ftp (zowat elke ftpd heeft
> regelmatig een securitylek en het protocol is niet encrypted). SSH
> (scp/sftp) is een zinnig alternatief.
'Gewoon' onderhoud doe ik met ftp.
Ik heb even gezocht en er bestaat inderdaad ook SSH-software voor Mac OS X.
Ik hou het in de gaten.
--
---------------------------
Groetjes,
Eduard
http://www.websitez.nl
---------------------------
Michiel de Roo
28/05/04, 23:05
Daniel Tryba wrote:
> Michiel de Roo <yourlove@welovespam.nl> wrote:
>
>>Ja, verkeerd uitgedrukt. Het gaat natuurlijk om het uitvoeren (x) en niet
>>om r of w. Het is beter om je homedirectory drwx--x--- te maken (0710), in
>>dat geval kan niemand er ooit in.
>
>
> Hoe komt de webserver er dan bij?
>
Die kan er wel gewoon bij natuurlijk. Ik weet niet precies hoe, wellicht
zit die in een groep met de user ofzo ? Ik doe het serverbeheer op de
server van het voorbeeld niet zelf. Op mijn eigen server heb ik geen extra
gebruikers, dus dan is het helemaal makkelijk ;-)
Michiel.
Daniel Tryba
29/05/04, 00:15
Michiel de Roo <yourlove@welovespam.nl> wrote:
>>>Ja, verkeerd uitgedrukt. Het gaat natuurlijk om het uitvoeren (x) en niet
>>>om r of w. Het is beter om je homedirectory drwx--x--- te maken (0710), in
>>>dat geval kan niemand er ooit in.
>>
>>
>> Hoe komt de webserver er dan bij?
>>
>
> Die kan er wel gewoon bij natuurlijk. Ik weet niet precies hoe, wellicht
> zit die in een groep met de user ofzo ? Ik doe het serverbeheer op de
> server van het voorbeeld niet zelf.
MAW iedereen kan er via de webserver bij.
--
Daniel Tryba
Michiel de Roo
29/05/04, 00:45
Daniel Tryba wrote:
> Michiel de Roo <yourlove@welovespam.nl> wrote:
>
>>>>Ja, verkeerd uitgedrukt. Het gaat natuurlijk om het uitvoeren (x) en niet
>>>>om r of w. Het is beter om je homedirectory drwx--x--- te maken (0710), in
>>>>dat geval kan niemand er ooit in.
>>>
>>>
>>>Hoe komt de webserver er dan bij?
>>>
>>
>>Die kan er wel gewoon bij natuurlijk. Ik weet niet precies hoe, wellicht
>>zit die in een groep met de user ofzo ? Ik doe het serverbeheer op de
>>server van het voorbeeld niet zelf.
>
>
> MAW iedereen kan er via de webserver bij.
>
Nee, dat kan ook niet. Nogmaals, ik weet niet hoe ze dit doen. Mogelijk
met suexec ?
Michiel.