mirror of
https://git.code.sf.net/p/ntfs-3g/ntfs-3g.git
synced 2024-11-23 10:04:00 +08:00
Update version to 2.0.0, update NEWS, update mkntfs man page and mkntfs itself.
- mkntfs: As announced, remove the deprecated support for creation of NTFS 1.2/3.0 volumes. We now create NTFS 3.1 volumes only. (Anton) - mkntfs: Remove lots of unused/unneeded debugging code. (Anton)
This commit is contained in:
parent
78c46fd3c3
commit
19257df7f0
@ -1,4 +1,4 @@
|
|||||||
xx/xx/2006 - x.xx.x - .
|
xx/12/2006 - 2.0.0 - ntfsmount sports full r/w and ntfsresize supports Vista.
|
||||||
|
|
||||||
- ntfsmount now creates files and directories with security descriptor
|
- ntfsmount now creates files and directories with security descriptor
|
||||||
that grant full access to everyone. (Yura)
|
that grant full access to everyone. (Yura)
|
||||||
@ -112,6 +112,9 @@ xx/xx/2006 - x.xx.x - .
|
|||||||
- mkntfs: Always set default cluster size to 4096 bytes regardless of
|
- mkntfs: Always set default cluster size to 4096 bytes regardless of
|
||||||
volume size. This is what Windows Vista does and it makes perfect
|
volume size. This is what Windows Vista does and it makes perfect
|
||||||
sense from a performance point of view. (Anton)
|
sense from a performance point of view. (Anton)
|
||||||
|
- mkntfs: As announced, remove the deprecated support for creation of
|
||||||
|
NTFS 1.2/3.0 volumes. We now create NTFS 3.1 volumes only. (Anton)
|
||||||
|
- mkntfs: Remove lots of unused/unneeded debugging code. (Anton)
|
||||||
|
|
||||||
21/06/2006 - 1.13.1 - Various fixes.
|
21/06/2006 - 1.13.1 - Various fixes.
|
||||||
|
|
||||||
|
13
NEWS
13
NEWS
@ -1,13 +1,10 @@
|
|||||||
Current news
|
Current news
|
||||||
============
|
============
|
||||||
|
|
||||||
Older news
|
ntfsmount now has full basic read/write support.
|
||||||
==========
|
|
||||||
|
|
||||||
mkntfs now creates NTFS 3.1 (Windows XP) volumes by default. The old NTFS 1.2
|
ntfsresize (and the entirety of ntfsprogs/libntfs in fact) now have full
|
||||||
format is now deprecated and whilst it can still be specified using a command
|
support for Windows Vista.
|
||||||
line option, it will be removed in a future release.
|
|
||||||
|
|
||||||
ntfsmount can create/delete/move files and directories! It is not a full
|
mkntfs now creates a DCE compliant GUID for the volume and does a few other
|
||||||
implementation, thus sometimes it will say 'Operation is not supported',
|
things to be more compliant with Windows Vista.
|
||||||
nothing bad will happen to user data in this case. (Yura Pakhuchiy)
|
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
AC_PREREQ(2.59)
|
AC_PREREQ(2.59)
|
||||||
AC_INIT([ntfsprogs],[1.13.2-WIP],[linux-ntfs-dev@lists.sourceforge.net])
|
AC_INIT([ntfsprogs],[2.0.0],[linux-ntfs-dev@lists.sourceforge.net])
|
||||||
|
|
||||||
#
|
#
|
||||||
# Before making a release, the LTVERSION string should be modified.
|
# Before making a release, the LTVERSION string should be modified.
|
||||||
|
@ -1,161 +1,5 @@
|
|||||||
#include "attrdef.h"
|
#include "attrdef.h"
|
||||||
|
|
||||||
/**
|
|
||||||
* attrdef_ntfs12_array
|
|
||||||
*/
|
|
||||||
const unsigned char attrdef_ntfs12_array[2400] = {
|
|
||||||
36, 0, 83, 0, 84, 0, 65, 0, 78, 0, 68, 0, 65, 0, 82, 0,
|
|
||||||
68, 0, 95, 0, 73, 0, 78, 0, 70, 0, 79, 0, 82, 0, 77, 0,
|
|
||||||
65, 0, 84, 0, 73, 0, 79, 0, 78, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0,
|
|
||||||
48, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
36, 0, 65, 0, 84, 0, 84, 0, 82, 0, 73, 0, 66, 0, 85, 0,
|
|
||||||
84, 0, 69, 0, 95, 0, 76, 0, 73, 0, 83, 0, 84, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255,
|
|
||||||
36, 0, 70, 0, 73, 0, 76, 0, 69, 0, 95, 0, 78, 0, 65, 0,
|
|
||||||
77, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0,
|
|
||||||
68, 0, 0, 0, 0, 0, 0, 0, 66, 2, 0, 0, 0, 0, 0, 0,
|
|
||||||
36, 0, 86, 0, 79, 0, 76, 0, 85, 0, 77, 0, 69, 0, 95, 0,
|
|
||||||
86, 0, 69, 0, 82, 0, 83, 0, 73, 0, 79, 0, 78, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0,
|
|
||||||
8, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
36, 0, 83, 0, 69, 0, 67, 0, 85, 0, 82, 0, 73, 0, 84, 0,
|
|
||||||
89, 0, 95, 0, 68, 0, 69, 0, 83, 0, 67, 0, 82, 0, 73, 0,
|
|
||||||
80, 0, 84, 0, 79, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255,
|
|
||||||
36, 0, 86, 0, 79, 0, 76, 0, 85, 0, 77, 0, 69, 0, 95, 0,
|
|
||||||
78, 0, 65, 0, 77, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0,
|
|
||||||
2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
|
|
||||||
36, 0, 86, 0, 79, 0, 76, 0, 85, 0, 77, 0, 69, 0, 95, 0,
|
|
||||||
73, 0, 78, 0, 70, 0, 79, 0, 82, 0, 77, 0, 65, 0, 84, 0,
|
|
||||||
73, 0, 79, 0, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0,
|
|
||||||
12, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
36, 0, 68, 0, 65, 0, 84, 0, 65, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255,
|
|
||||||
36, 0, 73, 0, 78, 0, 68, 0, 69, 0, 88, 0, 95, 0, 82, 0,
|
|
||||||
79, 0, 79, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255,
|
|
||||||
36, 0, 73, 0, 78, 0, 68, 0, 69, 0, 88, 0, 95, 0, 65, 0,
|
|
||||||
76, 0, 76, 0, 79, 0, 67, 0, 65, 0, 84, 0, 73, 0, 79, 0,
|
|
||||||
78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255,
|
|
||||||
36, 0, 66, 0, 73, 0, 84, 0, 77, 0, 65, 0, 80, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255,
|
|
||||||
36, 0, 83, 0, 89, 0, 77, 0, 66, 0, 79, 0, 76, 0, 73, 0,
|
|
||||||
67, 0, 95, 0, 76, 0, 73, 0, 78, 0, 75, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255,
|
|
||||||
36, 0, 69, 0, 65, 0, 95, 0, 73, 0, 78, 0, 70, 0, 79, 0,
|
|
||||||
82, 0, 77, 0, 65, 0, 84, 0, 73, 0, 79, 0, 78, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0,
|
|
||||||
8, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
36, 0, 69, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* attrdef_ntfs3x_array
|
* attrdef_ntfs3x_array
|
||||||
*/
|
*/
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
#ifndef _NTFS_ATTRDEF_H_
|
#ifndef _NTFS_ATTRDEF_H_
|
||||||
#define _NTFS_ATTRDEF_H_
|
#define _NTFS_ATTRDEF_H_
|
||||||
|
|
||||||
extern const unsigned char attrdef_ntfs12_array[2400];
|
|
||||||
extern const unsigned char attrdef_ntfs3x_array[2560];
|
extern const unsigned char attrdef_ntfs3x_array[2560];
|
||||||
|
|
||||||
#endif /* _NTFS_ATTRDEF_H_ */
|
#endif /* _NTFS_ATTRDEF_H_ */
|
||||||
|
@ -45,10 +45,6 @@ mkntfs \- create an NTFS file system
|
|||||||
.B \-n
|
.B \-n
|
||||||
]
|
]
|
||||||
[
|
[
|
||||||
.B \-N
|
|
||||||
.I ntfs\-version
|
|
||||||
]
|
|
||||||
[
|
|
||||||
.B \-p
|
.B \-p
|
||||||
.I part\-start\-sect
|
.I part\-start\-sect
|
||||||
]
|
]
|
||||||
@ -123,6 +119,14 @@ Set the volume label for the filesystem.
|
|||||||
\fB\-C\fR, \fB\-\-enable\-compression\fR
|
\fB\-C\fR, \fB\-\-enable\-compression\fR
|
||||||
Enable compression on the volume.
|
Enable compression on the volume.
|
||||||
.TP
|
.TP
|
||||||
|
\fB\-n\fR, \fB\-\-no\-action\fR
|
||||||
|
Causes
|
||||||
|
.B mkntfs
|
||||||
|
to not actually create a filesystem, but display what it would do if it were
|
||||||
|
to create a filesystem. All steps of the format are carried out except the
|
||||||
|
actual writing to the device.
|
||||||
|
.SS Advanced options
|
||||||
|
.TP
|
||||||
\fB\-c\fR, \fB\-\-cluster\-size\fR BYTES
|
\fB\-c\fR, \fB\-\-cluster\-size\fR BYTES
|
||||||
Specify the size of clusters in bytes. Valid cluster size values are powers of
|
Specify the size of clusters in bytes. Valid cluster size values are powers of
|
||||||
two, with at least 256, and at most 65536 bytes per cluster. If omitted,
|
two, with at least 256, and at most 65536 bytes per cluster. If omitted,
|
||||||
@ -135,22 +139,6 @@ greater than 4096 have the side effect that compression is disabled on the
|
|||||||
volume (due to limitations in the NTFS compression algorithm currently in use
|
volume (due to limitations in the NTFS compression algorithm currently in use
|
||||||
by Windows).
|
by Windows).
|
||||||
.TP
|
.TP
|
||||||
\fB\-N\fR, \fB\-\-ntfs\-version\fR STRING
|
|
||||||
Select the version of NTFS you wish to create. This can be "1.2"
|
|
||||||
(Windows NT 4.0) or "3.1" (Windows XP, Server 2003, and Vista).
|
|
||||||
Versions are upwards compatible and Windows 2000, which uses version "3.0",
|
|
||||||
can read/write both.
|
|
||||||
|
|
||||||
If this option is omitted then version "3.1" is used.
|
|
||||||
.TP
|
|
||||||
\fB\-n\fR, \fB\-\-no\-action\fR
|
|
||||||
Causes
|
|
||||||
.B mkntfs
|
|
||||||
to not actually create a filesystem, but display what it would do if it were
|
|
||||||
to create a filesystem. All steps of the format are carried out except the
|
|
||||||
actual writing to the device.
|
|
||||||
.SS Advanced options
|
|
||||||
.TP
|
|
||||||
\fB\-s\fR, \fB\-\-sector\-size\fR BYTES
|
\fB\-s\fR, \fB\-\-sector\-size\fR BYTES
|
||||||
Specify the size of sectors in bytes. Valid sector size values are 256, 512,
|
Specify the size of sectors in bytes. Valid sector size values are 256, 512,
|
||||||
1024, 2048 and 4096 bytes per sector. If omitted,
|
1024, 2048 and 4096 bytes per sector. If omitted,
|
||||||
|
File diff suppressed because it is too large
Load Diff
555
ntfsprogs/sd.c
555
ntfsprogs/sd.c
@ -5,7 +5,7 @@
|
|||||||
/**
|
/**
|
||||||
* init_system_file_sd
|
* init_system_file_sd
|
||||||
*
|
*
|
||||||
* NTFS 1.2, 3.0, 3.1 - System files security decriptors
|
* NTFS 3.1 - System files security decriptors
|
||||||
* =====================================================
|
* =====================================================
|
||||||
*
|
*
|
||||||
* Create the security descriptor for system file number @sys_file_no and
|
* Create the security descriptor for system file number @sys_file_no and
|
||||||
@ -17,9 +17,7 @@
|
|||||||
* $Volume, $Quota, and system files 0xb-0xf are the same. They are almost the
|
* $Volume, $Quota, and system files 0xb-0xf are the same. They are almost the
|
||||||
* same as the above, the only difference being that the two SIDs present in
|
* same as the above, the only difference being that the two SIDs present in
|
||||||
* the DACL grant GENERIC_WRITE and GENERIC_READ equivalent privileges while
|
* the DACL grant GENERIC_WRITE and GENERIC_READ equivalent privileges while
|
||||||
* the above only grant GENERIC_READ equivalent privileges. (For some reason
|
* the above only grant GENERIC_READ equivalent privileges.
|
||||||
* the flags for GENERIC_READ/GENERIC_WRITE are not set by NT4, even though
|
|
||||||
* the permissions are equivalent, so we comply.
|
|
||||||
*
|
*
|
||||||
* Root directory system file (".") is different altogether.
|
* Root directory system file (".") is different altogether.
|
||||||
*
|
*
|
||||||
@ -46,15 +44,9 @@ void init_system_file_sd(int sys_file_no, u8 **sd_val, int *sd_val_len)
|
|||||||
sd->revision = 1;
|
sd->revision = 1;
|
||||||
sd->alignment = 0;
|
sd->alignment = 0;
|
||||||
sd->control = SE_SELF_RELATIVE | SE_DACL_PRESENT;
|
sd->control = SE_SELF_RELATIVE | SE_DACL_PRESENT;
|
||||||
if (sys_file_no == FILE_root) {
|
*sd_val_len = 0x68;
|
||||||
*sd_val_len = 0x50;
|
sd->owner = const_cpu_to_le32(0x48);
|
||||||
sd->owner = const_cpu_to_le32(0x30);
|
sd->group = const_cpu_to_le32(0x58);
|
||||||
sd->group = const_cpu_to_le32(0x40);
|
|
||||||
} else {
|
|
||||||
*sd_val_len = 0x68;
|
|
||||||
sd->owner = const_cpu_to_le32(0x48);
|
|
||||||
sd->group = const_cpu_to_le32(0x58);
|
|
||||||
}
|
|
||||||
sd->sacl = const_cpu_to_le32(0);
|
sd->sacl = const_cpu_to_le32(0);
|
||||||
sd->dacl = const_cpu_to_le32(0x14);
|
sd->dacl = const_cpu_to_le32(0x14);
|
||||||
/*
|
/*
|
||||||
@ -64,13 +56,8 @@ void init_system_file_sd(int sys_file_no, u8 **sd_val, int *sd_val_len)
|
|||||||
acl = (ACL*)((char*)sd + le32_to_cpu(sd->dacl));
|
acl = (ACL*)((char*)sd + le32_to_cpu(sd->dacl));
|
||||||
acl->revision = 2;
|
acl->revision = 2;
|
||||||
acl->alignment1 = 0;
|
acl->alignment1 = 0;
|
||||||
if (sys_file_no == FILE_root) {
|
acl->size = const_cpu_to_le16(0x34);
|
||||||
acl->size = const_cpu_to_le16(0x1c);
|
acl->ace_count = const_cpu_to_le16(2);
|
||||||
acl->ace_count = const_cpu_to_le16(1);
|
|
||||||
} else {
|
|
||||||
acl->size = const_cpu_to_le16(0x34);
|
|
||||||
acl->ace_count = const_cpu_to_le16(2);
|
|
||||||
}
|
|
||||||
acl->alignment2 = const_cpu_to_le16(0);
|
acl->alignment2 = const_cpu_to_le16(0);
|
||||||
/*
|
/*
|
||||||
* Now at offset 0x1c, just after the DACL's ACL, we have the first
|
* Now at offset 0x1c, just after the DACL's ACL, we have the first
|
||||||
@ -78,10 +65,7 @@ void init_system_file_sd(int sys_file_no, u8 **sd_val, int *sd_val_len)
|
|||||||
*/
|
*/
|
||||||
aa_ace = (ACCESS_ALLOWED_ACE*)((char*)acl + sizeof(ACL));
|
aa_ace = (ACCESS_ALLOWED_ACE*)((char*)acl + sizeof(ACL));
|
||||||
aa_ace->type = ACCESS_ALLOWED_ACE_TYPE;
|
aa_ace->type = ACCESS_ALLOWED_ACE_TYPE;
|
||||||
if (sys_file_no == FILE_root)
|
aa_ace->flags = 0;
|
||||||
aa_ace->flags = CONTAINER_INHERIT_ACE | OBJECT_INHERIT_ACE;
|
|
||||||
else
|
|
||||||
aa_ace->flags = 0;
|
|
||||||
aa_ace->size = const_cpu_to_le16(0x14);
|
aa_ace->size = const_cpu_to_le16(0x14);
|
||||||
switch (sys_file_no) {
|
switch (sys_file_no) {
|
||||||
case FILE_MFT: case FILE_MFTMirr: case FILE_LogFile:
|
case FILE_MFT: case FILE_MFTMirr: case FILE_LogFile:
|
||||||
@ -96,13 +80,6 @@ void init_system_file_sd(int sys_file_no, u8 **sd_val, int *sd_val_len)
|
|||||||
FILE_WRITE_EA | FILE_READ_EA | FILE_APPEND_DATA |
|
FILE_WRITE_EA | FILE_READ_EA | FILE_APPEND_DATA |
|
||||||
FILE_WRITE_DATA | FILE_READ_DATA;
|
FILE_WRITE_DATA | FILE_READ_DATA;
|
||||||
break;
|
break;
|
||||||
case FILE_root:
|
|
||||||
aa_ace->mask = STANDARD_RIGHTS_ALL | FILE_WRITE_ATTRIBUTES |
|
|
||||||
FILE_READ_ATTRIBUTES | FILE_DELETE_CHILD |
|
|
||||||
FILE_TRAVERSE | FILE_WRITE_EA | FILE_READ_EA |
|
|
||||||
FILE_ADD_SUBDIRECTORY | FILE_ADD_FILE |
|
|
||||||
FILE_LIST_DIRECTORY;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
aa_ace->sid.revision = 1;
|
aa_ace->sid.revision = 1;
|
||||||
aa_ace->sid.sub_authority_count = 1;
|
aa_ace->sid.sub_authority_count = 1;
|
||||||
@ -111,63 +88,53 @@ void init_system_file_sd(int sys_file_no, u8 **sd_val, int *sd_val_len)
|
|||||||
aa_ace->sid.identifier_authority.value[2] = 0;
|
aa_ace->sid.identifier_authority.value[2] = 0;
|
||||||
aa_ace->sid.identifier_authority.value[3] = 0;
|
aa_ace->sid.identifier_authority.value[3] = 0;
|
||||||
aa_ace->sid.identifier_authority.value[4] = 0;
|
aa_ace->sid.identifier_authority.value[4] = 0;
|
||||||
if (sys_file_no == FILE_root) {
|
/* SECURITY_NT_SID_AUTHORITY (S-1-5) */
|
||||||
/* SECURITY_WORLD_SID_AUTHORITY (S-1-1) */
|
aa_ace->sid.identifier_authority.value[5] = 5;
|
||||||
aa_ace->sid.identifier_authority.value[5] = 1;
|
aa_ace->sid.sub_authority[0] =
|
||||||
aa_ace->sid.sub_authority[0] =
|
const_cpu_to_le32(SECURITY_LOCAL_SYSTEM_RID);
|
||||||
const_cpu_to_le32(SECURITY_WORLD_RID);
|
|
||||||
/* This is S-1-1-0, the WORLD_SID. */
|
|
||||||
} else {
|
|
||||||
/* SECURITY_NT_SID_AUTHORITY (S-1-5) */
|
|
||||||
aa_ace->sid.identifier_authority.value[5] = 5;
|
|
||||||
aa_ace->sid.sub_authority[0] =
|
|
||||||
const_cpu_to_le32(SECURITY_LOCAL_SYSTEM_RID);
|
|
||||||
}
|
|
||||||
/*
|
/*
|
||||||
* Now at offset 0x30 within security descriptor, just after the first
|
* Now at offset 0x30 within security descriptor, just after the first
|
||||||
* ACE of the DACL. All system files, except the root directory, have
|
* ACE of the DACL. All system files, except the root directory, have
|
||||||
* a second ACE.
|
* a second ACE.
|
||||||
*/
|
*/
|
||||||
if (sys_file_no != FILE_root) {
|
/* The second ACE of the DACL. Type is access allowed. */
|
||||||
/* The second ACE of the DACL. Type is access allowed. */
|
aa_ace = (ACCESS_ALLOWED_ACE*)((char*)aa_ace +
|
||||||
aa_ace = (ACCESS_ALLOWED_ACE*)((char*)aa_ace +
|
le16_to_cpu(aa_ace->size));
|
||||||
le16_to_cpu(aa_ace->size));
|
aa_ace->type = ACCESS_ALLOWED_ACE_TYPE;
|
||||||
aa_ace->type = ACCESS_ALLOWED_ACE_TYPE;
|
aa_ace->flags = 0;
|
||||||
aa_ace->flags = 0;
|
aa_ace->size = const_cpu_to_le16(0x18);
|
||||||
aa_ace->size = const_cpu_to_le16(0x18);
|
switch (sys_file_no) {
|
||||||
switch (sys_file_no) {
|
case FILE_MFT: case FILE_MFTMirr:
|
||||||
case FILE_MFT: case FILE_MFTMirr:
|
case FILE_LogFile: case FILE_AttrDef:
|
||||||
case FILE_LogFile: case FILE_AttrDef:
|
case FILE_Bitmap: case FILE_Boot:
|
||||||
case FILE_Bitmap: case FILE_Boot:
|
case FILE_BadClus: case FILE_UpCase:
|
||||||
case FILE_BadClus: case FILE_UpCase:
|
aa_ace->mask = SYNCHRONIZE | STANDARD_RIGHTS_READ |
|
||||||
aa_ace->mask = SYNCHRONIZE | STANDARD_RIGHTS_READ |
|
FILE_READ_ATTRIBUTES | FILE_READ_EA |
|
||||||
FILE_READ_ATTRIBUTES | FILE_READ_EA |
|
FILE_READ_DATA;
|
||||||
FILE_READ_DATA;
|
break;
|
||||||
break;
|
case FILE_Volume: case FILE_Secure:
|
||||||
case FILE_Volume: case FILE_Secure:
|
case 0xb ... 0xffff :
|
||||||
case 0xb ... 0xffff :
|
aa_ace->mask = SYNCHRONIZE | STANDARD_RIGHTS_READ |
|
||||||
aa_ace->mask = SYNCHRONIZE | STANDARD_RIGHTS_READ |
|
FILE_WRITE_ATTRIBUTES |
|
||||||
FILE_WRITE_ATTRIBUTES |
|
FILE_READ_ATTRIBUTES | FILE_WRITE_EA |
|
||||||
FILE_READ_ATTRIBUTES | FILE_WRITE_EA |
|
FILE_READ_EA | FILE_APPEND_DATA |
|
||||||
FILE_READ_EA | FILE_APPEND_DATA |
|
FILE_WRITE_DATA | FILE_READ_DATA;
|
||||||
FILE_WRITE_DATA | FILE_READ_DATA;
|
break;
|
||||||
break;
|
|
||||||
}
|
|
||||||
aa_ace->sid.revision = 1;
|
|
||||||
aa_ace->sid.sub_authority_count = 2;
|
|
||||||
/* SECURITY_NT_SID_AUTHORITY (S-1-5) */
|
|
||||||
aa_ace->sid.identifier_authority.value[0] = 0;
|
|
||||||
aa_ace->sid.identifier_authority.value[1] = 0;
|
|
||||||
aa_ace->sid.identifier_authority.value[2] = 0;
|
|
||||||
aa_ace->sid.identifier_authority.value[3] = 0;
|
|
||||||
aa_ace->sid.identifier_authority.value[4] = 0;
|
|
||||||
aa_ace->sid.identifier_authority.value[5] = 5;
|
|
||||||
aa_ace->sid.sub_authority[0] =
|
|
||||||
const_cpu_to_le32(SECURITY_BUILTIN_DOMAIN_RID);
|
|
||||||
aa_ace->sid.sub_authority[1] =
|
|
||||||
const_cpu_to_le32(DOMAIN_ALIAS_RID_ADMINS);
|
|
||||||
/* Now at offset 0x48 into the security descriptor. */
|
|
||||||
}
|
}
|
||||||
|
aa_ace->sid.revision = 1;
|
||||||
|
aa_ace->sid.sub_authority_count = 2;
|
||||||
|
/* SECURITY_NT_SID_AUTHORITY (S-1-5) */
|
||||||
|
aa_ace->sid.identifier_authority.value[0] = 0;
|
||||||
|
aa_ace->sid.identifier_authority.value[1] = 0;
|
||||||
|
aa_ace->sid.identifier_authority.value[2] = 0;
|
||||||
|
aa_ace->sid.identifier_authority.value[3] = 0;
|
||||||
|
aa_ace->sid.identifier_authority.value[4] = 0;
|
||||||
|
aa_ace->sid.identifier_authority.value[5] = 5;
|
||||||
|
aa_ace->sid.sub_authority[0] =
|
||||||
|
const_cpu_to_le32(SECURITY_BUILTIN_DOMAIN_RID);
|
||||||
|
aa_ace->sid.sub_authority[1] =
|
||||||
|
const_cpu_to_le32(DOMAIN_ALIAS_RID_ADMINS);
|
||||||
|
/* Now at offset 0x48 into the security descriptor. */
|
||||||
/* As specified in the security descriptor, we now have the owner SID.*/
|
/* As specified in the security descriptor, we now have the owner SID.*/
|
||||||
sid = (SID*)((char*)sd + le32_to_cpu(sd->owner));
|
sid = (SID*)((char*)sd + le32_to_cpu(sd->owner));
|
||||||
sid->revision = 1;
|
sid->revision = 1;
|
||||||
@ -262,8 +229,7 @@ void init_root_sd_31(u8 **sd_val, int *sd_val_len)
|
|||||||
ace->sid.identifier_authority.value[5] = 5;
|
ace->sid.identifier_authority.value[5] = 5;
|
||||||
ace->sid.sub_authority[0] =
|
ace->sid.sub_authority[0] =
|
||||||
const_cpu_to_le32(SECURITY_BUILTIN_DOMAIN_RID);
|
const_cpu_to_le32(SECURITY_BUILTIN_DOMAIN_RID);
|
||||||
ace->sid.sub_authority[1] =
|
ace->sid.sub_authority[1] = const_cpu_to_le32(DOMAIN_ALIAS_RID_ADMINS);
|
||||||
const_cpu_to_le32(DOMAIN_ALIAS_RID_ADMINS);
|
|
||||||
|
|
||||||
//ace2
|
//ace2
|
||||||
ace = (ACCESS_ALLOWED_ACE*)((u8*)ace + le16_to_cpu(ace->size));
|
ace = (ACCESS_ALLOWED_ACE*)((u8*)ace + le16_to_cpu(ace->size));
|
||||||
@ -323,8 +289,7 @@ void init_root_sd_31(u8 **sd_val, int *sd_val_len)
|
|||||||
ace->sid.identifier_authority.value[5] = 5;
|
ace->sid.identifier_authority.value[5] = 5;
|
||||||
ace->sid.sub_authority[0] =
|
ace->sid.sub_authority[0] =
|
||||||
const_cpu_to_le32(SECURITY_BUILTIN_DOMAIN_RID);
|
const_cpu_to_le32(SECURITY_BUILTIN_DOMAIN_RID);
|
||||||
ace->sid.sub_authority[1] =
|
ace->sid.sub_authority[1] = const_cpu_to_le32(DOMAIN_ALIAS_RID_USERS);
|
||||||
const_cpu_to_le32(DOMAIN_ALIAS_RID_USERS);
|
|
||||||
|
|
||||||
//ace5
|
//ace5
|
||||||
ace = (ACCESS_ALLOWED_ACE*)((char*)ace + le16_to_cpu(ace->size));
|
ace = (ACCESS_ALLOWED_ACE*)((char*)ace + le16_to_cpu(ace->size));
|
||||||
@ -343,8 +308,7 @@ void init_root_sd_31(u8 **sd_val, int *sd_val_len)
|
|||||||
ace->sid.identifier_authority.value[5] = 5;
|
ace->sid.identifier_authority.value[5] = 5;
|
||||||
ace->sid.sub_authority[0] =
|
ace->sid.sub_authority[0] =
|
||||||
const_cpu_to_le32(SECURITY_BUILTIN_DOMAIN_RID);
|
const_cpu_to_le32(SECURITY_BUILTIN_DOMAIN_RID);
|
||||||
ace->sid.sub_authority[1] =
|
ace->sid.sub_authority[1] = const_cpu_to_le32(DOMAIN_ALIAS_RID_USERS);
|
||||||
const_cpu_to_le32(DOMAIN_ALIAS_RID_USERS);
|
|
||||||
|
|
||||||
//ace6
|
//ace6
|
||||||
ace = (ACCESS_ALLOWED_ACE*)((u8*)ace + le16_to_cpu(ace->size));
|
ace = (ACCESS_ALLOWED_ACE*)((u8*)ace + le16_to_cpu(ace->size));
|
||||||
@ -363,8 +327,7 @@ void init_root_sd_31(u8 **sd_val, int *sd_val_len)
|
|||||||
ace->sid.identifier_authority.value[5] = 5;
|
ace->sid.identifier_authority.value[5] = 5;
|
||||||
ace->sid.sub_authority[0] =
|
ace->sid.sub_authority[0] =
|
||||||
const_cpu_to_le32(SECURITY_BUILTIN_DOMAIN_RID);
|
const_cpu_to_le32(SECURITY_BUILTIN_DOMAIN_RID);
|
||||||
ace->sid.sub_authority[1] =
|
ace->sid.sub_authority[1] = const_cpu_to_le32(DOMAIN_ALIAS_RID_USERS);
|
||||||
const_cpu_to_le32(DOMAIN_ALIAS_RID_USERS);
|
|
||||||
|
|
||||||
//ace7
|
//ace7
|
||||||
ace = (ACCESS_ALLOWED_ACE*)((u8*)ace + le16_to_cpu(ace->size));
|
ace = (ACCESS_ALLOWED_ACE*)((u8*)ace + le16_to_cpu(ace->size));
|
||||||
@ -381,8 +344,7 @@ void init_root_sd_31(u8 **sd_val, int *sd_val_len)
|
|||||||
ace->sid.identifier_authority.value[3] = 0;
|
ace->sid.identifier_authority.value[3] = 0;
|
||||||
ace->sid.identifier_authority.value[4] = 0;
|
ace->sid.identifier_authority.value[4] = 0;
|
||||||
ace->sid.identifier_authority.value[5] = 1;
|
ace->sid.identifier_authority.value[5] = 1;
|
||||||
ace->sid.sub_authority[0] =
|
ace->sid.sub_authority[0] = const_cpu_to_le32(SECURITY_WORLD_RID);
|
||||||
const_cpu_to_le32(SECURITY_WORLD_RID);
|
|
||||||
|
|
||||||
//owner sid
|
//owner sid
|
||||||
sid = (SID*)((char*)sd + le32_to_cpu(sd->owner));
|
sid = (SID*)((char*)sd + le32_to_cpu(sd->owner));
|
||||||
@ -395,10 +357,8 @@ void init_root_sd_31(u8 **sd_val, int *sd_val_len)
|
|||||||
sid->identifier_authority.value[3] = 0;
|
sid->identifier_authority.value[3] = 0;
|
||||||
sid->identifier_authority.value[4] = 0;
|
sid->identifier_authority.value[4] = 0;
|
||||||
sid->identifier_authority.value[5] = 5;
|
sid->identifier_authority.value[5] = 5;
|
||||||
sid->sub_authority[0] =
|
sid->sub_authority[0] = const_cpu_to_le32(SECURITY_BUILTIN_DOMAIN_RID);
|
||||||
const_cpu_to_le32(SECURITY_BUILTIN_DOMAIN_RID);
|
sid->sub_authority[1] = const_cpu_to_le32(DOMAIN_ALIAS_RID_ADMINS);
|
||||||
sid->sub_authority[1] =
|
|
||||||
const_cpu_to_le32(DOMAIN_ALIAS_RID_ADMINS);
|
|
||||||
|
|
||||||
//group sid
|
//group sid
|
||||||
sid = (SID*)((char*)sd + le32_to_cpu(sd->group));
|
sid = (SID*)((char*)sd + le32_to_cpu(sd->group));
|
||||||
@ -411,408 +371,7 @@ void init_root_sd_31(u8 **sd_val, int *sd_val_len)
|
|||||||
sid->identifier_authority.value[3] = 0;
|
sid->identifier_authority.value[3] = 0;
|
||||||
sid->identifier_authority.value[4] = 0;
|
sid->identifier_authority.value[4] = 0;
|
||||||
sid->identifier_authority.value[5] = 5;
|
sid->identifier_authority.value[5] = 5;
|
||||||
sid->sub_authority[0] =
|
sid->sub_authority[0] = const_cpu_to_le32(SECURITY_LOCAL_SYSTEM_RID);
|
||||||
const_cpu_to_le32(SECURITY_LOCAL_SYSTEM_RID);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* init_secure
|
|
||||||
*
|
|
||||||
* NTFS 3.0 - System files security decriptors
|
|
||||||
* ===========================================
|
|
||||||
* Create the security descriptor entries in $SDS data stream like they
|
|
||||||
* are in a partition, newly formatted with windows 2000
|
|
||||||
*/
|
|
||||||
void init_secure_30(char *sd_val)
|
|
||||||
{
|
|
||||||
SECURITY_DESCRIPTOR_HEADER *sds;
|
|
||||||
SECURITY_DESCRIPTOR_RELATIVE *sd;
|
|
||||||
ACL *acl;
|
|
||||||
ACCESS_ALLOWED_ACE *ace;
|
|
||||||
SID *sid;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* security descriptor #1
|
|
||||||
*/
|
|
||||||
//header
|
|
||||||
sds = (SECURITY_DESCRIPTOR_HEADER*)((char*)sd_val);
|
|
||||||
sds->hash = const_cpu_to_le32(0xF80312F0);
|
|
||||||
sds->security_id = const_cpu_to_le32(0x0100);
|
|
||||||
sds->offset = const_cpu_to_le64(0x00);
|
|
||||||
sds->length = const_cpu_to_le32(0x7C);
|
|
||||||
//security descriptor relative
|
|
||||||
sd = (SECURITY_DESCRIPTOR_RELATIVE*)((char*)sds +
|
|
||||||
sizeof(SECURITY_DESCRIPTOR_HEADER));
|
|
||||||
sd->revision = 0x01;
|
|
||||||
sd->alignment = 0x00;
|
|
||||||
sd->control = SE_SELF_RELATIVE | SE_DACL_PRESENT;
|
|
||||||
sd->owner = const_cpu_to_le32(0x48);
|
|
||||||
sd->group = const_cpu_to_le32(0x58);
|
|
||||||
sd->sacl = const_cpu_to_le32(0x00);
|
|
||||||
sd->dacl = const_cpu_to_le32(0x14);
|
|
||||||
|
|
||||||
//acl
|
|
||||||
acl = (ACL*)((char*)sd + sizeof(SECURITY_DESCRIPTOR_RELATIVE));
|
|
||||||
acl->revision = 0x02;
|
|
||||||
acl->alignment1 = 0x00;
|
|
||||||
acl->size = const_cpu_to_le16(0x34);
|
|
||||||
acl->ace_count = const_cpu_to_le16(0x02);
|
|
||||||
acl->alignment2 = 0x00;
|
|
||||||
|
|
||||||
//ace1
|
|
||||||
ace = (ACCESS_ALLOWED_ACE*)((char*)acl + sizeof(ACL));
|
|
||||||
ace->type = 0x00;
|
|
||||||
ace->flags = 0x00;
|
|
||||||
ace->size = const_cpu_to_le16(0x14);
|
|
||||||
ace->mask = const_cpu_to_le32(0x120089);
|
|
||||||
ace->sid.revision = 0x01;
|
|
||||||
ace->sid.sub_authority_count = 0x01;
|
|
||||||
/* SECURITY_NT_SID_AUTHORITY (S-1-5) */
|
|
||||||
ace->sid.identifier_authority.value[0] = 0;
|
|
||||||
ace->sid.identifier_authority.value[1] = 0;
|
|
||||||
ace->sid.identifier_authority.value[2] = 0;
|
|
||||||
ace->sid.identifier_authority.value[3] = 0;
|
|
||||||
ace->sid.identifier_authority.value[4] = 0;
|
|
||||||
ace->sid.identifier_authority.value[5] = 5;
|
|
||||||
ace->sid.sub_authority[0] =
|
|
||||||
const_cpu_to_le32(SECURITY_LOCAL_SYSTEM_RID);
|
|
||||||
|
|
||||||
//ace2
|
|
||||||
ace = (ACCESS_ALLOWED_ACE*)((char*)ace + le16_to_cpu(ace->size));
|
|
||||||
ace->type = 0x00;
|
|
||||||
ace->flags = 0x00;
|
|
||||||
ace->size = const_cpu_to_le16(0x18);
|
|
||||||
ace->mask = const_cpu_to_le32(0x120089);
|
|
||||||
ace->sid.revision = 0x01;
|
|
||||||
ace->sid.sub_authority_count = 0x02;
|
|
||||||
/* SECURITY_NT_SID_AUTHORITY (S-1-5) */
|
|
||||||
ace->sid.identifier_authority.value[0] = 0;
|
|
||||||
ace->sid.identifier_authority.value[1] = 0;
|
|
||||||
ace->sid.identifier_authority.value[2] = 0;
|
|
||||||
ace->sid.identifier_authority.value[3] = 0;
|
|
||||||
ace->sid.identifier_authority.value[4] = 0;
|
|
||||||
ace->sid.identifier_authority.value[5] = 5;
|
|
||||||
ace->sid.sub_authority[0] =
|
|
||||||
const_cpu_to_le32(SECURITY_BUILTIN_DOMAIN_RID);
|
|
||||||
ace->sid.sub_authority[1] =
|
|
||||||
const_cpu_to_le32(DOMAIN_ALIAS_RID_ADMINS);
|
|
||||||
|
|
||||||
//owner sid
|
|
||||||
sid = (SID*)((char*)sd + le32_to_cpu(sd->owner));
|
|
||||||
sid->revision = 0x01;
|
|
||||||
sid->sub_authority_count = 0x02;
|
|
||||||
/* SECURITY_NT_SID_AUTHORITY (S-1-5) */
|
|
||||||
sid->identifier_authority.value[0] = 0;
|
|
||||||
sid->identifier_authority.value[1] = 0;
|
|
||||||
sid->identifier_authority.value[2] = 0;
|
|
||||||
sid->identifier_authority.value[3] = 0;
|
|
||||||
sid->identifier_authority.value[4] = 0;
|
|
||||||
sid->identifier_authority.value[5] = 5;
|
|
||||||
sid->sub_authority[0] =
|
|
||||||
const_cpu_to_le32(SECURITY_BUILTIN_DOMAIN_RID);
|
|
||||||
sid->sub_authority[1] =
|
|
||||||
const_cpu_to_le32(DOMAIN_ALIAS_RID_ADMINS);
|
|
||||||
|
|
||||||
//group sid
|
|
||||||
sid = (SID*)((char*)sd + le32_to_cpu(sd->group));
|
|
||||||
sid->revision = 0x01;
|
|
||||||
sid->sub_authority_count = 0x02;
|
|
||||||
/* SECURITY_NT_SID_AUTHORITY (S-1-5) */
|
|
||||||
sid->identifier_authority.value[0] = 0;
|
|
||||||
sid->identifier_authority.value[1] = 0;
|
|
||||||
sid->identifier_authority.value[2] = 0;
|
|
||||||
sid->identifier_authority.value[3] = 0;
|
|
||||||
sid->identifier_authority.value[4] = 0;
|
|
||||||
sid->identifier_authority.value[5] = 5;
|
|
||||||
sid->sub_authority[0] =
|
|
||||||
const_cpu_to_le32(SECURITY_BUILTIN_DOMAIN_RID);
|
|
||||||
sid->sub_authority[1] =
|
|
||||||
const_cpu_to_le32(DOMAIN_ALIAS_RID_ADMINS);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* security descriptor #2
|
|
||||||
*/
|
|
||||||
//header
|
|
||||||
sds = (SECURITY_DESCRIPTOR_HEADER*)((char*)sd_val + 0x80);
|
|
||||||
sds->hash = const_cpu_to_le32(0xB32451);
|
|
||||||
sds->security_id = const_cpu_to_le32(0x0101);
|
|
||||||
sds->offset = const_cpu_to_le64(0x80);
|
|
||||||
sds->length = const_cpu_to_le32(0x7C);
|
|
||||||
|
|
||||||
//security descriptor relative
|
|
||||||
sd = (SECURITY_DESCRIPTOR_RELATIVE*)((char*)sds +
|
|
||||||
sizeof(SECURITY_DESCRIPTOR_HEADER));
|
|
||||||
sd->revision = 0x01;
|
|
||||||
sd->alignment = 0x00;
|
|
||||||
sd->control = SE_SELF_RELATIVE | SE_DACL_PRESENT;
|
|
||||||
sd->owner = const_cpu_to_le32(0x48);
|
|
||||||
sd->group = const_cpu_to_le32(0x58);
|
|
||||||
sd->sacl = const_cpu_to_le32(0x00);
|
|
||||||
sd->dacl = const_cpu_to_le32(0x14);
|
|
||||||
|
|
||||||
//acl
|
|
||||||
acl = (ACL*)((char*)sd + sizeof(SECURITY_DESCRIPTOR_RELATIVE));
|
|
||||||
acl->revision = 0x02;
|
|
||||||
acl->alignment1 = 0x00;
|
|
||||||
acl->size = const_cpu_to_le16(0x34);
|
|
||||||
acl->ace_count = const_cpu_to_le16(0x02);
|
|
||||||
acl->alignment2 = 0x00;
|
|
||||||
|
|
||||||
//ace1
|
|
||||||
ace = (ACCESS_ALLOWED_ACE*)((char*)acl + sizeof(ACL));
|
|
||||||
ace->type = 0x00;
|
|
||||||
ace->flags = 0x00;
|
|
||||||
ace->size = const_cpu_to_le16(0x14);
|
|
||||||
ace->mask = const_cpu_to_le32(0x12019F);
|
|
||||||
ace->sid.revision = 0x01;
|
|
||||||
ace->sid.sub_authority_count = 0x01;
|
|
||||||
/* SECURITY_NT_SID_AUTHORITY (S-1-5) */
|
|
||||||
ace->sid.identifier_authority.value[0] = 0;
|
|
||||||
ace->sid.identifier_authority.value[1] = 0;
|
|
||||||
ace->sid.identifier_authority.value[2] = 0;
|
|
||||||
ace->sid.identifier_authority.value[3] = 0;
|
|
||||||
ace->sid.identifier_authority.value[4] = 0;
|
|
||||||
ace->sid.identifier_authority.value[5] = 5;
|
|
||||||
ace->sid.sub_authority[0] =
|
|
||||||
const_cpu_to_le32(SECURITY_LOCAL_SYSTEM_RID);
|
|
||||||
|
|
||||||
//ace2
|
|
||||||
ace = (ACCESS_ALLOWED_ACE*)((char*)ace + le16_to_cpu(ace->size));
|
|
||||||
ace->type = 0x00;
|
|
||||||
ace->flags = 0x00;
|
|
||||||
ace->size = const_cpu_to_le16(0x18);
|
|
||||||
ace->mask = const_cpu_to_le32(0x12019F);
|
|
||||||
ace->sid.revision = 0x01;
|
|
||||||
ace->sid.sub_authority_count = 0x02;
|
|
||||||
/* SECURITY_NT_SID_AUTHORITY (S-1-5) */
|
|
||||||
ace->sid.identifier_authority.value[0] = 0;
|
|
||||||
ace->sid.identifier_authority.value[1] = 0;
|
|
||||||
ace->sid.identifier_authority.value[2] = 0;
|
|
||||||
ace->sid.identifier_authority.value[3] = 0;
|
|
||||||
ace->sid.identifier_authority.value[4] = 0;
|
|
||||||
ace->sid.identifier_authority.value[5] = 5;
|
|
||||||
ace->sid.sub_authority[0] =
|
|
||||||
const_cpu_to_le32(SECURITY_BUILTIN_DOMAIN_RID);
|
|
||||||
ace->sid.sub_authority[1] =
|
|
||||||
const_cpu_to_le32(DOMAIN_ALIAS_RID_ADMINS);
|
|
||||||
|
|
||||||
//owner sid
|
|
||||||
sid = (SID*)((char*)sd + le32_to_cpu(sd->owner));
|
|
||||||
sid->revision = 0x01;
|
|
||||||
sid->sub_authority_count = 0x02;
|
|
||||||
/* SECURITY_NT_SID_AUTHORITY (S-1-5) */
|
|
||||||
sid->identifier_authority.value[0] = 0;
|
|
||||||
sid->identifier_authority.value[1] = 0;
|
|
||||||
sid->identifier_authority.value[2] = 0;
|
|
||||||
sid->identifier_authority.value[3] = 0;
|
|
||||||
sid->identifier_authority.value[4] = 0;
|
|
||||||
sid->identifier_authority.value[5] = 5;
|
|
||||||
sid->sub_authority[0] =
|
|
||||||
const_cpu_to_le32(SECURITY_BUILTIN_DOMAIN_RID);
|
|
||||||
sid->sub_authority[1] =
|
|
||||||
const_cpu_to_le32(DOMAIN_ALIAS_RID_ADMINS);
|
|
||||||
|
|
||||||
//group sid
|
|
||||||
sid = (SID*)((char*)sd + le32_to_cpu(sd->group));
|
|
||||||
sid->revision = 0x01;
|
|
||||||
sid->sub_authority_count = 0x02;
|
|
||||||
/* SECURITY_NT_SID_AUTHORITY (S-1-5) */
|
|
||||||
sid->identifier_authority.value[0] = 0;
|
|
||||||
sid->identifier_authority.value[1] = 0;
|
|
||||||
sid->identifier_authority.value[2] = 0;
|
|
||||||
sid->identifier_authority.value[3] = 0;
|
|
||||||
sid->identifier_authority.value[4] = 0;
|
|
||||||
sid->identifier_authority.value[5] = 5;
|
|
||||||
sid->sub_authority[0] =
|
|
||||||
const_cpu_to_le32(SECURITY_BUILTIN_DOMAIN_RID);
|
|
||||||
sid->sub_authority[1] =
|
|
||||||
const_cpu_to_le32(DOMAIN_ALIAS_RID_ADMINS);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* security descriptor #3
|
|
||||||
*/
|
|
||||||
//header
|
|
||||||
sds = (SECURITY_DESCRIPTOR_HEADER*)((char*)sd_val + 0x80 + 0x80);
|
|
||||||
sds->hash = const_cpu_to_le32(0x0A9F9562);
|
|
||||||
sds->security_id = const_cpu_to_le32(0x0102);
|
|
||||||
sds->offset = const_cpu_to_le64(0x0100);
|
|
||||||
sds->length = const_cpu_to_le32(0x60);
|
|
||||||
|
|
||||||
//security descriptor relative
|
|
||||||
sd = (SECURITY_DESCRIPTOR_RELATIVE*)((char*)sds +
|
|
||||||
sizeof(SECURITY_DESCRIPTOR_HEADER));
|
|
||||||
sd->revision = 0x01;
|
|
||||||
sd->alignment = 0x00;
|
|
||||||
sd->control = SE_SELF_RELATIVE | SE_DACL_PRESENT;
|
|
||||||
sd->owner = const_cpu_to_le32(0x30);
|
|
||||||
sd->group = const_cpu_to_le32(0x40);
|
|
||||||
sd->sacl = const_cpu_to_le32(0x00);
|
|
||||||
sd->dacl = const_cpu_to_le32(0x14);
|
|
||||||
|
|
||||||
//acl
|
|
||||||
acl = (ACL*)((char*)sd + sizeof(SECURITY_DESCRIPTOR_RELATIVE));
|
|
||||||
acl->revision = 0x02;
|
|
||||||
acl->alignment1 = 0x00;
|
|
||||||
acl->size = const_cpu_to_le16(0x1C);
|
|
||||||
acl->ace_count = const_cpu_to_le16(0x01);
|
|
||||||
acl->alignment2 = 0x00;
|
|
||||||
|
|
||||||
//ace1
|
|
||||||
ace = (ACCESS_ALLOWED_ACE*)((char*)acl + sizeof(ACL));
|
|
||||||
ace->type = 0x00;
|
|
||||||
ace->flags = 0x00;
|
|
||||||
ace->size = const_cpu_to_le16(0x14);
|
|
||||||
ace->mask = STANDARD_RIGHTS_ALL | FILE_WRITE_ATTRIBUTES |
|
|
||||||
FILE_LIST_DIRECTORY | FILE_WRITE_DATA |
|
|
||||||
FILE_ADD_SUBDIRECTORY | FILE_READ_EA | FILE_WRITE_EA |
|
|
||||||
FILE_TRAVERSE | FILE_DELETE_CHILD |
|
|
||||||
FILE_READ_ATTRIBUTES;
|
|
||||||
ace->sid.revision = 0x01;
|
|
||||||
ace->sid.sub_authority_count = 0x01;
|
|
||||||
// SECURITY_NT_SID_AUTHORITY (S-1-5)
|
|
||||||
ace->sid.identifier_authority.value[0] = 0;
|
|
||||||
ace->sid.identifier_authority.value[1] = 0;
|
|
||||||
ace->sid.identifier_authority.value[2] = 0;
|
|
||||||
ace->sid.identifier_authority.value[3] = 0;
|
|
||||||
ace->sid.identifier_authority.value[4] = 0;
|
|
||||||
ace->sid.identifier_authority.value[5] = 5;
|
|
||||||
ace->sid.sub_authority[0] =
|
|
||||||
const_cpu_to_le32(SECURITY_LOCAL_SYSTEM_RID);
|
|
||||||
|
|
||||||
//owner sid
|
|
||||||
sid = (SID*)((char*)sd + le32_to_cpu(sd->owner));
|
|
||||||
sid->revision = 0x01;
|
|
||||||
sid->sub_authority_count = 0x02;
|
|
||||||
// SECURITY_NT_SID_AUTHORITY (S-1-5)
|
|
||||||
sid->identifier_authority.value[0] = 0;
|
|
||||||
sid->identifier_authority.value[1] = 0;
|
|
||||||
sid->identifier_authority.value[2] = 0;
|
|
||||||
sid->identifier_authority.value[3] = 0;
|
|
||||||
sid->identifier_authority.value[4] = 0;
|
|
||||||
sid->identifier_authority.value[5] = 5;
|
|
||||||
sid->sub_authority[0] =
|
|
||||||
const_cpu_to_le32(SECURITY_BUILTIN_DOMAIN_RID);
|
|
||||||
sid->sub_authority[1] =
|
|
||||||
const_cpu_to_le32(DOMAIN_ALIAS_RID_ADMINS);
|
|
||||||
//group sid
|
|
||||||
sid = (SID*)((char*)sd + le32_to_cpu(sd->group));
|
|
||||||
sid->revision = 0x01;
|
|
||||||
sid->sub_authority_count = 0x01;
|
|
||||||
// SECURITY_NT_SID_AUTHORITY (S-1-5)
|
|
||||||
sid->identifier_authority.value[0] = 0;
|
|
||||||
sid->identifier_authority.value[1] = 0;
|
|
||||||
sid->identifier_authority.value[2] = 0;
|
|
||||||
sid->identifier_authority.value[3] = 0;
|
|
||||||
sid->identifier_authority.value[4] = 0;
|
|
||||||
sid->identifier_authority.value[5] = 5;
|
|
||||||
sid->sub_authority[0] =
|
|
||||||
const_cpu_to_le32(SECURITY_LOCAL_SYSTEM_RID);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* security descriptor #4
|
|
||||||
*/
|
|
||||||
//header
|
|
||||||
sds = (SECURITY_DESCRIPTOR_HEADER*)((char*)sd_val + 0x80 + 0x80 + 0x60);
|
|
||||||
sds->hash = const_cpu_to_le32(0x453F0A2E);
|
|
||||||
sds->security_id = const_cpu_to_le32(0x0103);
|
|
||||||
sds->offset = const_cpu_to_le64(0x0160);
|
|
||||||
sds->length = const_cpu_to_le32(0x78);
|
|
||||||
|
|
||||||
//security descriptor relative
|
|
||||||
sd = (SECURITY_DESCRIPTOR_RELATIVE*)((char*)sds +
|
|
||||||
sizeof(SECURITY_DESCRIPTOR_HEADER));
|
|
||||||
sd->revision = 0x01;
|
|
||||||
sd->alignment = 0x00;
|
|
||||||
sd->control = SE_SELF_RELATIVE | SE_DACL_PRESENT;
|
|
||||||
sd->owner = const_cpu_to_le32(0x48);
|
|
||||||
sd->group = const_cpu_to_le32(0x58);
|
|
||||||
sd->sacl = const_cpu_to_le32(0x00);
|
|
||||||
sd->dacl = const_cpu_to_le32(0x14);
|
|
||||||
|
|
||||||
//acl
|
|
||||||
acl = (ACL*)((char*)sd + sizeof(SECURITY_DESCRIPTOR_RELATIVE));
|
|
||||||
acl->revision = 0x02;
|
|
||||||
acl->alignment1 = 0x00;
|
|
||||||
acl->size = const_cpu_to_le16(0x34);
|
|
||||||
acl->ace_count = const_cpu_to_le16(0x02);
|
|
||||||
acl->alignment2 = 0x00;
|
|
||||||
|
|
||||||
//ace1
|
|
||||||
ace = (ACCESS_ALLOWED_ACE*)((char*)acl + sizeof(ACL));
|
|
||||||
ace->type = 0x00;
|
|
||||||
ace->flags = 0x00;
|
|
||||||
ace->size = const_cpu_to_le16(0x18);
|
|
||||||
ace->mask = STANDARD_RIGHTS_ALL | FILE_WRITE_ATTRIBUTES |
|
|
||||||
FILE_LIST_DIRECTORY | FILE_WRITE_DATA |
|
|
||||||
FILE_ADD_SUBDIRECTORY | FILE_READ_EA | FILE_WRITE_EA |
|
|
||||||
FILE_TRAVERSE | FILE_DELETE_CHILD |
|
|
||||||
FILE_READ_ATTRIBUTES;
|
|
||||||
ace->sid.revision = 0x01;
|
|
||||||
ace->sid.sub_authority_count = 0x02;
|
|
||||||
// SECURITY_NT_SID_AUTHORITY (S-1-5)
|
|
||||||
ace->sid.identifier_authority.value[0] = 0;
|
|
||||||
ace->sid.identifier_authority.value[1] = 0;
|
|
||||||
ace->sid.identifier_authority.value[2] = 0;
|
|
||||||
ace->sid.identifier_authority.value[3] = 0;
|
|
||||||
ace->sid.identifier_authority.value[4] = 0;
|
|
||||||
ace->sid.identifier_authority.value[5] = 5;
|
|
||||||
ace->sid.sub_authority[0] =
|
|
||||||
const_cpu_to_le32(SECURITY_BUILTIN_DOMAIN_RID);
|
|
||||||
ace->sid.sub_authority[1] =
|
|
||||||
const_cpu_to_le32(DOMAIN_ALIAS_RID_ADMINS);
|
|
||||||
//ace2
|
|
||||||
ace = (ACCESS_ALLOWED_ACE*)((char*)ace + le16_to_cpu(ace->size));
|
|
||||||
ace->type = 0x00;
|
|
||||||
ace->flags = 0x00;
|
|
||||||
ace->size = const_cpu_to_le16(0x14);
|
|
||||||
ace->mask = STANDARD_RIGHTS_ALL | FILE_WRITE_ATTRIBUTES |
|
|
||||||
FILE_LIST_DIRECTORY | FILE_WRITE_DATA |
|
|
||||||
FILE_ADD_SUBDIRECTORY | FILE_READ_EA | FILE_WRITE_EA |
|
|
||||||
FILE_TRAVERSE | FILE_DELETE_CHILD |
|
|
||||||
FILE_READ_ATTRIBUTES;
|
|
||||||
ace->sid.revision = 0x01;
|
|
||||||
ace->sid.sub_authority_count = 0x01;
|
|
||||||
/* SECURITY_NT_SID_AUTHORITY (S-1-5) */
|
|
||||||
ace->sid.identifier_authority.value[0] = 0;
|
|
||||||
ace->sid.identifier_authority.value[1] = 0;
|
|
||||||
ace->sid.identifier_authority.value[2] = 0;
|
|
||||||
ace->sid.identifier_authority.value[3] = 0;
|
|
||||||
ace->sid.identifier_authority.value[4] = 0;
|
|
||||||
ace->sid.identifier_authority.value[5] = 5;
|
|
||||||
ace->sid.sub_authority[0] =
|
|
||||||
const_cpu_to_le32(SECURITY_LOCAL_SYSTEM_RID);
|
|
||||||
|
|
||||||
//owner sid
|
|
||||||
sid = (SID*)((char*)sd + le32_to_cpu(sd->owner));
|
|
||||||
sid->revision = 0x01;
|
|
||||||
sid->sub_authority_count = 0x02;
|
|
||||||
// SECURITY_NT_SID_AUTHORITY (S-1-5)
|
|
||||||
sid->identifier_authority.value[0] = 0;
|
|
||||||
sid->identifier_authority.value[1] = 0;
|
|
||||||
sid->identifier_authority.value[2] = 0;
|
|
||||||
sid->identifier_authority.value[3] = 0;
|
|
||||||
sid->identifier_authority.value[4] = 0;
|
|
||||||
sid->identifier_authority.value[5] = 5;
|
|
||||||
sid->sub_authority[0] =
|
|
||||||
const_cpu_to_le32(SECURITY_BUILTIN_DOMAIN_RID);
|
|
||||||
sid->sub_authority[1] =
|
|
||||||
const_cpu_to_le32(DOMAIN_ALIAS_RID_ADMINS);
|
|
||||||
|
|
||||||
//group sid
|
|
||||||
sid = (SID*)((char*)sd + le32_to_cpu(sd->group));
|
|
||||||
sid->revision = 0x01;
|
|
||||||
sid->sub_authority_count = 0x01;
|
|
||||||
// SECURITY_NT_SID_AUTHORITY (S-1-5)
|
|
||||||
sid->identifier_authority.value[0] = 0;
|
|
||||||
sid->identifier_authority.value[1] = 0;
|
|
||||||
sid->identifier_authority.value[2] = 0;
|
|
||||||
sid->identifier_authority.value[3] = 0;
|
|
||||||
sid->identifier_authority.value[4] = 0;
|
|
||||||
sid->identifier_authority.value[5] = 5;
|
|
||||||
sid->sub_authority[0] =
|
|
||||||
const_cpu_to_le32(SECURITY_LOCAL_SYSTEM_RID);
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -5,7 +5,6 @@
|
|||||||
|
|
||||||
void init_system_file_sd(int sys_file_no, u8 **sd_val, int *sd_val_len);
|
void init_system_file_sd(int sys_file_no, u8 **sd_val, int *sd_val_len);
|
||||||
void init_root_sd_31(u8 **sd_val, int *sd_val_len);
|
void init_root_sd_31(u8 **sd_val, int *sd_val_len);
|
||||||
void init_secure_30(char *sd_val);
|
|
||||||
void init_secure_31(char *sd_val);
|
void init_secure_31(char *sd_val);
|
||||||
|
|
||||||
#endif /* _NTFS_SD_H_ */
|
#endif /* _NTFS_SD_H_ */
|
||||||
|
Loading…
Reference in New Issue
Block a user