> On Tue, Jun 28, 2005 at 03:24:51PM +0100, Clayton, Nik wrote:
> >     user_ok(name => 'nik', uid => 1000, shell => '/bin/tcsh',
> >             'Check nik\'s account');
> 
> My only thought is I would use a hash ref.
> 
>       user_ok( { name => 'nik', uid => 1000, shell => '/bin/tcsh' },
>                "Check nik's account" );
> 
> Just to make it a bit clearer what's going on.  A hash followed by a 
> scalar as an argument list is a little weird.

Ye-es.  I'm um-ing and ah-ing about that at the moment.

> > homedir_ok() verifies that the home directory for the given
> > user exists, is owned/group owned by that user, and has a given 
> > set of permissions.
> > 
> >     homedir_ok(name => nik, uid => 1000, gid => 1000, perm => 0755,
> >                'Check nik\'s home directory');
> 
> Is it necessary to tell homedir_ok() what the proper uid and 
> gid is?  Can't it figure it out from the name?  In fact, wouldn't that
> be more robust since the uid/gid on the system might change but the name 
> will stay the same.

homedir_ok() needs the option, as it's possible that a user's home directory
might not be owned by the given owner or group (we have accounts like that
here... yeah, I know).

uid and gid could probably be made smart.  If the value =~ /^\d+$/ then use
that, otherwise do getpwnam()/getgrnam() to determine the correct value.

Any concerns about the namespace?  I thought perhaps

   Test::Unix::User
   Test::Unix::Group

might be better, but I'm open to suggestions.

N

Reply via email to