Setting Up

Documentation / Contents - CyLogin

Setting Up

You need built binaries under PREFIX (usually /usr/local), then cylogin-enable to seed conf/PAM/init and claim the seat. There is no GUI setup panel; enable is CLI on purpose so headless and classroom boxes work the same way.

Day-to-day greeter clicks are in Using CyLogin. Every helper flag is in Enable and Disable Helpers.

What You Need

Build and Install

From a Blueprint tree:

./configure --prefix=/usr/local --with-pam
make
sudo make install

Confirm:

cylogind --version
cylogin-greeter --version
ls -l /usr/local/bin/cylogin-authcheck
which cylogin-enable

make install as root seeds missing /etc/cyanotype pieces and may install /etc/init.d/cylogind or /etc/rc.d/cylogind. It does not claim the seat or stop LightDM. That is what cylogin-enable --yes is for.

Enable With the Helper

Always dry-run first:

cylogin-enable --dry-run

Then as root:

sudo cylogin-enable --yes

That does, in order:

1. fix-privs (setuid authcheck; mkdir runtime dirs; check nobody) 2. install /etc/pam.d/cylogin if missing (Linux only; OS-picked sample) 3. seed /etc/cyanotype conf/Xservers/Xaccess/hooks when absent 4. install SysV or NetBSD rc.d; write default-display-manager on Linux 5. stop/disable competing DMs (lightdm, gdm, slim, xdm, sddm, kdm) 6. start cylogind when Xorg and a usable seat (or dummy) are present

Staged pieces without claiming the live seat:

sudo cylogin-enable --fix-privs
sudo cylogin-enable --install-pam
sudo cylogin-enable --seed-conf

See Enable and Disable Helpers for every flag.

Linux SysV and systemd

On Devuan/Debian/Ubuntu-style systems the helper installs:

/etc/init.d/cylogind
/etc/default/cylogind   (if missing)
update-rc.d cylogind defaults   (when available)

On systemd hosts the SysV unit is generated; systemctl enable/start cylogind still works through that compatibility path. RHEL-family uses chkconfig or systemctl when update-rc.d is absent. The init script uses portable start/stop (start-stop-daemon when present, else pidfile).

NetBSD rc.d

On NetBSD (wedge and friends):

/etc/rc.d/cylogind          mode 555
cylogind=YES in /etc/rc.conf   (helper appends if missing)
/etc/rc.d/cylogind onestart

No PAM zoo. Auth is native crypt against master.passwd. Xservers comes from Xservers.netbsd.sample (/usr/X11R7/bin/Xorg, no Linux vtN).

Full enable on a twin that already runs auto_login on :0 needs an explicit plan; prefer --dry-run there until you mean to displace Slim.

PAM Service File

Linux builds with --with-pam need:

/etc/pam.d/cylogin

Samples:

cylogin-enable picks by /etc/os-release. Never overwrites an existing file unless you pass --force-pam. Missing service fails closed when PAM was compiled in. Policy knobs in cylogin.conf still apply after PAM success. Details: Security and PAM.

Xservers and VT

/etc/cyanotype/Xservers

Do NOT put -auth on the server line; cylogind appends it. Enable seeds a live line from the real Xorg path when possible:

:0 local /usr/lib/xorg/Xorg :0 vt07

If /dev/tty0 (and tty7) are absent (typical container), vtN is omitted so Xorg is not handed a console that does not exist:

:0 local /usr/lib/xorg/Xorg :0

Stock samples remain under share for hand edits. --force-conf rewrites live Xservers from the helper's detected path.

Headless and LXC

Unprivileged LXCs often have Xorg installed but no /dev/dri, /dev/fb0, or /dev/tty0. Bare Xorg then exits with "no screens found" and an old cylogind would respawn forever.

Enable now:

Lab install of the driver (admin step, like installing Xorg itself):

# Debian/Ubuntu/Devuan
apt install xserver-xorg-video-dummy
# RHEL/Rocky/Alma
dnf install xorg-x11-drv-dummy

Then re-run enable (or --seed-conf --force-conf and start). Do not hard-require dummy on real consoles; Suggest/Recommend it for lab CTs in packaging. See Troubleshooting.

Competing Display Managers

On Linux, enable stops and disables slim, lightdm, gdm3, gdm, kdm, xdm, and sddm when present (SysV and/or systemd). It saves the previous /etc/X11/default-display-manager path under /var/lib/cyanotype/enable-state/ before pointing that file at cylogind.

On NetBSD it stops /etc/rc.d/xdm when present and warns if xdm=YES is still in rc.conf.

Check That It Works

pgrep -a cylogind
pgrep -a Xorg
pgrep -a cylogin-greeter
ls -ld /var/lib/cyanotype/authdir
ls -l /var/lib/cyanotype/authdir/
test -f /etc/pam.d/cylogin && echo pam_ok   # Linux

Greeter should run as nobody (or greeter_user). Cookies 0600; authdir 0711. On a real seat you should see the face grid (or typed login).

PAM matrix tool in the tree (lab):

tools/cylogin-pam-matrix.sh

Disable and Rollback

sudo cylogin-disable --dry-run
sudo cylogin-disable --yes

Stops cylogind and best-effort restores the previous default-display-manager path. Does not delete /etc/cyanotype conf or remove PAM. Lab CTs with a dated pct snapshot can roll the whole CT back instead.

Common Mistakes

Cyanotype Project. Blueprint Desktop. BSD 2-clause. Not affiliated with Silicon Graphics. SGI, IRIX, and Indigo Magic belong to their owners. 1.0 is aimed at 31 October 2026.