Providing a Lino server¶
A Lino server is a virtual or physical machine used to run one or several Lino sites. It must have a Linux operating system and be connected to a network. A server provider is responsible for installing and maintaining that machine.
The server provider holds root access to the server and creates user accounts with sudo rights for each site maintainer. He configures secure remote shell access (SSH) to that machine for each site maintainer. He is not responsible for installing and maintaining specific system packages, Lino source code and configuration (these are the job of the site maintainers).
We recommend a stable Debian as operating system. Currently this means Debian 10 "Buster".
You need at least 10 GB of disk space. You can see how much disk space you have by saying:
$ df -h
You need at least 2GB of RAM. How to see how much memory you have:
$ free -h
The system should have installed the sudo package:
# apt-get install sudo
Creating a system user¶
Create a user account for a site maintainer, e.g.
# adduser joe
Agree upon a password with the maintainer who is going to use this account. The
maintainer can later change their password using
Site maintainers must be members of the sudo and www-data groups:
# adduser joe sudo # adduser joe www-data
Note that useradd is a native binary compiled with the system, while adduser is a perl script which uses useradd in back-end.
All maintainers must have a umask 002 or 007 (not 022 or 077 as is the default value).
Edit the file
/etc/bash.bashrc (site-wide for all users):
# nano /etc/bash.bashrc
And add the following line at the end:
umask command is used to mask (disable) certain file permissions from
any new file created by a given user. See The umask command for more detailed
Finally the server provider must grant SSH access to that new account
by creating the user's
.ssh/authorized_keys file with the
maintainer's public ssh key:
# su - joe $ mkdir .ssh $ chmod 700 .ssh $ touch .ssh/authorized_keys $ chmod 600 .ssh/authorized_keys $ cat >> .ssh/authorized_keys
Paste the maintainer's public key to the terminal. Press ENTER to add at least one newline. Press Ctrl+D to say you're finished with pasting content.
Note that the
.ssh directory should have permissions set to
restrict access so that only the owner can read, write, or open it.
Every server has a "hostname", a relatively short "nickname" to designate it. The hostname is not the same as the FQDN.
How to change the hostname of a Lino server:
$ sudo hostnamectl set-hostname newname
If you use mailutils, you must also check
If that file doesn't exist, try:
$ mail --show-config-options | grep SYSCONFDIR SYSCONFDIR=/etc - System configuration directory
Which means that actually the config files are in
/etc/main. And one of
/etc/mail/local-host-names contains my default