35 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
<sect1 id="using-filemodes"><title>File permissions</title>
 | 
						|
 | 
						|
<para>On Windows 9x systems, files are always readable, and Cygwin uses the
 | 
						|
native read-only mode to determine if they are writable. Files are
 | 
						|
considered to be executable if the filename ends with .bat, .com or .exe, or
 | 
						|
if its content starts with #!. Consequently <command>chmod</command> can
 | 
						|
only affect the "w" mode, it silently ignores actions involving the other
 | 
						|
modes.  This means that <command>ls -l</command>
 | 
						|
needs to open and read files. It can thus be relatively slow.</para>
 | 
						|
 | 
						|
<para>Under NT, file permissions default to the same behavior as Windows
 | 
						|
9x but there is optional functionality in Cygwin that can make file
 | 
						|
systems behave more like on UNIX systems.  This is turned on by adding
 | 
						|
the "ntea" option to the <envar>CYGWIN</envar> environment variable.</para>
 | 
						|
 | 
						|
<para>When the "ntea" feature is activated, Cygwin will start with basic
 | 
						|
permissions as determined above, but can store POSIX file permissions in NT
 | 
						|
Extended Attributes.  This feature works quite well on NTFS partitions
 | 
						|
because the attributes can be stored sensibly inside the normal NTFS
 | 
						|
filesystem structure.  However, on a FAT partition, NT stores extended
 | 
						|
attributes in a flat file at the root of the partition called <filename>EA
 | 
						|
DATA. SF</filename>.  This file can grow to extremely large sizes if you
 | 
						|
have a large number of files on the partition in question, slowing the
 | 
						|
system to a crawl.  In addition, the <filename>EA DATA. SF</filename> file
 | 
						|
can only be deleted outside of Windows because of its "in use" status.  For
 | 
						|
these reasons, the use of NT Extended Attributes is off by default in
 | 
						|
Cygwin.  Finally, note that specifying "ntea" in <envar>CYGWIN</envar> has no
 | 
						|
effect under Windows 9x. </para>
 | 
						|
 | 
						|
<para>Under NT, the test "[ -w filename]" is only true if filename is
 | 
						|
writable across the board, e.g. <command>chmod +w filename</command>. </para>
 | 
						|
 | 
						|
</sect1>
 | 
						|
 |