Commit Graph

559 Commits

Author SHA1 Message Date
Jean-Pierre André
3103a6c383 Extended Windows-type ACL inheritance, as needed by Windows 8
Windows 8 uses "Authenticated user" principals which needs to be replaced
by the actual owner when inheriting
2012-08-20 12:36:45 +02:00
Jean-Pierre André
4b651b9340 Processed ACLs with no mentioned rights for owner (used by Windows8)
Windows 8 uses ACL patterns in which the owner has only implicit rights
(pattern not used by previous Windows versions)
2012-08-20 12:28:15 +02:00
Jean-Pierre André
7a93d1790a Added processing of SACLs to secaudit on Windows (nickgarvey)
This patch adds the processing of SACLs to secaudit on Windows, but
requested the required privileges.
2012-06-18 12:57:40 +02:00
Jean-Pierre André
0f8ef123ea Added inheritance of the set-group-id flag
So far the set-group-id flag could be set in a chmod. This patch enables
the inheritance of the group to files and subdirectories, and the
inheritance of the set-group-id flag to subdirectories.
2012-06-18 12:53:25 +02:00
Jean-Pierre André
93ac6ce3bf Removed the suggestions to use option remove_hiberfile
The suggestion to use option remove_hiberfile was displayed in the
standard help and when a volume is found dirty. As this option may
lead to loss of data, only mention it in the manual, with a proper
warning.
2012-06-18 12:46:21 +02:00
Jean-Pierre André
8f896f112a Added an optional argument (number of seconds) to the option delay_mtime
The option delay_mtime avoid updating the mtime of a file after each
individual updating. With this patch, the frequency of the update can
be adjusted to needs (default 60s). This is mainly useful for big files
which are kept open for a long period (file system images, virtual
computers, etc.)
2012-06-18 12:34:56 +02:00
Jean-Pierre André
1ad9bdad4d Avoided interpreting UTIME_NOW and UTIME_OMIT from external fuse
UTIME_NOW and UTIME_OMIT are needed for implementing utimensat() and
futimens(2), but they cannot yet be used with external fuse.
This patch is to avoid errors if they cannot be used, even with fuse 4.9
2012-03-21 19:26:00 +01:00
Jean-Pierre André
911ecba5e2 Set the hidden flag according to the latest name when hide_dot_files is set
When the hide_dot_files option is set, a file is marked hidden if the
first character in its name is a dot. This patch updates the hidden flag
when the file is renamed or hard linked (useful for text editors which
create files with a temporary name)
2012-03-21 19:19:39 +01:00
Jean-Pierre André
66416041ec Reverted the workaround for ftruncate() and access(W_OK) on OpenIndiana
The special tests for accepting ftruncate(2) and access(W_OK) applied
to a file being created read-only have been implemented in the fuse
kernel module, so there is no need to duplicate them in the file system.
2012-03-21 18:56:05 +01:00
Jean-Pierre André
319958545e Made sure directories are not hard linked
On OpenIndiana the fuse kernel module does not prevent link(2) from
hard linking directories, so this has to be done in the lowntfs-3g
driver.
2012-03-21 18:48:38 +01:00
Jean-Pierre André
e82240f499 Made sure rmdir is only used for directories, and unlink otherwise
On OpenIndiana the fuse kernel module does not prevent unlink(2)
from deleting directories, nor prevent rmdir(2) from deleting files,
so this has to be done in the lowntfs-3g driver.
2012-03-21 18:42:29 +01:00
Jean-Pierre André
e85d986494 Put the device name as the last option
On OpenIndiana the device names have commas, so put it as the last option
to prevent defeating the options parsing.
2012-01-23 18:00:18 +01:00
Jean-Pierre André
08ad3b4977 Mounted with an absolute mount point on OpenIndiana
OpenIndiana requires that the mount points be defined on a full
absolute patch. Give it what it needs.
2012-01-23 17:56:15 +01:00
Jean-Pierre André
458c5eb191 Worked around write checks for ftruncate() and access(W_OK) on OpenIndiana
When a file is created with no write permissions, ftruncate and
access(W_OK) should be allowed, but this check has to be made by the
file system on OpenIndiana.
This patch is not active on Linux (#ifdef'ed)
2012-01-23 17:49:38 +01:00
Jean-Pierre André
b25178fec3 Strengthened sanity checks on readdir/closedir
Be more defensive against readdir() on closed directories.
2012-01-23 17:45:12 +01:00
Jean-Pierre André
d85675bf6d Returned unmount errors in ntfs-3g.probe (Diego Elio Petteno)
ntfs-3g.probe is used to get information about mounting errors, this
extends the use for unmounting errors.
2012-01-23 17:34:19 +01:00
Jean-Pierre André
528b4303b2 Accepted multiple read-only mounts
Multiple mounts of a partition is now allowed provided they are all
in read-only mode.
2012-01-23 17:31:15 +01:00
Jean-Pierre André
c9edd32113 changed error return for user access to trusted xattr
When a user queries an extended attribute in the trusted namespace,
the traditional error return was EPERM. This has been recently changed
to ENODATA. See https://lkml.org/lkml/2011/5/27/199
2012-01-23 17:25:55 +01:00
Jean-Pierre André
debeb762c1 secaudit : minor : fixed a false memory leak detection 2011-11-10 21:34:39 +01:00
Jean-Pierre André
2fb7a43638 secaudit : prefixed owner and group SID in ACL display 2011-11-10 21:33:06 +01:00
Jean-Pierre André
4629a7af14 manual : Added a warning against checks at boot time
The booting process has recently been changed so that partitions
which are requested to be checked at mount time with no checker
available, cause a specific user interaction while booting.
The patch warns users against requesting such a check, as there
is no known open-source ntfs file system checker.
2011-10-20 19:11:38 +02:00
Jean-Pierre André
59ecea5c80 new : allow compression in default setup
With the default mount options, compression of new files are now done
if the parent directory is marked for compression. The mount option
"compression" is not needed any more, but the option "nocompression"
can be used to disable compression of new files.

The default option also applies to applications using libntfs-3g with
no mount command.
2011-10-20 18:55:32 +02:00
Jean-Pierre André
a7c61d83a7 Defined option delay_mtime to delay updates of mtime+ctime
This patch avoid updating the time stamps whenever a file is modified,
by delaying the time stamps updating until the file is closed.
This is mostly useful when the ntfs file system hosts another loop-monted
file system to avoid frequent updates of the time stamps in the outer
file system.
2011-10-07 11:16:23 +02:00
Jean-Pierre André
9497aa7974 minor : Fixed ntfs_fuse_read() returning garbage in error case (Fabian Keil) 2011-08-04 15:49:35 +02:00
Erik Larsson
fd71e36096 Added a new configure option '--disable-ntfs-3g'.
The binaries 'ntfs-3g', 'lowntfs-3g', 'ntfs-3g.probe' 'ntfs-3g.usermap' and 'ntfs-3g.secaudit' will not be built when this option is passed to 'configure'.

When specifying both '--disable-ntfsprogs' and '--disable-ntfs-3g', only libntfs-3g will be built (no executable binaries).
2011-07-06 19:11:42 +02:00
Jean-Pierre André
d7926f72d0 Provided support for big writes 2011-07-05 12:17:30 +02:00
Jean-Pierre André
5cd49257b0 Removed unneeded variables as warned by gcc 4.6 2011-07-05 12:17:29 +02:00
Jean-Pierre André
2be8e64049 Fixed relatime as a default mount option (had become atime) 2011-07-05 12:17:29 +02:00
Jean-Pierre André
f5433e02a2 Fixed the description of inherit option in the manual 2011-07-05 12:17:28 +02:00
Jean-Pierre André
571dbc5784 Fixed device path canonicalization for use by devmapper (basilinya)
For some reason, when the monted device is "/dev/mapper/*", a record
in the form "/dev/dm-*" ends up in /etc/mtab and the device cannot be
unmounted.

The reason is unclear, the /dev/mapper name is not a symlink, and the
function doing the name change is not known. No detailed feedback from
the users having met the issue.

The patch changes the name back to the /dev/mapper name after realpath()
is called, and, if there is an actual change, both the name passed to
ntfs-3g and the one passed to fuse and mount are logged in the hope
of getting a clue about what is happening.

But ntfs-3g is probably not the right place for a fix.
2011-07-05 12:17:12 +02:00
Jean-Pierre André
259b8ab308 Fixed compilation on OpenIndiana (Apostolos Syropoulos) 2011-07-05 12:17:11 +02:00
Jean-Pierre André
5cd711248b Fixed options parsing on OSes with no extended attributes 2011-07-05 12:17:11 +02:00
Jean-Pierre André
f510c5cdf4 Got the target libs to build libntfs-3g and libfuse-lite if selected 2011-07-05 12:17:11 +02:00
Jean-Pierre André
b492b313f9 Fixed a false detection of bad memory release in secaudit 2011-04-08 18:15:43 +02:00
Szaka
f246d6ce97 Update ntfs-3g.org references 2011-03-27 15:29:48 +03:00
Jean-Pierre André
f219d2e07e Fixed inconsistent interface to ntfs_initialize_file_security()
The "flags" argument of ntfs_initialize_file_security() is intended to
feed the one to ntfs_mount(). Having the same type for both may avoid
future problems.
2011-03-23 09:20:10 +01:00
Jean-Pierre André
3160203c97 Defined option acl to request the use of Posix ACLs 2011-02-08 13:52:12 +01:00
Jean-Pierre André
f55f359f4e Moved global options parsing to ntfs-3g_common.c 2011-02-08 13:52:12 +01:00
Jean-Pierre André
461e9f21b8 Moved mount options parsing to ntfs-3g_common.c 2011-02-08 13:52:12 +01:00
Jean-Pierre André
a46a395006 Updated copyright notices 2011-02-08 13:52:12 +01:00
Jean-Pierre André
bbdfcb017d Restricted listxattr() to environments with extended attributes 2011-02-08 13:52:12 +01:00
Jean-Pierre André
e47734baa9 Denied modifications to metadata files 2011-02-08 13:52:11 +01:00
Jean-Pierre André
9ddc70f19b Moved listxattr() to a specific source module 2011-01-17 15:50:25 +01:00
Jean-Pierre André
cc0cf6901d Added descriptions of options recover/norecover to the manual 2010-12-21 15:50:13 +01:00
Jean-Pierre André
351aec3f7a Enabled renaming of system extended attributes 2010-10-26 08:59:52 +02:00
Jean-Pierre André
f43e972342 Removed obsolete comments 2010-10-26 08:59:52 +02:00
Jean-Pierre André
2f82b18b4b Removed an obsolete debug sequence 2010-10-26 08:59:52 +02:00
Jean-Pierre André
a92c57735b Added an extended attribute name for creation time 2010-10-26 08:59:51 +02:00
Jean-Pierre André
13b578d9b1 Added a big endian extended attribute name for attrib and times 2010-10-26 08:59:51 +02:00
Jean-Pierre André
9c0e3a7b4e Enabled use of fuse cacheing in lowntfs-3g under conditions 2010-10-26 08:59:51 +02:00
Jean-Pierre André
e1ef554dd2 Grouped system extended attributes functions into a dedicated module 2010-10-26 08:59:51 +02:00
Jean-Pierre André
1afaf16912 Implemented the sync mount option 2010-10-26 08:59:51 +02:00
Jean-Pierre André
ecbc2b9103 Implemented fsync() and fsyncdir() 2010-10-26 08:59:51 +02:00
Jean-Pierre André
23aae785c4 Fixed stat(2) for system files with no data 2010-10-25 12:13:28 +02:00
Jean-Pierre André
270b640b99 Fixed adding options -n --no-mtab needed by automount 2010-09-16 18:44:11 +02:00
Jean-Pierre André
9b129fa1dd Added options -n --no-mtab needed by automount 2010-09-16 15:33:03 +02:00
Jean-Pierre André
66b6a9c219 Fixed checking for already mounted device on non-Linux platforms 2010-08-28 14:02:08 +02:00
Jean-Pierre André
a704299aa5 Made miscellaneous clarifications to the ntfs-3g manual 2010-08-28 13:58:29 +02:00
Jean-Pierre André
a75becd7c5 Cancelled the disabling of bmap() in lowntfs-3g 2010-07-22 18:41:36 +02:00
Jean-Pierre André
acccb62f9f Fixed checking for write errors in setxattr() 2010-07-22 15:03:52 +02:00
Jean-Pierre André
04c561a0d1 Fixed checking whether the device is not already mounted 2010-07-22 14:58:10 +02:00
Jean-Pierre André
776117baf3 Fixed processing of options silent and no_def_opts 2010-07-22 14:52:23 +02:00
Jean-Pierre André
09df7eade5 Fixed creating empty encrypted extended attributes 2010-07-22 14:46:01 +02:00
Jean-Pierre André
233bf2929a Removed support of bmap() with external fuse older than 2.8 2010-06-29 19:27:25 +02:00
Jean-Pierre André
0103bcdb60 Fixed use of utimensat() with external fuse older than 2.8 2010-06-29 11:34:14 +02:00
Jean-Pierre André
f2f4e8dc07 Fixed a possible null dereference when creating a stream 2010-06-18 13:59:06 +02:00
Jean-Pierre André
29f760f7e7 renamed option default_permissions to permissions 2010-06-14 14:42:00 +02:00
Jean-Pierre André
4d73c7c4f1 Fixed characters not allowed by Windows in names 2010-06-03 10:13:30 +02:00
Jean-Pierre André
15c4d282ce Enable/disable compression according to option 2010-06-03 10:11:42 +02:00
Jean-Pierre André
1eed61e1a9 enabled downsizing compressed files 2010-05-25 10:29:34 +02:00
Jean-Pierre André
e3537c3376 reversed default for showing/hiding hidden files 2010-05-25 10:18:20 +02:00
Jean-Pierre André
ac070299ac defined an option windows_names to enforce windows names 2010-05-25 10:16:18 +02:00
Jean-Pierre André
693aa8780d enabled case insensitive file names in lowntfs-3g 2010-05-25 10:12:44 +02:00
Jean-Pierre André
81f1de0559 removed duplicated code in lowntfs-3g 2010-05-25 10:06:27 +02:00
Jean-Pierre André
2e86428fc0 redefined a default user mapping (a few changes in mount options) 2010-05-25 10:05:10 +02:00
Jean-Pierre André
3745d0a1e3 marked files whose name has a dot initial as "hidden" if option hide_dot_files 2010-05-25 09:58:36 +02:00
Jean-Pierre André
8ae0ee326a Fixed building secaudit and usermap 2010-05-19 09:05:27 +02:00
Jean-Pierre André
8e98f616dd Temporarily disabled MacOSX features in lowntfs-3g (Erik Larsson) 2010-05-16 08:17:36 +02:00
Jean-Pierre André
02b11579cc fixed wrong flags when uid/gid are forced in mount options 2010-05-12 09:30:08 +02:00
Jean-Pierre André
df8e581464 fixed the condition for executing utime() and utimensat() 2010-04-19 11:10:54 +02:00
Jean-Pierre André
b1c051b768 fixed compiler warnings on OpenSolaris 2010-04-19 11:10:01 +02:00
Jean-Pierre André
3e48b337d8 fixed conditional code for self-test in secaudit 2010-04-19 11:08:54 +02:00
Jean-Pierre André
fcb114502d fixed an error checking when extending a file list in lowntfs-3g 2010-04-19 11:04:13 +02:00
Jean-Pierre André
84c93479d8 fixed a compilation issue with uClibc 2010-04-19 10:53:31 +02:00
Jean-Pierre André
3199d256c9 developped lowntfs-3g a driver variant using the fuse low-level interface 2010-04-19 10:52:45 +02:00
Jean-Pierre André
1bb7443eb6 Fixed setting archive bit on file and alternated data stream creation 2010-02-24 12:08:56 +01:00
Jean-Pierre André
d9f8647ef9 Fixed enabling permissions when no UserMapping file is found 2010-02-17 11:47:14 +01:00
Jean-Pierre André
7449af78ca Fixed an error return in the main mount function 2010-02-17 11:45:39 +01:00
Jean-Pierre André
4c08471932 Extended copyright to 2010 2010-02-17 11:44:13 +01:00
Jean-Pierre André
e4d19093ba #ifdef'ed code which require implementation of extended attributes 2010-02-17 11:43:22 +01:00
Jean-Pierre André
bb80ecc29f Reorganized processing of setattr() to care for all sets of attributes 2010-02-17 11:41:54 +01:00
Jean-Pierre André
43d5dfaf9f Used ntfs timestamp format to avoid loss of precision 2010-02-17 11:39:37 +01:00
Jean-Pierre André
5ef11317f2 Implemented selective timestamp setting for utimensat(2) 2010-02-17 11:36:56 +01:00
szaka
205088a76b update date of manuals 2010-02-06 09:17:06 +00:00
jpandre
d49ac7351c Fixed a bug disabling the Posix ACLs 2010-01-21 18:44:31 +00:00
jpandre
897faa3e54 Set an error code when running unprivileged (Fabian Keil) 2010-01-21 08:11:27 +00:00
jpandre
07ccad8eb6 Escaped difficulties with the diversity of boolean definitions 2010-01-17 09:35:32 +00:00
jpandre
eaf0ecaa8d Fixed compilation of secaudit on OpenSolaris 2010-01-16 18:27:17 +00:00
jpandre
cd8c8a1aa8 Adapted to possible inclusion of stdbool.h (Erik Larsson) 2010-01-16 18:14:46 +00:00
jpandre
c03b68ca8d Used st_[acm]timespec instead of st_[acm]tim on MacOSX (Erik Larsson) 2010-01-16 18:10:33 +00:00
jpandre
31abc47c7c Secured against use of external fuse not patched for UTIME_NOW 2010-01-16 09:35:24 +00:00
jpandre
cac199ebb1 Logged problematic use of uid==0 and gid!=0 2010-01-16 09:29:28 +00:00
jpandre
d78add4e8f Developed time stamping up to 100ns resolution 2010-01-04 08:24:44 +00:00
jpandre
17a629229d Developed selective timestamp setting for utimensat(2) 2009-12-23 14:51:07 +00:00
jpandre
b8a83add46 Ported secaudit to opensolaris 2009-12-19 13:26:56 +00:00
jpandre
d75c254771 Fixed a wrong comment 2009-12-19 09:58:26 +00:00
jpandre
6271663b4e Skip extended attribute related functions when not supported locally 2009-12-19 09:20:59 +00:00
mechie
a27d20247e This commit was manufactured by cvs2svn to create branch
'PERMISSION_HANDLING_BRANCH'.
2009-12-19 08:01:19 +00:00
jpandre
7b802d193c Driver for fuse low-level interface 2009-12-19 08:01:18 +00:00
jpandre
53ba420bda Remove mis-tagged file 2009-12-19 07:46:20 +00:00
jpandre
eb8da77471 Grouped permission mode setting in the parameter file 2009-12-18 10:31:43 +00:00
jpandre
9f92518396 Grouped permission mode setting in the parameter file 2009-12-18 10:31:42 +00:00
jpandre
d9eae2038b Made where permissions are checked easier to select, and logged selection 2009-12-18 09:08:15 +00:00
jpandre
5263033f85 Implemented low-level interface to fuse 2009-12-18 08:43:44 +00:00
jpandre
d75f69d80e Cached inode data for subsequent use 2009-12-18 08:12:23 +00:00
jpandre
c1adbc1787 Implemented getting/setting/removing object ids 2009-12-17 09:07:56 +00:00
jpandre
d990f7996c Changed the interfaces to use extended attributes 2009-12-17 08:24:13 +00:00
jpandre
9cad01c628 Fixed the return code for the restore function of secaudit 2009-12-16 11:44:44 +00:00
jpandre
2f8ced2ddd Kept junctions points absolute or relative as specified 2009-12-15 09:25:36 +00:00
jpandre
c5c51ec1fe Simplified interfaces for checking permissions 2009-12-14 17:23:12 +00:00
jpandre
758a99ea87 Avoided double copy of dir when closing a file in an open dir 2009-12-10 10:04:53 +00:00
jpandre
91a3909048 Concealed the unused parameters in usermap 2009-12-10 08:51:25 +00:00
jpandre
b32bbcf48a Worked around "const" possibly redefined in config.h 2009-12-10 08:46:30 +00:00
jpandre
a9fdd65cd4 Replace <attr/xattr.h> by <sys/xattr.h> from glibc 2009-12-10 08:45:02 +00:00
jpandre
38d77ef0dc Added device_io.c and secaudit.h for "make dist" (Erik Larsson) 2009-12-01 15:22:29 +00:00
jpandre
2d05631ad1 Fixed renaming to same inode 2009-11-26 13:30:14 +00:00
jpandre
ad25d7a0ac Applied patches for Mac OS X (Erik Larsson) 2009-11-18 16:37:15 +00:00
szaka
3e2102ee36 update manuals 2009-11-13 19:36:22 +00:00
szaka
80f3a5885a install ntfs-3g.usermap and ntfs-3g.secaudit manual pages 2009-11-13 19:35:57 +00:00
szaka
8911ad93e1 ntfs-3g. prefix secaudit and usermapping to avoid potential name conflicts 2009-11-13 19:04:48 +00:00
szaka
bf08272b88 Update manual date 2009-11-13 18:29:13 +00:00
jpandre
eb3ec90d80 OS X: implement setchgtime(), it fixes Firefox errors (Erik Larsson) 2009-11-05 11:48:27 +00:00
jpandre
3af7bebe7b Mac OS X Unicode normalization form conversion (Erik Larsson) 2009-11-05 11:40:44 +00:00
jpandre
63ef915ed5 ntfs_fuse_filler: truncate too large filenames on OS X (Erik Larsson) 2009-11-05 11:27:10 +00:00
jpandre
79cc70f23c fix passing buffer after partial read/write (Jean-Pierre Andre, Szabolcs Szakacsits) 2009-11-05 11:24:39 +00:00
jpandre
ad69474a5a Allowed security descriptors up to 64K in secaudit 2009-11-03 14:27:57 +00:00
jpandre
12bfcc5f93 Removed obsolete debugging code 2009-11-03 14:25:00 +00:00
jpandre
2b6ea3b392 Accepted ACL_REVISION_DS as a valid ACL revision in secaudit 2009-11-03 14:21:08 +00:00
jpandre
65731ee9c3 Added option "efs_raw" to the manual 2009-11-01 17:43:59 +00:00
jpandre
0226f08a5e Created a manual entry for usermap 2009-10-28 15:19:14 +00:00
jpandre
a39bd05923 Warned against using the locale option in the ntfs-3g manual 2009-10-28 15:16:32 +00:00
jpandre
bd6abd39de Reinserted the description of option allow_other in the ntfs-3g manual 2009-10-28 15:15:28 +00:00
jpandre
54539d14a2 Added manual for secaudit 2009-10-19 08:22:52 +00:00
jpandre
6afa1ed6c4 Updated documentation files to describe features added in ntfs-3g.2009.10.5-RC 2009-10-14 10:22:30 +00:00
szaka
a9b7c5f91b remove unused util.h and util.c 2009-10-04 02:09:08 +00:00
szaka
1e1dadd38d merge ntfs-3g.probe updates from HEAD 2009-10-04 02:08:26 +00:00
szaka
c49ae0afb0 add secaudit and usermap utilities 2009-10-04 01:50:28 +00:00
jpandre
f0ea07fdf3 Fixed ownership of mount point on non-Linux 2009-09-18 19:53:38 +00:00
jpandre
61f7084020 Fixed avoidance of a double opening of an inode in create() 2009-09-18 19:51:10 +00:00
jpandre
12437acea9 Avoided a double opening of an inode in create() 2009-09-18 16:31:46 +00:00