Herramientas de usuario

Herramientas del sitio


sistema:linux:howto

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
sistema:linux:howto [2010/05/19 18:15]
alfred
sistema:linux:howto [2020/05/09 09:25] (actual)
Línea 1: Línea 1:
-====== Sistema Linux ======+====== Sistema Linux (old) ======
  
- 
-===== Gestión de usuarios y grupos ===== 
- 
- 
- 
- 
- 
- 
- 
-==== Gestión de usuarios ==== 
-Comandos: 
-  * **adduser usuario** Como root añade un usario al sistema preguntandote sus características. Puedes crear un usuario sin necesidad de que te vaya preguntando sus características con **useradd**. ​ 
-    * -d Directorio personal 
-    * -s Shell 
-    * -p Password 
-    * -g Grupo principal 
-    * -G Otros grupos 
-    * -m Crear el directorio personal ahora (si no cuando inicie) 
-  * **usermod usuario** Con los mismos parámetros que useradd puedes modificar un usuario. 
-  * **userdel usuario** Elimina un usuario. 
-  * **passwd** Cambia la contraseña del usuario actual. 
-  * **passwd usuario** Como root, cambia la contraseña del usuario 
-  * **id usuario** Devuelve información de los identificadores de usuario\grupo del indicado 
-  * **groupadd grupo** Añade un grupo al sistema 
-  * **groupdel grupo** Elimina un grupo del sistema 
-  * **chsh** Cambia de shell con el que inicia un usuario 
- 
- 
-==== Ficheros ==== 
-  * **/​etc/​passwd** Donde se guarda la info del usuario 
-  * **/​etc/​shadows** Donde se guardan los passwords 
-  * **/​etc/​group** Donde se guarda la relación grupos-usuarios 
-  * **/​etc/​skel** Directorio que se copia en la home del usuario al crearse esta 
-  * **/​etc/​shells** Donde se encuentran todos los shells que pueden ser asignados a un usuario 
- 
- 
- 
- 
- 
-==== Gestión de permisos ==== 
-Comandos: 
-  * **chown usuario fichero\directorio** Cambia de propietario el fichero o directorio 
-    * -R para un árbol de directorios 
-  * **chgroup grupo fichero\directorio** Cambia de grupo el fichero o directorio 
-  * **chmod modo fichero\directorio** Cambia los permisos de un fichero\directorio 
-    * -r Hace el cambio para todo el árbol de directorios 
-    * El //modo// se refiere a qué permisos se darán; generalmente se dan de forma octal, 3 números octales del 0 al 7. Uno de estos tres números es como un binario del 000 (0) al 111 (7), es decir, que contiene tres 1\0 dentro, estos 1s o 0s significan activo\inactivo,​ el primero es de lectura, segundo de escritura y tercero de ejecución. Y estos octales se dan (primero) usuario, (segundo) grupo, (tercero) otros. 
-    * El //modo// también puede indicarse cómo +r, +w, +x o -r, -w, -x, si se quiere (+) dar (lectura, escritura o ejecución) o quitar (-). 
-<​code>​chmod 777 fichero -> dá todos los permisos al fichero (111 111 111) 
-chmod 700 fichero -> dá todos los permisos al usuario, a los demás nada (111 000 000) 
-chmod 760 fichero -> dá todos los permisos al usuario, al grupo todos excepto ejecución y ninguno a los demás (111 110 000) 
-chmod 655 fichero -> dá todos los permisos al usuario excepto el de ejecución, al grupo y a los demás permite leer y ejecutar. 
-</​code>​ 
- 
- 
-==== Notas ==== 
-  * Para crear un usuario sin shell ni directorio: 
-<​code>​ 
-adduser smbadmin --shell /​sbin/​nologin --no-create-home 
-</​code>​ 
- 
-===== Ejecutar como administrador ===== 
- 
-==== su ==== 
- 
-Es una utilidad que permite a los usuarios independientemente administrar la máquina cual root se tratase. Su sintaxis es //sudo comando//; en el archivo ///​etc/​sudoers//​ encontramos su configuración,​ que se basa en indicar qué usuarios pueden hacer qué cosas (puede ser configurado mediante el comando //​visudo//​). ​ 
- 
-==== /​etc/​sudoers ==== 
-  * Sintaxis: **[usuarios|grupos] [Nombre de servidor]= comandos** 
-  * Tanto los comandos como los usuarios van separados por comas. (Para indicar nombres de grupo pondremos antes un %, por ejemplo: %users). 
-  * Podemos cambiar tanto usuarios, grupos, comandos por ''​ALL'',​ que significan que son todos los usuarios del sistema o todos los comandos. ​ 
-  * Si quieres seguir en otra línea, deberás acabar esa línea con \. 
-  * ''​NOPASSWD :''​ delante de los comandos indica que no tendrá que introducir el password del root. 
- 
-Ejemplos 
-  peter, %operator ALL= /sbin/, /usr/sbin, /​usr/​local/​apps/​check.pl 
-  %operator ALL= NOPASSWD: /sbin/ 
-  ALL ALL=NOPASSWD:​ ALL 
- 
-  * El primer ejemplo permite a ''​peter''​ y a los usuarios del grupo ''​operator''​ (en todos los servidores) ejecutar con sudo los comandos de: ''/​sbin/,​ /usr/sbin, /​usr/​local/​apps/​check.pl''​ 
-  * El segundo a los usuarios del grupo operator en todos los servidores y sin necesidad de introducir el password los comandos de /sbin 
-  * El tercero tal vez sea ''​la peor idea de la larga y triste historia de las malas ideas''​. 
- 
- 
- 
- 
-==== Notas ==== 
-  * Un ''​grep sudo /​var/​log/​messages''​ te permitirá ver los comandos ejecutados con sudo 
-  * Si queremos conectar como ''​su''​ a partir de ''​sudo''​ haremos: ''​sudo su''​. 
- 
- 
- 
-===== Instalación de software ===== 
- 
- 
-==== apt ==== 
-Utilizamos el apt, un sistema de Debian para administrar los paquetes de instalación (.deb). Su sintaxis es la siguiente: **apt[-get|-cache...]** //<​opción>​ <​paquete>//​ 
-  * Instalar: **apt-get install paquete** 
-  * Desinstalar:​ **apt-get remove paquete** 
-  * Desinstalación total (hasta archivos de configuración):​ **apt-get --purge remove paquete** (//fíjate: - - purge//) 
-  * Actualización:​ **apt-get upgrade paquete** 
-  * Acutalización del sistema: **apt-get upgrade** y **apt-get dist-upgrade** 
- 
-apt utiliza el fichero **/​etc/​apt/​sources.list** para almacenar las direcciones de los paquetes que tiene disponibles y resolver así las dependencias de estos. Cada una de las direcciones apuntan a una carpeta donde existe un archivo //​override//​ (un indice de los archivos). Por ejemplo: \\ 
-  deb http://​192.168.1.2:​468/​debian/​disk1/​ sarge contrib 
-Una vez editado este archivo deberemos hacer un **apt-get update** para actualizar la caché de instalables registrados. 
- 
-Para buscar paquetes de instalación o inspeccionar sus características:​ 
-  * Buscar: **apt-cache search paquete** 
-  * Detalles: **apt-cache show paquete** 
-  * Limpiar chaché: **apt-get clean** 
- 
-Si queremos reparar\finalizar instalaciones inacabadas: 
-  * **apt-get -f install** 
- 
- 
-==== dpkg ==== 
-  * Listar paquetes instalados: **dpkg -l** 
-  * Instalar: **dpkg -i paquete** 
-  * Eliminar: **dpkg -r paquete** 
-  * Eliminar (todo, hasta archivos de configuración):​ **dpkg --purge paquete** (//fíjate, es: - - purge//) 
-  * Ver qué archivos corresponden a un paquete: **dpkg -S paquete** 
-  * Volver a lanzar la aplicación de configuración:​ **dpkg-reconfigure paquete** 
- 
- 
-==== Otros ==== 
-  * **aptitude** es un programa que, de forma más avanzada, también gestiona los archivos instalados. 
-  * **alien** es un programa que convierte un archivo .rpm o .tgz a .deb 
-    * //alien -d fichero// 
-    * //alien -i fichero// - Lo convierte y lo instala. 
-  * **apt-rdepends**:​ Muestra el arbol de dependencias de un paquete. 
  
 ===== mount & fstab ===== ===== mount & fstab =====
Línea 228: Línea 97:
  
  
-==== Programas relacionados ==== 
-  * **smbclient** es un programa que, al estilo ftp, puedes conectarte a recursos samba. Por ejemplo, lo usariamos: //smbclient \\\\192.168.1.2\\Downloads//​ o lo que es lo mismo: //<​nowiki>​smbclient //​192.168.1.2/​Downloads</​nowiki>//​ 
-  * **smbstatus** es un programa que te reporta el estado de las conexiones samba actuales. 
-  * **testparm** es un programa que valida la sintaxis del fichero de configuración de samba. 
-  * **smbpasswd** programa para enlazar usuarios\contraseñas del sistema samba. (//​smbpasswd -a <​usuario>//​) El usuario será creado para samba y debe existir en windows. 
-=== smbclient === 
-Internamente,​ dentro de smbclient podemos utilizar distintos comandos: 
-  * **get <nombre de archivo>​** copia un archivo a local. 
-  * **put <nombre de archivo>​** copia un archivo desde local al ordenador accedido. 
-  * **mget <​mascara>​**,​ la máscara puede ser, por ejemplo, un *, recoge los archivos que coinciden con la máscara. 
-  * **ls**, **cd** moverse por los directorios. 
  
-==== Pasos para acceder desde windows a un recurso compartido ==== + 
-  - Editar el fichero smb.conf +
-  - Configurar la máquina local +
-  - Configurar los directorios compartidos +
-  - Añadir un usuario al sistema +
-  - Reiniciar el servicio+
  
  
Línea 300: Línea 154:
  
  
-==== Acceder ​====+ 
 +=== Acceder ===
 <​code>​ <​code>​
 http://<​ip>:​901 http://<​ip>:​901
 </​code>​ </​code>​
 El nombre de usuario y el password tendrán que ser uno de la máquina que se está administrando. Los permisos para ese usuario serán los mismos que tenga para modificar el fichero ''​smb.conf''​. El nombre de usuario y el password tendrán que ser uno de la máquina que se está administrando. Los permisos para ese usuario serán los mismos que tenga para modificar el fichero ''​smb.conf''​.
 +
  
  
  
 ==== Como... ==== ==== Como... ====
-=== Crear usuario exclusivo de administración === 
-Imaginemos que el usuario que queremos crear es ''​smbadmin''​ para acceder a esta config (desde Ubuntu): 
-<​code>​ 
-adduser smbadmin --shell /​sbin/​nologin --no-create-home 
-chgrp smbadmin /​etc/​samba/​smb.conf 
-chmod g+w /​etc/​samba/​smb.conf 
-</​code>​ 
-  * :!: Es posible que le tengamos que dar permisos con ''​smbpasswd -a user''​. 
 === Añadir una carpeta compartida === === Añadir una carpeta compartida ===
   - Vamos al menú ''​Shares''​.   - Vamos al menú ''​Shares''​.
Línea 332: Línea 180:
 </​code>​ </​code>​
  
-==== Notas ==== 
-  * En la máquina windows debería de tener activo el puerto **445** para una conexión más ágil. 
-  * Si quisiesemos ver los recursos compartidos de un host: **<​nowiki>​smbclient -L //​192.168.1.2</​nowiki>​** 
-  * Para utilizar nombres de máquina en vez de ip's (smbclient -L <​nowiki>//</​nowiki>​alfredsp4) ha de existir el archivo ///​etc/​samba/​lmhosts//​ y en él una referencia como la siguiente: 
-<​code>​192.168.1.2 alfredsp4</​code>​ 
  
  
  
-===== Configuración de red ===== 
  
-==== ifconfig ==== 
-El comando ''​ifconfig -a''​ nos dará información de las tarjetas instaladas, la ip que tienen asignada, las IRQs que utilizan, sus puertas de enlace... Pero este comando también nos permite cambiar la ip e indicar una estática: //ifconfig <​interface de red> <ip> netmask <​mascara>​ up// 
-  ifconfig eth0 10.0.0.1 netmask 255.255.255.0 up 
- 
-==== Añadir puerta de enlace ==== 
-  route add default gw <ip> <​interfaz de red> 
-  route add default gw 192.168.1.1 eth0 
- 
-==== Ver tu routing table ==== 
-  netstat -nr 
- 
-==== /etc/hosts ==== 
-Este archivo enlaza IPs con nombres de máquina. Por ejemplo si queremos hacer un ping a "​winPC"​ pondremos: <ip> winPC. Por ejemplo, en mi actual linux tengo: 
-  127.0.0.1 ​      ​localhost.localdomain ​  ​localhost ​      ​arturito 
-De esa forma, cuando voy a localhost o a arturito (por http, ping, telnet...) me lo reconoce como la máquina propia (127.0.0.1 - También llamada interface ''​loopback''​). 
- 
-==== /​etc/​network/​interfaces ==== 
-Este fichero únicamente existe en distribuciones Debian\Ubuntu. Corresponde a la configuración principal para estas distribuciones de las interfaces de red. Se divide en las siguientes "​stanzas",​ apartados: 
-  * **auto**: Interfaces que se inicializarán cuando se inicialice el sistema 
-<​code>​auto eth0</​code>​ 
-  * **mapping**:​ [Mapea la red según un script] 
-  * **iface**: Se definen las características de una interface. Para ello se usa la siguiente sintaxis: //iface <​interface>​ <​protocolo>​ <tipo de direccionamiento>​ [características]//​ Donde: 
-    * Interface corresponde al nombre (eth0, eth1, wlan0...) 
-    * Protocolo es //inet// si hablamos de una IP normal, //inet6// si es IPv6 o //ipx// para IPX. 
-    * El tipo de redireccionamiento:​ //static// (estático) o //dhcp// (por dhcp) 
-    * Las características se refieren a las direcciones de los distintos elementos: //​address//,​ //​netmask//,​ //​network//,​ //​broadcast//,​ //​gateway//,​ //​dns-nameservers//​. 
-Ejemplo para red TCP/IP dada por DHCP: 
-<​code>​ 
-auto eth0 
-iface eth0 inet dhcp 
-</​code>​ 
-Ejemplo para una interface con ip estática: 
-<​code>​ 
-auto eth1 
-iface eth1 inet static 
-        address 216.10.119.240 
-        netmask 255.255.255.224 
-        network 216.10.119.224 
-        broadcast 216.10.119.255 
-        gateway 216.10.119.241 
-        dns-nameservers 216.10.119.241 
-</​code>​ 
- 
- 
-==== Notas ==== 
-  * ''​ifup eth0''​ y ''​ifdown eth0'',​ activan y desactivan (respectivamente) la interface eth0 
-  * **/​etc/​inetd.conf** es el fichero de configuración de servicios de red 
- 
- 
- 
- 
-===== Programar tareas ===== 
- 
- 
-==== Cron ==== 
-CRON es el daemon (crond) usado para lanzar acciones de forma cronológica. \\  
-Para cada usuario existe un fichero de configuración que se encuentra en ///​var/​spool/​cron//,​ el global del sistema en ///​etc/​crontab//​. Puede que los usuarios tengan o no tengan un archivo de cron propio. Esto está indicado en los archivos ///​etc/​cron.allow//​ y ///​etc/​cron.deny//,​ si existe cron.allow los usuarios que estén incluidos en él SI podrán tener archivo de configuración propio, en cambio, si existe cron.deny, los usuarios incluidos NO podrá tener su archivo de configuración propio. Estos archivos no están pensados para que se editen directamente,​ por lo que hay que usar una orden más adecuada **crontab**:​ 
-  * ''​crontab [ -u usuario ] fichero''​ indica qué fichero especifica cuando se realiza la acción. 
-  * ''​crontab [ -u usuario ] { -l | -r | -e }'',​ las diferentes opciones que se pueden realizar sobre el fichero. 
- 
-Si somos root podremos elegir la primera opción, mediante //crontab -u usuario// podremos modificar los valores del archivo de configuración del usuario escogido. \\  
-Cuando hacemos -e estamos creando\editando un archivo de configuración. \\  
-Con -r eliminamos el registro del archivo de configuración. \\  
-Y -l muestra dicho archivo. \\ \\  
- 
-Para generar órdenes de configuración se hace a partir de un archivo en modo texto con 6 columnas: 
-  - ''​[Número],​ el minuto [0-59]''​ 
-  - ''​[Número],​ la hora [0-23]''​ 
-  - ''​[Número],​ el día del mes [1-31]''​ 
-  - ''​[Número],​ el mes [1-12]''​ 
-  - ''​[Número],​ el día de la semana [0-7] (El 0 y el 7 son el domingo)''​ 
-  - ''​[Ruta],​ la dirección del script que se ejecutará''​ 
-En los números podemos indicar un * que significa "todos los posibles"​. \\  
-Es decir, una vez tubiesemos el archivo ya creado utilizariamos el comando ''​crontab <​archivo>''​ para que se registrase. \\ \\  
- 
-Podremos poner un sólo valor para indicar un valor fijo, una lista de valores separados por comas, un rango: dos números separados por guión. O un */num para indicar "cada x tiempo":​ 
-<​code>​ 
-0 0 * * *       <​script>​ # Ejecutado a las 12 de cada día 
-30 6 */2 * *    <​script>​ # Cada dos días a las 12:30 
-*/10 * * * 1    <​script>​ # Cada lunes cada 10 minutos 
-0 * * * 1-5     <​script>​ # De lunes a viernes, a la hora en punto 
-0 2 1 * * /​var/​bckscripts/​bckwapps_m > /​var/​bckscripts/​m_wapps.log # Cada primer dia de mes a las 2 de la mañana, la salida del script se guardará en un archivo 
-</​code>​ 
- 
-También existen carpetas que ejecutan en las que los archivos ejectuables que hay ahí se ejecutan cada x tiempo. ///​etc/​cron.hourly//​ (cada hora), ///​etc/​cron.dail//​ (cada día), ///​etc/​cron.weekly//​ (cada semana) y ///​etc/​cron.monthly//​ (cada mes). 
- 
-==== atd ==== 
-Utilizado para que, en un instante concreto, se lance una instrucción. 
- 
-==== Notas ==== 
-  * Para cambiar el editor por defecto del ''​crontab -e''​ haremos: 
-<​code>​ 
-export EDITOR=vi ​ 
-</​code>​ 
  
 ===== El inicio de Linux y sus demonios ===== ===== El inicio de Linux y sus demonios =====
sistema/linux/howto.1274292910.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)