Unix attributes shell extension

Gunnar Degnbol 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 
program.


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 
GetSetUnixAttributes() function.

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.


Gunnar




More information about the samba-technical mailing list