KCALDAV.PASSWD(1) General Commands Manual KCALDAV.PASSWD(1)

kcaldav.passwdchange kcaldav principal information

kcaldav.passwd [-Cnv] [-d collection] [-e email] [-f caldir] [-u principal] [resource...]

Updates database entries for kcaldav(8) principals. Its arguments are as follows:

Create a new principal with an initial collection "calendar". The e-mail address is the principal's name at the current host (see hostname(1)) or "localhost" if there's no system-wide hostname set.
Do not change the principal's password: only change attributes (such as with -e). Ignored if used with -C.
collection
Add a collection for the principal, doing nothing if the collection already exists. If used with -C, sets the initial collection.
email
Set the principal's e-mail address.
caldir
The database directory.
principal
The principal to look up in the database.
Verbose. Shows underlying database operations.
resource...
A list of resources to add to the collection of -d or "calendar" by default. The name of each resource is set from its filename component.

By default, the password is changed for the principal matching the logged-in user (see logname(1)). The database kcaldav.db is looked for in /var/www/caldav.

If the database is created with -C, its owner is set to the current real user. If the database exists and -C or -u is used, the current real user (via getuid(2)) must match the database owner or be root.

The database must be read-writable by the web server.

The kcaldav.passwd utility exits 0 on success, and >0 if an error occurs.

In the simplest case, root creates and maintains the database. Assuming the database is in /var/www/caldav:

# kcaldav.passwd -Cu kristaps
New password: *********
Repeat new password: *********

After this time, the user "kristaps" can access their default calendar "calendar".

To have the database modifiable by local users, use a dummy "kcaldav" user owning the file and creating new users. Thi assumes that the database doesn't already exist.

# chown _kcaldav /usr/local/bin/kcaldav.passwd
# chmod u+s /usr/local/bin/kcaldav.passwd
# doas -u _kcaldav kcaldav.passwd -Cu kristaps
New password: *********
Repeat new password: *********

The user may then set their password:

% kcaldav.passwd -ne kristaps@bsd.lv

Or add calendars:

% kcaldav.passwd -nd newcalendar
% kcaldav.passwd -nd secondcalendar

To add resources to a new or existing calendar:

% kcaldav.passwd -nd newcalendar file1.ics file2.ics

kcaldav(8)

November 26, 2023 OpenBSD 7.4