Unix attributes shell extension
degnbol at danbbs.dk
Sun Mar 12 22:14:58 GMT 2000
After a discussion with Luke Leighton I have written a Windows shell
extension for changing Unix file attributes.
The shell extension adds a property page with a lot of checkboxes for files
on networked drives (tested with Samba, NT and NetWare 3.20). It does not
do anything yet, but most of the shell extension technicalities are
there. It can be downloaded from http://www.danbbs.dk/software/uae-0.02.zip.
I have defined two RPC functions, GetSetAttributes() and GetSMBPath(), that
are needed for this to work. I am not sure what kind of RPC connection to
make, or where in Samba to put it in. The IDL file is included with the
The GetSetUnixAttributes function is based on the NFS functions GETATTR and
SETATTR, but without the NFSisms. If SetUnixAttributes() returns the old
attributes, and allows attributes (permission, uid etc.) to be set
individually, there is no need for a GetUnixAttributes(), so I have made a
In addition to the information returned by stat(), GetSetUnixAttributes()
can return the user and group names, the unix path and the target of a
symlink (unix filename).
It should be able to set the permissions and the user and group either as
IDs or as names. The context for the IDs/names is supposed to exist in the
users head. It should not be able to create symlinks, nor to move files.
I also put a GetSMBName() function in the IDL file, to convert a unix file
name to a SMB share/pathname. Because of symlinks it is not possible to
make this work for all shared directories, but a function that works in
simple cases (directly below a shared directory) is still useful.
Win2K has some new new shell interfaces, among them IColumnProvider. It
provides extra columns or replaces existing columns in Explorer's detail view.
More information about the samba-technical