How to set file permissions (cross platform) in C++?

前端 未结 8 992
孤城傲影
孤城傲影 2020-11-27 05:08

I am using C++ ofstream to write out a file. I want to set the permissions to be only accessible by the user: 700. In unix; I suppose I can just issue a s

8条回答
  •  孤街浪徒
    2020-11-27 05:42

    I just found a couple of ways to do chmod 700 easily from the Windows command line. I'm going to post another question asking for help coming up with an equivalent win32 security descriptor structure to use (if I can't figure it out in the next few hours).

    Windows 2000 & XP (messy- it always seems to prompt):

    echo Y|cacls *onlyme.txt* /g %username%:F
    

    Windows 2003+:

    icacls *onlyme.txt* /inheritance:r /grant %username%:r
    

    EDIT:

    If you had the ability to use the ATL, this article covers it (I don't have Visual Studio available): http://www.codeproject.com/KB/winsdk/accessctrl2.aspx

    Actually, it says the sample code includes non-ATL sample code as well- it should have something that works for you (and me!)

    The important thing to remember is to get r/w/x for owner only on win32, you just have to wipe all of the security descriptors from the file and add one for yourself with full control.

提交回复
热议问题