index-files-created-as-root
authorDebian OpenLDAP Maintainers <pkg-openldap-devel@lists.alioth.debian.org>
Tue, 17 Nov 2020 01:23:45 +0000 (01:23 +0000)
committerRyan Tandy <ryan@nardis.ca>
Tue, 17 Nov 2020 01:23:45 +0000 (01:23 +0000)
Document in the man page that slapindex should be run as the same user
as slapd, and print a warning if it's run as root (since Debian defaults
to running slapd as openldap).

Not suitable for upstream in this form.  This patch needs to be reworked
to check the BerkeleyDB database ownership and only warn if running as
root with a database that's not owned by root.

Upstream ITS #5356 filed requesting better handling of this.  Current
upstream discussion leans towards putting the check into the database
backend and aborting if slapd is run as a different user than the database
owner, which is an even better fix.

Gbp-Pq: Name index-files-created-as-root

doc/man/man8/slapindex.8
servers/slapd/slapindex.c

index 51c19aceaaaa164290d965d5d0c5c7f2c280a07d..bf280ba92ae1d01a44d74be8b99c8a216738aefc 100644 (file)
@@ -148,6 +148,10 @@ Your
 should not be running (at least, not in read-write
 mode) when you do this to ensure consistency of the database.
 .LP
+slapindex ought to be run as the user specified for
+.BR slapd (8)
+to ensure correct database permissions.
+.LP
 This command provides ample opportunity for the user to obtain
 and drink their favorite beverage.
 .SH EXAMPLES
index fdfdd89c4d60699e4ebc0cadb6ff0eeb14530de6..3d4e267d8785cbbb7b688fe9fcb4c9b2248a4ea5 100644 (file)
@@ -34,6 +34,8 @@
 int
 slapindex( int argc, char **argv )
 {
+    if (geteuid() == 0)
+        fprintf( stderr, "\nWARNING!\nRunnig as root!\nThere's a fair chance slapd will fail to start.\nCheck file permissions!\n\n");
        ID id;
        int rc = EXIT_SUCCESS;
        const char *progname = "slapindex";