Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 1 Mar 2006 18:22:39 +0000 (GMT)
From:      Robert Watson <rwatson@FreeBSD.org>
To:        Mark Day <mday@apple.com>
Cc:        freebsd-fs@freebsd.org
Subject:   Re: Add a file flag for "hidden" files?
Message-ID:  <20060301182001.W40707@fledge.watson.org>
In-Reply-To: <DBD69E00-A9CB-45BA-8398-2A662D18D781@apple.com>
References:  <DBD69E00-A9CB-45BA-8398-2A662D18D781@apple.com>

next in thread | previous in thread | raw e-mail | index | archive | help

On Wed, 1 Mar 2006, Mark Day wrote:

> I could certainly provide patches to FreeBSD for the headers, FAT, NTFS, and 
> probably HFS.  The strtofflags(3) and fflagstostr(3) functions should also 
> change so you can get at the flag bit via ls(1), find(1), chflags(1), etc.; 
> I think I could provide that patch, too.  (I've never actually used FreeBSD, 
> so it will take me a bit of time to get it installed, find my way around the 
> sources, make and test the changes.)

I don't see any problem with this.  The only flag I know of in FreeBSD that 
might not appear in Mac OS X is the system snapshot flag, which was added to 
UFS after Apple forked from the FreeBSD source.  You can find current flag 
allocation here:

   http://fxr.watson.org/fxr/source/sys/stat.h

274 /*
275  * Definitions of flags stored in file flags word.
276  *
277  * Super-user and owner changeable flags.
278  */
279 #define UF_SETTABLE     0x0000ffff      /* mask of owner changeable flags 
*/
280 #define UF_NODUMP       0x00000001      /* do not dump file */
281 #define UF_IMMUTABLE    0x00000002      /* file may not be changed */
282 #define UF_APPEND       0x00000004      /* writes to file may only append 
*/
283 #define UF_OPAQUE       0x00000008      /* directory is opaque wrt. union 
*/
284 #define UF_NOUNLINK     0x00000010      /* file may not be removed or 
renamed */
285 /*
286  * Super-user changeable flags.
287  */
288 #define SF_SETTABLE     0xffff0000      /* mask of superuser changeable 
flags */
289 #define SF_ARCHIVED     0x00010000      /* file is archived */
290 #define SF_IMMUTABLE    0x00020000      /* file may not be changed */
291 #define SF_APPEND       0x00040000      /* writes to file may only append 
*/
292 #define SF_NOUNLINK     0x00100000      /* file may not be removed or 
renamed */
293 #define SF_SNAPSHOT     0x00200000      /* snapshot inode */

We have talked about adding a flag to hint the presence of extended ACL data 
also, so that applications know if they should rely solely on stat() for 
protection information, or also call acl_get_{fd,file,link}() to receive 
extended ACL data for ls(1) output.  Is your plan to mask hidden files solely 
in user space, or to look at masking it in kernel also?

Robert N M Watson



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060301182001.W40707>