You can create users, groups, and i-bays by creating database defaults, or through code. Refer to the useraccounts, groups and ibays panels for examples of how to create these items. You can also create accounts with simple shell scripts.
For example, here is a shell script to create a user (account "abc", name "Albert Collins"):
#!/bin/sh
PATH=/sbin/e-smith:$PATH
if db accounts get abc >/dev/null
then
echo "abc already exists in the accounts database"
db accounts show abc
exit 1
fi
db accounts set abc user PasswordSet no
db accounts setprop abc FirstName Albert
db accounts setprop abc LastName Collins
db accounts setprop abc EmailForward local
signal-event user-create abcNote that we could have provided all of the properties to the set command and created the record in one step. Here's the same example using the Perl libraries
#!/usr/bin/perl -w
use strict;
use warnings;
use esmith::AccountsDB;
my $db = esmith::AccountsDB->open or die "Couldn't open AccountsDB\n";
my $abc = $db->get("abc");
if ($abc)
{
die "abc already exists in the accounts database\n" .
$abc->show . "\n";
}
$db->new_record("abc",
{
type => 'user',
PasswordSet => 'no',
FirstName => 'Albert',
LastName => 'Collins',
EmailForward => 'local',
});
unless ( system("/sbin/e-smith/signal-event", "user-create", "abc") == 0 )
{
die "user-create abc failed\n";
}
exit 0;