# **Guía de instalación *postinstall* para Void Linux** ## Autores ### Telegram * @tenshalito Tuxliban Torvalds * @lumaro Luis ----- ## Creación de usuario normal Para añadir la cuenta de nuestro usuario se requiere del programa [useradd](https://man.voidlinux.org/useradd.8). Con ayuda de ella hay que agregar nuestra cuenta a los grupos que sean necesario, así como asignar la contraseña que usaremos con esta cuenta. Procedemos a crear la cuenta y añadirla a varios grupos del siguiente modo: # useradd -m -s /bin/bash -U -G wheel,disk,lp,audio,video,optical,storage,scanner,network,xbuilder USUARIO **NOTA** Al crear el nombre del usuario asegurarse de que sea con letras minúsculas. La línea de comandos que se ha utilizado arriba significa lo siguiente: 1. *useradd:* Comando para crear un nuevo usuario o actualizar información predeterminada del nuevo usuario 2. *-m:* Crear el directorio home del usuario en caso de que no exista 3. *-s:* Shell predeterminado que se asignará a la cuenta que se está creando 4. */bin/bash:* Shell seleccionada para el usuario 5. *-U:* Crea un nuevo grupo con el mismo nombre para del usuario, y agrega al usuario a este grupo 6. *-G:* Grupos suplementarios a los que el usuario también formará parte. Cada uno de ellos debe estar separado por una coma y sin espacios entre ellos. 7. *wheel:* Grupo utilizado para otorgar permisos administrativos temporales teniendo acceso de lectura y escritura a archivos del sistema 8. *disk:* Acceso a dispositivos de alamacenamiento como disquetes, discos duros, ópticos, etc 9. *lp:* Acceso a impresoras 10. *audio:* Acceso directo al hardware de sonido para todas las sesiones 11. *video:* Acceso a dispositivos de captura de video, aceleración de hardware, framebuffer, etc 12. *optical:* Acceso a dispositivos óticos como unidades de CD o DVD 13. *storage:* Acceso a unidades extraibles como pendrives USB o reproductores MP3; así mismo, permite al usuario montar los dispositivos de almacenamiento 14. *scanner:* Acceso a hardware de scáner 15. *network:* Grupo necesario para, generalmente, otorgar acceso a NetworkManager o wpa_supplicant para la gestión de las redes 16. *xbuilder:* Grupo para poder utilizar el binario `xbps-uchroot` en la construcción de paquetes con `xbps-src` 17. *USUARIO:* Reemplazar con el nombre que deseen para la cuenta o cuentas que vayan a a hacer **NOTA:** Si pretende utilizar *QEMU* para virtualizar otros sistemas, entonces no olvide añadir a su usuario al grupo `kvm` ### Establecer contraseña de usuario # pass USUARIO ----- ## Permisos administrativos para la cuenta de usuario En los sistemas unix like de manera predeterminada la cuenta que puede ejercer permisos administrativos siempre es la cuenta *root*, por lo que para que la cuenta de usuario común pueda ejercer este tipo de tareas es necesario otorgarle los permisos necesario. Void permite hacer este tipo de tareas a través de dos herramientas: [sudo](https://man.voidlinux.org/sudo.8) y [opendoas](https://github.com/Duncaen/OpenDoas) ### sudo `sudo` es el administrador de sistema predeterminado para delegar permisos de adminitración en casi todos los sistemas unix like. Para configurar los permisos hay que editar el fichero `/etc/sudoers` y es altamente recomendable utilizar [visudo](https://jlk.fjfi.cvut.cz/arch/manpages/man/visudo.8) y no otros editores como *nano, vim, mousepad, kate, etc* porque en caso de algún error de sintaxis hará que `sudo` quede inutilizable. Al editarlo con `visudo` éste bloqueará el archivo y guardará los cambios en un archivo temporal para verificar que la sintaxis sea la correcta y después pueda copiarlo al archivo `/etc/sudoers` #### Usuario normal con permisos de superusuario Para permitir que la cuenta de usuario normal pueda realizar la escalada de permisos de administrador, es necesario añadir la siguiente línea a la configuración de *sudoers* # visudo USUARIO ALL=(ALL) ALL #### Añadir usuario al grupo wheel Para permitir que todos los usuario que sean miembros del grupo *wheel* puedan ejecutar tareas administrativas descomentarla quitando **#** que está al inicio de la línea # visudo %wheel ALL=(ALL) ALL ### doas El comando `doas` es simple por en su diseño y contrasta con la complejidad en diseño de `sudo`. Para la mayoría de las personas (me incluyo [@tenshalito]), es más que suficiente y suelo utilizarlo para las tareas administrativas de mi sistema. #### Usuario normal con permisos de superusuario Para configurarlo basta con crear y editar el fichero `/etc/doas.conf` con lo siguiente: # touch /etc/doas.conf # echo "permit :wheel" > /etc/doas.conf Lo anterior permitirá que todos los usuarios que se encuentren en el grupo *wheel* puedan ejecutar comandos con permisos de administración. #### Activar persistencia en doas Algo que diferencia a `doas` respecto a `sudo` es que éste último se caracteriza de la persistencia que permite a sus usuarios ingresar la contraseña una vez y no ingresarla de nuevo por un periodo de tiempo corto. Si desea hacer esto con `doas`, entonces añada esto a su configuración: # echo "permit persist :wheel" >> /etc/doas.conf #### No ingresar la contraseña Si desea nunca tener que ingresar su contraseña añada lo siguiente a la configuración: # echo "permit nopass :wheel" >> /etc/doas.conf #### Permisos específicos para usuarios Si desea agregar a un usuario en específico para ejecutar tareas administrativas, entonces la configuración debe quedar así: permit nopass :wheel permit nopass USUARIO Para mayor información sobre cómo funciona `doas` consulte los manuales de [doas](https://man.openbsd.org/doas) y [doas.conf](https://man.openbsd.org/doas.conf.5) ----- ## Sevicios de runit Ahora que ya tiene el sistema funcionando, es un buen momento para revisar qué servicios están ejecutándose actualemente y ver cuáles no necesita. Si no está seguro acerca de un servicio en partícular mejor déjelo activo, sin embargo, las siguientes son relativemente seguras eliminar: 1. Probablemente no necesite tener seis *tty*, por lo que podría eliminarlas y dejar por lo menos una activa para poder iniciar sesión. Como recomendación podría dejar activas sólo dos *tty's* y eliminar las demás: ``` # rm /var/service/agetty-tty3 # rm /var/service/agetty-tty4 ``` 2. Si no planea conectarse a través de *ssh* desde otra computadora, entonces puede elimiar el servicio ``` # rm /var/service/sshd ``` 3. Si está utilizando una configuración de red estática, puede eliminar el servicio de *dhcpcd* ``` # rm /var/service/dhcpcd ``` ----- ## Conexión a internet ### Ethernet Para una conexión rápida es necesario activar el servicio `dhcpcd` # ln -s /etc/sv/dhcpcd /var/service ### Conexión inalámbrica Antes de establecer la conexión es necesario revisar que las interfaces no se encuentren bloqueadas, por lo que en caso de estar bloquedas se habilitan con ayuda de [rfkill](https://man.voidlinux.org/rfkill.8): # rfkill unblock all #### wpa_supplicant **NOTA:** Si instaló el el sistema a través de una instalación mínima como por ejemplo con *base-minimal* o con *base-voidstrap* entonces instale `wpa_supplicant`. # xbps-install -S wpa_supplicant Sin instaló el sistema desde una ISO live o desde una instalación mínima desde el paquete *base-minimal* entonces no es necesario instalar `wpa_supplicant` ya que viene incluído en las opciones antes mencionadas. Activar el servicio: # ln -s /etc/sv/wpa_supplicant /var/service Identificar interfaz: $ ip addr A continuación, encontrar el ssid (nombre) de las redes inalámbricas disponibles: # iw dev INTERFAZ scan | grep -i ssid Configuración wpa_supplicant: $ wpa_passphrase {ssid} {password} | sudo tee -a /etc/wpa_supplicant/wpa_supplicant.conf Establecer conexión: # wpa_supplicant -B -D wext -i wlp2s0 -c /etc/wpa_supplicant/wpa_supplicant.conf #### NetworkManager Instalar el programa: # xbps-install NetworkManager Crear una regla *polkit* en el siguiente directorio `/etc/polkit-1/rules.d/50-org.freedesktop.NetworkManager.rules` que contenga lo siguiente: ``` polkit.addRule(function(action, subject) { if (action.id.indexOf("org.freedesktop.NetworkManager.") == 0 && subject.isInGroup("network")) { return polkit.Result.YES; } }); ``` Por ejemplo usando *vim* # vim /etc/polkit-1/rules.d/50-org.freedesktop.NetworkManager.rules En caso de que aún no se encuentre su usuario en el grupo *network* añádalo del siguiente modo: # gpasswd -a USUARIO network Desactive los servicios de *dhcpcd* y *wpa_supplicant* en caso de que esté activos ya que ellos y *NetworkManager* son mutuamente excluyentes: # rm -fr /var/service/dhcpcd # rm -fr /var/service/wpa_supplicant Active los siguientes servicios: # ln -s /etc/sv/NetworkManager /var/service # ln -s /etc/sv/dbus /var/service Conectarse a la red de su preferencia usando *nmtui* $ nmnui ----- ## Interfaz gráfica de usuario Los siguientes pasos le ayudarán a ejecutar una configuración básica para un WM o para un entornod de escritorio. Los pasos son esencialmente los mismos ### Instalar xorg El paquete *xorg* es un metapaquete que instala todo lo relacionado con Xorg. Dicho paquete le dará un inicio "rápido", pero también llenará su sistema de paquetes inncesarios. Una buena práctica sería instalar el paquete *xorg-minimal* para tener menos dependencias, pero será necesario especificar el controlador de video; o si lo prefiere instalar todo manualmente para que sepa lo que se se instala en el sistema: # xbps-install xorg-server xauth xinit xf86-input-libinput xf86-video-XXX #### Drivers de video Para identificar qué tipo de tarjeta tenemos instalada en nuestro equipo escribir lo siguiente en la consola: $ lspci | grep VGA 1. AMD Raedon: `xf86-video-amdgpu` 2. ATI Raedon: `xf86-video-ati` 3. Open source NVIDIA: `xf86-video-noveau` 4. Intel: `xf86-video-intel` 5. Driver genérico: `xf86-video-vesa` **Nota:** Tenga en cuenta que el driver `xf86-video-intel` no se requiere en procesadores basados en *Sandy Brige* o en más nuevos También puede optar por utilizar el driver [modesetting](https://wiki.archlinux.org/index.php/Kernel_mode_setting) que viene incluído en el kernel. Si se decide por esta opción, asegúrese de tener instalado también el paquete `mesa-dri` ### Entorno de escritorio Void Linux cuenta en sus repositorios oficiales con soporte para varios entornos de escritorio. De manera oficial soporta a los siguientes: 1. Cinnamon 2. Enlightenment 3. lxde 4. lxqt 5. Mate 6. xfce De manera no oficial dispone de: 1. Budgie 2. Gnome 3. Plasma 4. Lumina ### Window manager Existen diferentes tipos de WM que manejan las ventanas de manera diferente. Los más comunes que se suelen usar en Void son los siguientes: 1. Flotante: openbox 2. Tiling: bspwm, i3wm, sway 3. Dynamic: awesome, dwm #### Cinnamon Desktop #### Enlightenment Desktop #### LXDE Desktop #### LXQT Desktop #### MATE Desktop #### XFCE Desktop #### Budgie Desktop #### GNOME Desktop #### PLASMA Desktop #### Lumina Desktop ----- ## Instalar un gestor de inicio ----- ## Ajustar brillo de pantalla ### Manualmente cuando X11 no está presente ### Manualmente desde X11 ----- ### Audio #### ALSA #### Pulseaudio ## Referencias