Give a program access to C:\xxx\its-own-file.c

  • Thread starter Thread starter RealCat
  • Start date Start date
R

RealCat

Hello.
Actually I'm using Windows 7, but I guess it's all most the same in
Windows Vista and there's no newsgroup for 7's security yet. The
problem is that I have an old-school program that creates its
directory at a hard-corded directory in C's root (C:\xxx). Now, I
don't want to run it with administrative privileges, I changed the
directory's security permissions to (everyone - full control) and make
them inherited to all its sub-directories. The program reads & writes
fine with existing files. But the program creates a c file inside its
directory and tries to let a C compiler on a network drive compile it.
That’s when the problem comes in. It creates the c file all right, but
the c compiler cannot read it (saying “permission denied”).

If I turn UAC off, I don’t get errors, but I don’t want to turn it
off. I’ve tried to give Full-Control to “Everyone”, “Creator Owner”
and “my own account”, but the problem persisted. How can I change a
specific folder’s (C:\xxx) permission settings so that no matter what
program or account do whatever they want in that directory they can do
it?
 
RealCat said:
Hello.
Actually I'm using Windows 7, but I guess it's all most the same in
Windows Vista and there's no newsgroup for 7's security yet. The
problem is that I have an old-school program that creates its
directory at a hard-corded directory in C's root (C:\xxx). Now, I
don't want to run it with administrative privileges, I changed the
directory's security permissions to (everyone - full control) and make
them inherited to all its sub-directories. The program reads & writes
fine with existing files. But the program creates a c file inside its
directory and tries to let a C compiler on a network drive compile it.
That’s when the problem comes in. It creates the c file all right, but
the c compiler cannot read it (saying “permission denied”).

If I turn UAC off, I don’t get errors, but I don’t want to turn it
off. I’ve tried to give Full-Control to “Everyone”, “Creator Owner”
and “my own account”, but the problem persisted. How can I change a
specific folder’s (C:\xxx) permission settings so that no matter what
program or account do whatever they want in that directory they can do
it?

If you are the programmer, you need to make your changes and not hard-code
to the root of C:. As you well know, that is protected in both Vista and
Windows 7.

If you want to pursue this, post in the appropriate Win7's forum here:

http://social.technet.microsoft.com/Forums/en/category/w7itpro/

AFAIK (and much to my chagrin), MS will not be creating NNTP newsgroups for
Win7.

Malke
 
This is a workaround technique we use for Vista quite successfully and I
imagine Win 7 would be the same. Are you sure its the c file that is giving
the problem? If the c compiler is also legacy could it be attempting to
create intermediate files in the 'current' path or some other inaccessible
place? Does your code generator have any options for setting paths for the
compilation? Some compilers may use environment variables to set paths.

Cheers
Doug Forster
 
This is a workaround technique we use for Vista quite successfully and I
imagine Win 7 would be the same. Are you sure its the c file that is giving
the problem? If the c compiler is also legacy could it be attempting to
create intermediate files in the 'current' path or some other inaccessible
place? Does your code generator have any options for setting paths for the
compilation? Some compilers may use environment variables to set paths.

Cheers
Doug Forster


Thanks. Actually the program itself was some complicated groups of
scripts on Cygwin. The situation is a little bit complicated I created
and edit a c file which is in D drive (in a Library) and I created a
symbolic link to that in the program's data folder. (I used Link Shell
Extension : http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html)
Then the program copies that file into its working folder (C:\xxx)
then tries to compile it. I deleted the symbolic link then used
traditional copy of that file, then the permission problem didn't
occur.

That is, there were two solutions 1) turning off UAC, 2)Use
traditional copy instead of symbolic link. But I still hope I could
use both UAC and symbolic link, because symbolic link is convenient
for I don't have to keep sync'ing and the two copies.
 
Well we learn something every day. Never heard of symbolic links before but
they look interesting. I see the author of the Link Shell Extension had some
problems with UAC - maybe you should write to him and see if he can shed any
light on the matter.

Cheers
Doug Forster
 
Back
Top