Sunteți pe pagina 1din 15

1 Administrando usuarios y grupos

En este capítulo verás como agregar cuentas de usuario al servidor Ubuntu, actualizar usuarios
existentes y establecer permisos para los usuarios. Cómo conocer la configuracion para los
nuevos usuario y como cambiarlos. También veremos algo de seguridad con ssh y profiles.

1.1 Creando una cuenta de usuario


Mientras se instalaba ubuntu, agregamos una cuenta de usuario primary en le servidor, el
usuario ùnico es suficiente para realizer todas la tareas en el servidor. Hay ocasiones cuando
necesitas crear màs usuarios restrictivos.

Vamos
Necesitas privilegios de super usuario o root para agregar un nuevo usuario al servidor
Ubuntu.

Cómo lo hago?…
Sigue los siguientes paso para crear una cuenta de usuario:

1. Para agregar un nuevo usuario sigue los siguientes pasos en tu shell:


$ sudo adduser bob

2. Ingresa con tu contraseña para obtener privilegios de sudo:

3. Ahora ingresa una contraseña para el usuario:

4. confirmer la contraseña para el nuevo usuario:


5. Ingrese el nombre completo y otra informacion sobre el nuevo usuario, puedes saltar esta
parte presionando Enter.

6. Ingrese Y para confirmer que la información es correcta:

7. Esto debe agregar un nuevo usuario al Sistema . Puedes confirmer esto viendo en le
archive /etc/passwd:

Como funciona esto…


En los sistemas Linux, el comando adduser es un commando de alto nivel para agregar un
usuario rapidamente al sistema. Dado que adduser require privilegios de root necesitamos
usar sudo junto con el comando, adduser para completer la operacion:

1. Agrega un nuevo usuario.

2. Agrega un nuevo grupo por defecto con le nombre del usuario.

3. Elige UID (user ID) and GID (group ID) conforme a las politicas de Debian.
4. Crea un directorio home (template) a partir de /etc/skel.

5. Crea una contraseña para el nuevo usuario

6. Corre el script de usuario si hay.

Si quieres salta el prompt de contraseña y manejar esta jinformacion mientras adicionas al


nuevo usuario usa el siguiente comando:
$ sudo adduser --disabled-password --gecos "" username

Alternativamente puedes usar el comando useradd como sigue:


$ sudo useradd -s <SHELL> -m -d <HomeDir> -g <Group> UserName

Donde:
 -s Espedifica el shell donde se logueará el usuario
 -d establece el directorio home para el usuario
 -m crea un directorio home di no existe uno aun
 -g specifica el grupo por defecto

Crear el usuario con el commando useradd no establece la contraseña para la cuenta.

Puedes cambiar la contraseña con el siguiente comando:


$sudo passwd bob

Esto cambia la contraseña para la cuenta del usuario bob.

Observa que si saltas la parte del nombre de usuario en el commando


anterior terminarás cambiando la contraseña de la cuenta de root.

que más…
Con adduser, puedes hacer diferentes tareas:

 Agregar un usuario normal


 Agregar un usuario del Sistema con la opción system
 Agregar un grupo con la opción --group y con la opción --system
 Agregar un grupo system cuando se usa la opción --system
 Agregar un usuario existente para un grupo existente

Revisa la página del manual man adduser para obtener más detalles.

También puedes configurar varias opciones por defecto para el commando adduser. Un
archive de configuración /etc/adduser.conf puedes usarse para establecer los valores por
defecto a ser usados por los comandos adduser, addgroup, and deluser. Un par de valores
clave puede configurar varios valores por defecto, incluyendo la ubicación del directorio home,
la estructura del directorio skel a ser usado, grupos por defecto para nuevos usuarios, mucho
más. Revisa el manual de usuario para adduser.conf con los siguientes comando:
$ man adduser.conf

Ver también
 Investigar le comando useradd, un commando de bajo nivel para agregar usuarios.
 Investigar el comando usermod, un comando para modificar los usuarios.
 Investigar porque cada usuario tiene su propio grupo
1.2 Creando cuentas de usuario en bloques
En esta sección versa como crear múltiples cuentas de usuario sin usar ninguna herramienta
externa.

Empecemos
Necesitas una cuenta con privilegios de root.

Cómo hacerlo...
Sigue los siguientes pasos para crear una cuenta de usuario en modo batch:

1. Crea un nuevo archivo users.txt con el siguiente comando:


$ touch users.txt

2. Cambia los permisos con el siguiente comando:


$ chmod 600 users.txt

3. Abre users.txt con GNU nano y agrega los detalles de las cuentas:
$ nano users.txt

4. Presiona Ctrl + O para guardar los cambios.

5. Presiona Ctrl + X para salir de GNU nano.

6. Ingres $ sudo newusers users.txt para importer todos los usuarios en users.txt.

7. Verifica /etc/passwd para confirmar que los usuarios fueron creados:

Cómo Funciona…
Hemos creado una base de datos de detalles de usuario listados en el mismo formato que el
archivo passwd el formato de cada fila es como sigue:

username:passwd:uid:gid:full name:home_dir:shell
Donde:
username: Este es el nombre del usuario. Si existe, la información para el usuario será
cambiada; de otro modo se creará una nuevo usuario

password: Es el password para el usuario.

uid: Es el uid del usuario. Si está vacío, un nuevo uid será asignado al usuario.

gid: Es el gid para el grupo por defecto del usuario. Si está vacío se creará u nuevo grupo con
el nombre del usuario

full name: Esta información será copiada al campo gecos .

home_dir: Define el directorio home del usuario. Si está vacío se creará u nuevo , a new home
con un conjunto de propiedades utiles para el nuevo inquilino

shell: Este es el shell para el usuario.

Hacemos el archivo users.txt acceso al propietario solamente. Esto es para proteger el


archive por si contiene una contraseña sin proteger.

1.3 Creando un grupo


Los grupos son una forma de organizer y administrar a los usuarios en Linux. Son usados para
asingar derechos colectivamente

Vamos
Necesitas privilegios de usuario root.

How to do it...
Siga los siguientes pasos para crear un grupo:

1. Ingrese el siguiente commando para crear un grupo:


$ sudo addgroup guest

2. Ingresa tu contraseña para completar addgroup con privilegios de root.

Como funciona…
Simplemente hemos agregado un grupo guest al servidor. Como addgroup necesita
privilegios de root, necesitamos usar sudo junto con el comando. Despues de crear el grupo,
addgroup muestra el ID del nuevo grupo.

Que más…
De forma similar a adduser, puedes usar addgroup de formas diferentes:

 Agregar un grupo normal


 Agregar un grupo de Sistema con la opción --system
 Agregar un usuario existente a un grupo

Revisa el manual de (man addgroup) para obtener más detalles.


See also
 Check out groupadd, una utilidad de bajo nivel para agregar grupos al servidor.5

1.4 Agregando miembros de grupo

Una vez que tienes grupos en su lugar, puedes agrega usuarios existentes como nuevos
usuarios de este grupo, todos los permisos y accesos para este grupo serán automáticamente
disponibles para los miembros de este grupo.

Vamos
Necesitas privilegios de root o super usuario para agregar un miembro de grupo al servidor
Ubuntu.

Como hacer esto…


Siga estos pasos para agregar miembros de grupo7

1. Puedes usar el comando adduser con dos argumentos no opcionales


$ sudo adduser john guest

2. Ingresa tu contraseña para completar adduser con privilegios de root

Como funciona…
Como se mencionó previamente, puedes usar adduser para agregar usuarios existentes a un
grupo existente. Hemos usado aquí dos argumentos no opcionales:

 john: es el nombre del usuario


 guest: es el nombre del grupo

Hay más…
Alternativamente puedes utilizar el comando usermod para modificar el grupo asignado al
usuario:
$ sudo usermod -g <group> <username>

$ sudo usermod -a -G <group1>,<group2>,<group3> <username>

1.5 Borrando una cuenta de usuario


Si no necesitas más una cuenta de usuario, es buena idea borrarla.

Preparándonos
Necesitas permisos de root para borrar un grupo del servidor de Ubuntu

Cómo hacerlo…
Sigue los siguientes pasos para borrar una cuenta

1. Ingresa el siguiente comando para borrar una cuenta de usuario


$ sudo deluser --remove-home john

2. Ingresa tu contraseña para completar con privilegios de root:


Como trabaja esto…
Hemos usado el comando deluser con la opción –remove-home. Esto borrará la cuenta de
usuario llamada john y también el directorio home asociado con john. Por defecto, el
comando deluser borrará el usuario sin borrar el directorio home.

Es una buena idea mantener un backup de los archivos de usuario antes de borrar el directorio
home y cualquier otro archivo. Esto puede ser hecho con una opción adicional junto con el
comando deluser:
$ deluser --backup --remove-home john

Esto puede crear un archivo de respaldo con el nombre john.tar.gz en el directorio de


trabajo actual, entonces la cuenta de usuario y el directorio home serán removidos.

Hay más…
Cuando lo llamamos con la opción –group, el comando deluser removerá el grupo. De igual
forma, cuando llamamos con los argumentos no opcionales, el comando deluser intentará
remover un usuario de un grupo específico.
$ deluser john guest # this will remove user john from group guest

$ deluser --group guest # this will remove a group

Si quieres desactivas la cuenta de usuario en lugar de borrarla, puedes hacer esto con los
siguientes comandos.
$ sudo usermod --expiredate 1 john # disable the user account john

$ sudo usermod --expiredate "" john # re-enable user account john

$ sudo usermod -e YYYY-MM-DD john # specify expiry date

Ver también
Revisar el manual de deluser con man deluser

1.6 Administrando permisos


Hemos creado usuarios y grupos. En esta sección trabajarás con permisos de archivos por
defecto para usuarios y grupos, así como modificar estos permisos.

Vamos
Crea dos usuarios, user1 y user2. Crea un nuevo grupo editor y agrega user1 y user2
como sus miembros.

Como hacerlo
Siga estos pasos para administrar permisos de archivos, siga los siguientes pasos:
1. Para cambiar grupos para archivos y directorios:
a. Loguearse con user1
b. Crear un nuevo directorio documents dentro de home:
user1@ubuntu:~$ mkdir documents

c. Crear un archivo de texto en documents:


user1@ubuntu:~$ echo "hello world"> documents/file.txt

d. Ahora logueate con user2


user1@ubuntu:~$ su user2

e. Intenta editar el mismo archivo de texto. Debe decir Permission denied:

user2@ubuntu:/home/user1$ echo "hello again">


documents/file.txt

f. Logeate como user1 y cambia el grupo de documents a editor


user1@ubuntu:~$ chgrp -R editor documents

g. Cambia a user2 y trata de editar el mismo archivo. Ahora debe funcionar

2. Para establecer los permisos con chmod siga los siguientes pasos:
a. Crea un script simple con los siguientes comandos:
$ echo 'echo "Hello World!!"'> hello.sh

b. Ejecute el Shell script con el siguiente comando


$ ./hello.sh

c. Establece permisos de ejecución para hello.sh con el siguiente comando:


$ chmod u+x hello.sh
d. Revisa los nuevos permisos de ejecución con el siguiente comando
$ ls -l

e. Ejecute hello.sh otra vez

3. Para proteger archivos compartidos con sticky bit siga los siguientes pasos:
a. Logearse como user1 y establecer el sticky bit para el directorio documents:
user1@ubuntu:~$ chmod +t documents

4. Logearse como user2 y crear un nuevo archivo


5. Intentar borrar cualquier archivo dentro de documents. Debe fallar

Cómo trabaja esto…


Cuando creamos un nuevo archivo o directorio en Ubuntu. Los permisos por defecto para
estos archivos son acceso de lectura y escritura y privilegios de grupo, junto con la lectura,
escritura, y acceso de ejecución para los directorios. Puedes verificar la configuración por
defecto con umask -S

En nuestro ejemplo tenemos user2 y user2. Ambos son miembros del grupo editor.
Cuando user1 crea un archivo, los permisos por defecto están limitados a user1 y su gurpo
privado(user1). Por esta razón user2 ve Permission denied cuando edita el archivo. Para
cambiar el grupo de documents a editor permitimos a todos los miembros de editor leer y
escribir los archivos en documents.

Con el comando chmod, podemos establecer permisos en un nivel granular. En nuestro


ejemplo de hello.sh hemos establecido permisos de ejecución para hello.sh. igualmente
podemos establecer permisos de lectura asi.
$chmod +r filename

Para establecer los permisos de escritura, usar el siguiente comando:


$chmod +w filename

Podemos establecer permisos más selectivos con parámetros adicionales:


$chmod ugo+x filename

Aquí, u establece los permisos para user, g para group y o para todos los otros

Para remover permisos, reemplazamos + con -. Por ejemplo $chmod o-w filename

Alternativamente se puede usar el formato octal para especificar permisos:


$chmod 777 filename

Esto permisos de lectura, escritura y ejecución para el grupo de usuarios y otros, mientras que
el comando $chmod 600 filename establece permisos de lectura y escritura para el propietario
y no da permisos par grupos y otros. En el formato octal, el primer bit se usa para el
propietario del archivo, el segundo bit es para el grupo, y el tercero es para cualquier otro.
Verifica la siguiente tabla para más información:

Notation Octal value Permissions


-|---|---|--- 0|000|000|000 Archivos regulares sin permisos
d|r--|r--|r-- d|400|400|400 Directorio, permisos de lectura para el
propietario, grupo y otros
-|rw-|r--|r-- -|644|644|644 Archivo regular, lectura y escritura para el
propietario y permisos de lectura para otros.
-|rwx|rwx|rwx -|777|777|777 Archivo regular, todos los permisos para todos
Finalmente, cuando compartes archivos con un grupo de usuarios, hay posibilidad de que
alguno borre el archivo que es requerido por otro usuario. Sticky bit, puede proteger estos
archivos de la eliminación. Cuando esta activo el sticky bit, solo el propietario con privilegios
de root puede borrar el archivo.

Puedes establecer el sticky bit con el comando chmod como $chmod +t directoryName. El
Sticky bit se muestra en las listas largas (ls -l) con el símbolo t o T. Adicionalmente,
sticky bit trabaja solo con directorios y es ignorado en archivos ordinarios.

Hay mas…
Muchas veces cuando trabajamos con un usuario root, todos los archivos y directorios creados
son propiedad del root. Un usuario no-root no puede escribir en esos directorios o archivos.
Puedes usar el comando chown para cambiar la propiedad de tales archivos y asignarlos a sus
respectivos usuarios.

Para cambiar la propiedad de un archivo use el siguiente comando:


$chown newuser fielname

Para cambiar la propiedad así como el grupo de un archivo, use el siguiente comando:
$chwon newuser:newgroup filename

Puedes saltarte el cambio de propiedad y cambiar solamente el grupo con el siguiente


comando:
$chown :newgroup filename

Nota que el comando chown puede solo ser usado por usuarios con privilegios de root.
1.7 Obteniendo privilegios de root con sudo
Cuando creas un servidor Ubuntu en la nube, tienes por defecto la cuenta root. Esta cuenta
tiene el acceso total al sistema. Puedes crear un nuevo usuario con pocos privilegios. Pero hay
veces cuando necesitas privilegios de root extra para agregar usuarios nuevos o cambiar
algunas configuraciones del sistema. Puedes utilizar el comando sudo para obtener privilegios
extra temporalmente para un solo comando.

Empecemos
Necesitas una cuenta con privilegos de root

Como hacer esto..


Sigue los siguientes pasos para obtener los privilegios de root con sudo:

Agregar un nuevo usuario si se requiere:


$sudo adduser john

Hacer a john un miembro del grupo sudo con el siguiente comando:


$sudo adduser username sudo

Como funciona…
Todas las reglas de acceso sudo están configuradas en un archivo localizado en /etc/sudoers.
Este archivo contiene una lista de usuarios y grupos que tienen permitido usar el comando
sudo:

Todo lo que tenemos que hacer es agregar un nuevo usuario al grupo sudo y que el usuario
automáticamente obtenga privilegios sudo. Después de obtener la membresía al grupo sudo,
los usuarios necesitan desloguearse para que los cambios tengan efecto. Básicamente, el
usuario del Shell necesita ser reiniciado con los nuevos privilegios. Opcionalmente, puedes
cambiar el archivo sudoers para especificar una condición.

Hay mas…
Aquí, discutiremos cómo establecer un sudo sin password y algunos beneficios adicionales de
sudo.

sudo es una herramienta útil para privilegios de root temporales, pero necesitas ingresar tu
password cada vez. Este problema puede ser resuelto estableciendo un indicador de
NOPASSWD en el archivo sudoers. Asegúrate que tienes la herramienta visudo para editar
el archivo sudoers.

1. Abra el archivo sudoers con el comando visudo

$sudo visudo

2. Seleccionar la línea para le usuario o grupo que quieres permitir acceso sin sudo.
3. Agregar NOPASSWD después del paréntesis de cierre
%sudo ALL=(ALL:ALL) NOPASSWD: ALL

4. Presionar Ctrl + O y confirma con la tecla Enter


5. Presiona Ctrl + X para salir de visudo
Ahora, a los usuarios del grupo sudo, les debe ser posible usar el comando sudo sin poner un
password. Alternativamente, puedes agregar entradas separadas para limitar el acceso a un
usuario específico.

Note que el programa sudoers proporciona autenticación por un periodo corto (por defecto
15 minutos). Cuando se repite dentro de este tiempo, se tiene acceso sudo sin password sin
necesidad de establecer el flag NOPASSWD.

Otros usos de sudo


Además de correr un solo comando con sudo. Podrías necesitar ejecutar una lista de
comandos con privilegios de sudo . Entonces puedes abrir un terminal con acceso root con el
comando $sudo -s.

Alternativamente, puedes cambiar a root con el comando $sudo su

Ver también
Revisar el manual de sudo con $man sudo

1.8 Estableciendo limites de recursos con limits.conf


Ubuntu es un sistema operativo multi uso y multi proceso. Si un usuario o proceso consume
muchos recursos. Otros procesos no podrán usar el sistema. En esta sección, verás como
establecer límites de recursos para evitar esos problemas.

Preparándote
Una cuenta de usuario con privilegios

Como lo hacemos…
Sigues estos pasos para establecer limites de recursos

1. Revisa los limites de uso del CPU con $ulimit -t


2. Para establecer el nuevo limite, abre limits.conf con el siguiente comando
$sudo nano /etc/security/limits.conf

3. Desplázate al final del archivo y agrega las siguientes líneas:


username soft cpu 0 # max cpu time in minutes
username hard cpu 1000 # max cpu time in minutes

4. Presiona Ctrl+O para guardar los cambios


5. Ingresa Ctrl+X para salir del editor GNUNano

Como funciona….
PAM es el Módulo de Autenticación Conectable. El módulo PAM pam_limits.so proporciona
funcionalidad para establecer un tope en la utilización de recursos. El comando ulimit puede
ser usado para los límites actuales así como establecer nuevos límites para una sesión. Los
valores por defecto usados por pam_limits.so puese verse en
/etc/security/limits.conf.

En este capítulo, hemos actualizado limits.conf para poner un límite en el uso del CPU por
el usuario username. Los limites establecidos por el comando ulimit se restringen a la sesión.
Para establecer los limites permanentemente, necesitamos establecerlos en el archivo
limits.conf.

La sintaxis de limist.conf es como sigue:


<domain> <type> <item> <value>

Donde <domain> puede ser un nombre de usuario, un nombre de grupo o una entrada
wildcard. <type> denota el tipo de límite y puede asumir los siguientes valores:

soft: es un límite que puede ser cambiado por el usuario

hard: es una restricción establecida por un superusuario y reforzada por el kernel

<ítem> es el recurso para el que se establece el límite. Puedes obtener una lista de ítems con
$ulimit -a:

En nuestro ejemplo, hemos establecido el limite soft en el uso de CPU a 0 minutos y el limite
hard a 1000 minutos. Puedes cambiar el valor del limite soft con el comando ulimit. Para
ver los limites existentes para archivos abiertos, use el comando $ulimit -n. Para cambiar
los limites en los archivos abiertos:
$ulimit -n 4096

Hay mas…
El comando ulimit puede ser usado para establecer limites en procesos. No puedes usar
ulimit para limitar recursos a nivel de usuario. Puedes usar cgroups para establecer una
restricción a estos recursos.

1.9 Configurando autenticación de clave pública


Preparándose
Necesitas privilegios de usuario.

Como hacerlo…
Agregar un nuevo usuario (puedes obviar este paso si ya tienes uno creado)
$sudo adduser john

Loguearse como john y cambiar al directorio home con cd ~/:


Crear un directorio .ssh si es que no existe:
$ mkdir .ssh

Crear un archivo llamado authorized_keys dentro del directorio .ssh:


$ touch .ssh/authorized_keys

Establecer permisos para el directorio .ssh con 700:


$ chmod 700 .ssh

Establecer los permisos para authorized_keys a 600:


$ chmod 600 .ssh/authorized_keys

Generar el par de claves publica y privada en tu sistema local con el siguiente comando:
$ ssh-keygen

Copiar la clave generada del archivo .ssh/id_rsa.pub al archivo authorized_keys en el


sevidor.

Ahora abre una conección ssh para el servidor local con el siguiente comando
$ ssh john@server

Si te pregunta por confirmación, escribe yes y presiona Enter para continar:

Ver mas información en: https://voragine.net/linux/acceso-ssh-seguro-servidor-autenticacion-


clave-publica

S-ar putea să vă placă și