
La idea és que necessite que un usuari puga accedir a un directori del servidor on li deixaré uns fitxers que podrà modificar i descarregar, però no vull que puga navegar en altres directoris.
Aleshores, vull crear-li un entorn chroot i llevar-li l'accès a la shell per a que no puga fer SSH> i mirar coses de la màquina. Nomès vull que estiga en el seu directori, que tinga ahí dins tots els permissos però que no puga eixir.
Aleshores, comencem. Primer de tot, crearem un nou grup anomenat usuariscp editant manualment /etc/group. Haurem d'escriure el nom del grup:*:número_de_GID:, però el GID ha de tindre un valor únic.
Per a veure els números de GID utilitzats actualment, farem:
cut -d: -f3 /etc/group
Jo he afegit:
usuariscp:*:81:
Ara crearem un usuari amb adduser, com fem normalment a OpenBSD, i li direm que no tinga shell (nologin), i que el seu directori arrel d'usuari serà la ruta on tinc allotjada la web en la que anem a treballar que està en la ruta /usr/local/www/eclipsecastellon.net.
# doas adduser jordi
Username: jordi
Full name: jordi
Uid (Leave empty for default):
Login group [jordi]: usuariscp
Login group is usuariscp. Invite jordi into other groups? []:
Login class [default]:
Shell (sh csh tcsh bash rbash nologin) [sh]: nologin
Home directory [/home/jordi]:
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username : jordi
Password : *****
Full Name : jordi
Uid : 1003
Class :
Groups : usuariscp
Home : /home/jordi
Home Mode :
Shell : /usr/sbin/nologin
Locked : no
OK? (yes/no): yes
adduser: INFO: Successfully added (jordi) to the user database.
Add another user? (yes/no): no
Goodbye!
Ara, per a crear l'usuari dins del chroot on podrà accedir des de scp, editarem el fitxer de configuració /etc/ssh/sshd_config i afegirem al final del fitxer la següent configuració, on li diem la ruta dle chroot i que podrà accedir amb el protocol sftp:
Match User jordi
ChrootDirectory /home/jordi
ForceCommand internal-sftp
AllowTCPForwarding no
X11Forwarding no
Reiniciarem el servir d'SSH:
$ doas service sshd restart
Performing sanity check on sshd configuration.
Stopping sshd.
Waiting for PIDS: 1265.
Performing sanity check on sshd configuration.
Starting sshd.
$
El propietari del directori que anem a ficar dins del chroot ha de ser obligatòriamente el root, aleshores farem:
doas chown root /home/jordi
doas chmod 755 /home/jordi
Ara l'usuari ja pot accedir, amb SCP, i crear o esborrar carpetes i fitxers, però no pdrà eixir de /home/jordi i no podrà veure cap altre document del sistema.