home *** CD-ROM | disk | FTP | other *** search
/ Borland Programmer's Resource / Borland_Programmers_Resource_CD_1995.iso / utils / sossntr3 / src / testauth.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-05-19  |  1.5 KB  |  75 lines

  1. /* NTFS authentication */
  2.  
  3. #include <stdio.h>
  4.  
  5. #include "ntfsauth.h"
  6.  
  7. int main(int argc, char** argv)
  8. {
  9.     LPSTR           FileName;
  10.     struct nfsfattr attr;
  11.     long            newuid = 0; 
  12.     long            newgid = 0;
  13.     long            mask = 0;
  14.  
  15.     if( argc > 1)
  16.         FileName = argv[1];
  17.     else
  18.     {
  19.         printf( "ntfsauth.exe <filename> <newuid> <newgid> <newrights>\n");
  20.         printf( "             <newuid>  (decimal) != 0, unchanged\n");
  21.         printf( "             <newgid>  (decimal) != 0, unchanged\n");
  22.         printf( "             <newrights>  (hex)  != 0, unchanged\n");
  23.         return 0;
  24.     }
  25.     if( argc > 2)
  26.     {
  27.         newuid = atol( argv[2]);
  28.     }
  29.     if( argc > 3)
  30.     {
  31.         newgid = atol( argv[3]);
  32.     }
  33.     if( argc > 4)
  34.     {
  35.         sscanf( argv[4], "%lx", &mask);
  36.         printf( "Mask %lx\n", mask);
  37.     }
  38.  
  39.     NtfsInitDrive( FileName);
  40.  
  41.     printf( "Get Owner, Group and permissions on:\n");
  42.     printf( "   %s\n", FileName);
  43.  
  44.     attr.na_uid = newuid;
  45.     attr.na_gid = newgid;
  46.     attr.na_mode= mask;
  47.  
  48.     NtfsGetUnixAttrib( FileName, &attr);
  49.     printf( "    Uid %ld, Gid %ld, Mode %lx\n", 
  50.             attr.na_uid, attr.na_gid, attr.na_mode);
  51.  
  52.  
  53.     if( newuid)
  54.         attr.na_uid = newuid;
  55.     if( newgid)
  56.         attr.na_gid = newgid;
  57.     if( mask)
  58.         attr.na_mode= mask;
  59.  
  60.     GetLastError(); //Empty
  61.  
  62.     if( FALSE == NtfsSetUnixAttrib( FileName, &attr))
  63.         printf( "NtfsSetUnixAttrib(), %d = GetLastError()\n", 
  64.                 GetLastError());
  65.  
  66.  
  67.     NtfsGetUnixAttrib( FileName, &attr);
  68.  
  69.     printf( "    Uid %ld, Gid %ld, Mode %lx\n", 
  70.             attr.na_uid, attr.na_gid, attr.na_mode);
  71.  
  72.     return 0;
  73.  
  74. }
  75.