www.webdeveloper.com
Results 1 to 2 of 2

Thread: Access a password protected fileshare?

  1. #1
    Join Date
    Jun 2004
    Posts
    220

    Access a password protected fileshare?

    Hi

    I want to connect using PHP to a fileshare (windows) that is password protected to copy some files. My script is using the opendir() function, and is looping through all subdirectories to find files it should copy (new/modified).
    How do I specify which user my script will connect to the fileshare with?

    Thanks
    Lubox

  2. #2
    Join Date
    Apr 2006
    Posts
    26
    I found the comment at this URL that may possibly explain it:
    http://bugs.php.net/bug.php?id=25805&edit=1
    Hi there !

    Had the same problem... but solved it
    in fact it IS permission related...
    (like sniper@php.net said)

    my conf:
    WEBsrvr nt5 + Apache/1.3.24 (Win32) PHP/4.3.4RC3-dev
    SMBsrvr nt5

    the deal:
    WEBsrvr access a share on SMBsrvr with opendir()

    the problem:
    $d = opendir('\\SMBsrvr\whatever');
    Warning: opendir(\\SMBsrvr\whatever): failed to open dir: Invalid
    argument in C:\Inetpub\www\script.php on line x
    --`this is not a usefull warning !`

    $fp = fopen('\\SMBsrvr\whatever\file.ext','rb');
    Warning: fopen(\\SMBsrvr\whatever\file.ext): failed to open stream:
    Permission denied in C:\Inetpub\www\script.php on line y
    --`hmm, hmm, more interresting...`

    At this point had to investigate a bit more:
    Apparently apache + php know that \\SMBsrvr\whatever exists and that it
    is a valid directory ressource...

    Did some packet log on SMBsrvr:
    WEBsrvr sends a SMB `Tree Connect AndX Request` using nullSession
    SMBsrvr replies by an ACCESS_DENIED

    gotcha !

    SMBsrvr doesn't allow nullSession...
    but why WEBsrvr tries to connect using nullSession ?
    because Apache is running as LocalSystem

    From MSDN:
    `Windows NT - LocalSystem:
    The service has limited access to network resources, such as shares and
    pipes, because it has no credentials and must connect using a null
    session. The following registry key contains the NullSessionPipes and
    NullSessionShares values, which are used to specify the pipes and shares
    to which null sessions may connect:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parame
    ters
    Alternatively, you could add the REG_DWORD value RestrictNullSessAccess
    to the key and set it to 0 to allow all null sessions to access all
    pipes and shares created on that machine.`

    Enough blabla:
    Either you allow the host of share to accept nullSessions
    or you create an account with enough privileges on the apache host and
    when in mmc/Services/Apache/Connexion "Open a session as" - use the
    newly created account...

    All of this is true for Apache, but it should be 'approximatively' the
    same concept for IIS...

    a few references for this 'bug' (that is not)
    http://bugs.php.net/bug.php?id=24795
    http://bugs.php.net/bug.php?id=22153
    http://bugs.php.net/bug.php?id=20813
    http://bugs.php.net/bug.php?id=13058
    http://bugs.php.net/bug.php?id=12524

    attn to: iliaa@php.net; sniper@php.net
    there are a lot of bug reports for this local config. problem
    maybe an addendum in the documentation could be usefull...

    sorry for my bad english...
    /hth
    /bye

    dr_no

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles