GNU/Linux - Electiva Libre I - Universidad de Córdoba Departamento de Ingeniería de Sistemas y Telecomunicaciones
←
→
Transcripción del contenido de la página
Si su navegador no muestra la página correctamente, lea el contenido de la página a continuación
GNU/Linux – Electiva Libre I Universidad de Córdoba Departamento de Ingeniería de Sistemas y Telecomunicaciones
Índice de contenido 1. Conceptos generales del Sistema Operativo GNU/Linux............................................3 1.1 Generalidades de GNU/Linux y el software libre........................................................3 1.2 Historia del Sistema Operativo GNU/Linux ................................................................6 1.3 Conceptos previos de software libre...........................................................................8 2. Comandos básicos utilizados en el sistema GNU/Linux...........................................10 2.1 Listado de comandos mas utilizados........................................................................10 2.2 Como ingresar a la consola en GNU/Linux...............................................................13 2.3 Ejemplos de ejecución de algunos comandos básicos.............................................13 2.4 Manejo de archivos y directorios...............................................................................15 2.4.1 Estructura del sistema de archivos....................................................................15 2.4.2 Modos de acceso a un fichero en GNU/Linux...................................................17 2.4.3 Comandos para el manejo de archivos y directorios.........................................18 2.4.4 Herramienta gráfica Nautilus (GNU/Linux Ubuntu 9.04)....................................28 3. Administración de usuarios y grupos.........................................................................33 3.1 El superusuario o root................................................................................................33 3.2 Adquirir permisos de superusuario ..........................................................................34 3.3 Tipos de usuarios en GNU/Linux...............................................................................34 3.4 Ficheros importantes en la creación de usuarios y grupos.......................................35 3.5 Comandos para mantenimiento de usuarios.............................................................38 3.6 Comandos para mantenimiento de grupos...............................................................42 3.7 Herramienta gráfica para crear usuarios y grupos....................................................44 Bibliografía.........................................................................................................................46
Introducción Este modulo de Electiva Libre I (GNU/Linux Básico), esta destinado para los estudiantes novatos en el uso del sistema operativo GNU/Linux. Esto con el propósito de que tengan una guía o manual de referencia que les permita comenzar a dar sus primeros pasos en la utilización del nuevo sistema. El desarrollo de este modulo esta conformado por tres unidades que incluyen temas básicos para los usuarios inexpertos en el mundo de GNU/Linux y el software libe. En la unidad uno encontramos los conceptos generales del Sistema Operativo, en la unidad dos se estudiaran los comandos básicos utilizados en el sistema y en la unidad tres realizaremos algunas labores administrativas, como es la administración de usuarios y grupos. La primera unidad del modulo expone generalidades sobre el sistema, como son algunos hechos y personajes importantes en su desarrollo. También se explica una pequeña reseña histórica sobre el sistema y algunos conceptos básicos para empezar a utilizarlo. En la segunda unidad se presentan algunos comandos básicos necesarios para empezar a utilizar el sistema, se estudia la sintaxis de uso, así como su ejecución en la consola del sistema. En esta unidad se hace énfasis en el manejo de comandos para manipular ficheros. La última unidad presenta algunos conceptos y técnicas relacionadas con la administración del sistema. Primeramente se estudian las características del usuario administrador del sistema (root), los tipos de usuarios, Para finalmente gestionar la creación de usuarios y grupos.
1. Conceptos generales del Sistema Operativo GNU/Linux Objetivos ● Tener una visión general de algunos antecedentes, personajes y hechos que relacionan al sistema operativo GNU/Linux con la comunidad del software libre. ● Distinguir las principales características, herramientas de software y distribuciones GNU/Linux de la actualidad. ● Conocer la historia y los hechos que anteceden el desarrollo de las primeras versiones del kernel de Linux, núcleo del sistema operativo GNU/Linux. ● Estudiar y distinguir los principales conceptos, utilizados en el mundo del software libres, necesarios para comenzar a estudiar el sistema operativo GNU/Linux. 1.1 Generalidades de GNU/Linux y el software libre El sistema operativo GNU/Linux en todas sus distribuciones esta sumamente ligado a una filosofía propuesta por la FSF1 (Free Software Foundation), la cual promueve la libre distribución y uso del software. Toda esta filosofía del software libre nace a mediados de la década de los 80's, gracias al señor Richard Stallman2, quien es uno de los fundadores de la Free Software Foundation, organización creada en Octubre de 1985. Richard Stallman tambien es uno de los propulsores iniciales del proyecto GNU acrónimo en ingles que significa GNU's Not Unix. Una de las ideas principales que propuso el proyecto GNU3 en sus inicios, fue la creación de un sistema operativo libre de usar, con aplicaciones de usuario también libres para que corrieran sobre el sistema operativo. La idea era utilizar un licenciamiento GPL 4 (GNU Public License) que protegira la libre distribución, modificación y uso del software 1 http://es.wikipedia.org/wiki/Free_Software_Foundation http://www.fsf.org/ 2 http://es.wikipedia.org/wiki/Richard_Stallman 3 http://www.gnu.org/ http://es.wikipedia.org/wiki/GNU 4 http://es.wikipedia.org/wiki/Licencia_p%C3%BAblica_general_de_GNU
desarrollado por el proyecto GNU. En la actualidad el producto de software mas popular, relacionado con la filosofía expuesta anteriormente, es el sistema operativo GNU/Linux. El nombre completo del sistema operativo es GNU/Linux, porque fue una integración entre las herramientas de software desarrolladas por el proyecto GNU y el kernel desarrollado por Linus Torvalds. En la actualidad es tanta la popularidad del sistema, que muchas personas utilizan el termino generalizado Linux, para referirse a todo el sistema operativo. Gracias a la licencia GPL, bajo la cual fue publicado el kernel de Linux y las herramientas de software del proyecto GNU, así como otros desarrollos de software libre, muchas empresas e instituciones crearon distribuciones basadas en el sistema operativo GNU/Linux, a las cuales agregaron algunas características propias de la distribución. GNU/Linux hoy en día en la mayoría de sus distribuciones, maneja el concepto o filosofía del software libre, en donde solo se cobra por los medios físicos de instalación, manuales y soporte técnico del sistema. Además proporciona a sus usuarios aplicaciones gráficas, gracias a sus entornos de escritorio Gnome y KDE 5 que facilitan el uso del sistema operativo de una forma amigable para los usuarios novatos. Dentro de las aplicaciones mas comunes en las distribuciones GNU/Linux encontramos: El navegador WEB Mozilla La herramienta de oficina OpenOffice Los manejadores de bases de datos MySQL y PostgreSQL Los editores de texto: Emacs, gedit, entre otros El servidor Web Apache GNU/Linux es un sistema operativo que cuenta con mucha popularidad en el mundo de la programación y la configuración de servidores, por ser un sistema operativo robusto, estable y seguro, que puede ser modificado por cualquier programador. 5 http://www.gnome.org/ http://www.kde.org/
Las características de GNU/Linux son similares a las del sistema operativo Unix, esto se debe a que GNU/Linux es un sistema basado en Unix. Esto se debe a que cumple con el estándar POSIX, el cual define la interfaz de los sistemas operativos basados en Unix. Entere las características principales del sistema encontramos: Es un sistema operativo multiusuario y multitarea. Los ficheros del sistema tienen su propia protección o permisos de acceso. La interfaz con el usuario, es por medio de un lenguaje de control programable llamado Shell. Esta escrito en el lenguaje de programación C y emplea gestión de memoria por intercambio (swap). A continuación se destacan algunas de las distribuciones6 GNU/Linux importantes y populares que existen en el mercado, ya que son muchas las empresas que se dedican a desarrollar distribuciones con características propias en todo el mundo: Redhat SuSE Ubuntu Fedora Debian Mandriva Gentoo 6 http://www.ubuntu.com/ http://www.redhat.com/ http://es.opensuse.org/Bienvenidos_a_openSUSE.org http://fedoraproject.org/es/ http://www.debian.org/ http://www2.mandriva.com/ http://www.gentoo.org/
1.2 Historia del Sistema Operativo GNU/Linux Para hablar de la historia y evolución de el sistema operativo GNU/Linux tenemos que remontarnos inicialmente al sistemas operativo UNIX, el cual comenzó como un proyecto de investigación de los laboratorios BELL de AT&T7 en el año 1969. El grupo de investigadores estaba integrado por Ken Thompson, Dennis Ritchi, Douglas Mcllroy, entre otros miembros de los laboratorios Bell. AT&T y laboratorios BELL, se dieron cuenta de que UNIX se estaba convirtiendo en un producto comercializable, es así como el sistema sale de estas empresas y comienza a utilizarse primeramente en las universidades (Illinois, Harvard y Berkeley) en proyectos investigativos. Principalmente en la universidad de Berkeley, fue donde se dieron los desarrollos mas importantes fuera de los laboratorios Bell, entre ellos se destacan los avances en gestión de memoria y la implementación del protocolo de red TCP/IP, que permitiera interconectar computadoras en redes de área local. Posteriormente el manejo del licenciamiento por parte de AT&T, hizo que otras empresas adquirieran la propiedad intelectual sobre el kernel de Unix, desarrollando versiones con modificaciones y características propias de los fabricantes, dando origen a una familia de sistemas operativos basados en Unix8 como: AIX de la empresa IBM, SCO de Santa Cruz Operation, BSD de la Universidad de Berkeley, Solaris de Sun Microsystems, entre otros sistemas basados en Unix. El manejo del licenciamiento genero una problemática con la propiedad intelectual del código de Unix por parte de AT&T, por esta razón el investigador en sistemas operativos Andrew Tannenbaum9, desarrollo en el año 1987 un sistema operativo gratuito basado en Unix, que pudiera utilizarse en las universidades a nivel investigativo. Tannenbaum escribió el código del sistema Minix como una copia del sistema operativo Unix , por esto 7 SILBERSCHATZ, Abraham; GALVIN, Peter Baer. Sistemas Operativos Quinta edición. Editorial PEARSON. México 1999. 912 paginas. 8 http://es.wikipedia.org/wiki/Unix 9 http://es.wikipedia.org/wiki/Andrew_S._Tanenbaum
el kernel de Minix tenia todas las características del sistema Unix. El sistema operativo Minix10 era distribuido libremente con el código fuente para correr inicialmente en procesadores Intel. Por esta razón el estudiante Linus Torvalds, de la universidad de Helsinki en Finlandia, comenzó a escribir en 1991 el código del kernel de Linux basándose en el núcleo de Minix. Linus Torvalds ingreso a la universidad en el año de 1988, y luego de aprender a programar en lenguaje C, este empezó a desarrollar el núcleo del sistema Linux para que pudiera correr sobre maquinas Intel 80386. En mayo de 1991 se lanza la primera versión (0.01) del sistema, con un soporte básico para los dispositivos y recursos del sistema. En octubre de 1991 el sistema también ejecutaba el interprete de comandos bash (Bourne Again Shell) , esta es la shell por defecto de los sistema GNU/Linux. En el año 1994 se lanza la versión 1.0 de Linux, esta mejoro el sistema de ficheros, implemento soporte para redes con el protocolo TCP/IP, así como soporte para un mayor numero de dispositivos hardware como tarjetas de red y sonido. El núcleo de Linux se hizo popular en el mundo de las redes y la programación por ser un sistema distribuido libremente en Internet bajo la licencia publica general del proyecto GNU (GPL), esto permitió que muchos programadores del mundo descargaran el kernel, lo modificaran y aportaran en el desarrollo de las nuevas versiones del kernel haciendo mejoras del mismo. Como Linux era un software que podía descargarse, modificarse y usarse libremente según los términos de la licencia GPL, surgieron algunos proyectos (Debian y Red Hat), que utilizaron las diferentes versiones del kernel de Linux y las aplicaciones desarrolladas por el proyecto GNU para crear un sistema operativo o distribución propia. 10 http://es.wikipedia.org/wiki/Minix
En la actualidad existen diferentes versiones del kernel11 de Linux que pueden ser descargadas libremente desde la pagina oficial del proyecto, y distribuciones GNU/Linux que se descargan desde los sitios WEB oficiales para ser usadas. 1.3 Conceptos previos de software libre Software Libre: Es una filosofía de libertad aplicada al desarrollo y distribución de software, que permite adaptar los programas a las necesidades del usuario, con la oportunidad de redistribuirlo sin necesidad de pagar por hacerlo. Las cuatro libertades 12 del software permiten utilizar el programa con cualquier propósito (Libertad 0), estudiar el código y el funcionamiento del programa para adaptarlo a las necesidades del usuario (Libertad 1), distribuir las copias (libertad 2), mejorar un programa y publicar las mejoras (libertad 3). Open Source13: Este término se utilizo para remplazar la ambigüedad que existía con el concepto Free software, debido a que esta palabra tenía varios significados en idioma ingles. Open Source es una comunidad que fue liderada en sus inicios por Bruce Perens y Eric Raymond, una de las finalidades de este movimiento es permitir acceder al código fuente de un programa y poder modificarlo, pero al momento de redistribuirlo se puede utilizar una licencia conveniente para el desarrollador del programa. Qué es GNU14?: Es un acrónimo recursivo en ingles que significa GNU No es Unix. El proyecto GNU fue iniciado por Richard Stallman a mediados de la década del 80 y buscaba la creación de un sistema operativo gratuito, con aplicaciones de usuario libres para que corrieran sobre el sistema operativo. Licencia GPL15 (GNU Public License): Es una licencia de software que garantiza las 4 libertades del software descritas por la FSF y además especifica que todo programa distribuido bajo esta licencia es software libre. 11http://www.kernel.org/ 12 http://www.gnu.org/philosophy/free-sw.es.html 13 http://es.wikipedia.org/wiki/C%C3%B3digo_abierto 14 http://es.wikipedia.org/wiki/GNU 15 http://es.wikipedia.org/wiki/GNU_General_Public_License http://www.fsf.org/licensing/licenses/gpl.html
Free Software Foundation16: Fundada por Richard Stallman en 1985, para recaudar fondos, prestar apoyo logístico, técnico y legal al software desarrollado en el proyecto GNU. GNU/Linux: Es un sistema operativo de propósito general, que integra las aplicaciones libres desarrolladas por el proyecto GNU, con el kernel creado por Linus Torvalds. Páginas man: Las páginas del manual en las distribuciones GNU/Linux, son los manuales o la documentación que acompaña a cada una de las aplicaciones o comandos del sistema. 16 http://es.wikipedia.org/wiki/Free_Software_Foundation
2. Comandos básicos utilizados en el sistema GNU/Linux Objetivos ● Estudiar la sintaxis y el uso de algunos de los comandos básicos utilizados por el sistema GNU/Linux. ● Utilizar la consola del sistema para ejecutar algunos comandos básicos utilizados por el sistema GNU/Linux. ● Conocer la estructura básica del sistema de archivos de GNU/Linux y estudiar la sintaxis de uso de los comandos utilizados para el manejo de archivos. 2.1 Listado de comandos mas utilizados En el siguiente listado encontraremos los comandos17 mas utilizados en el sistema operativo GNU/Linux: cat , este comando nos permite visualizar la información que contiene un fichero plano. cd , este comando nos permite cambiar de un directorio a otro, accede al directorio que se especifique después del comando. chmod , cambia los permisos de acceso al fichero, teniendo en cuneta los tres grupos de permisos establecidos para el fichero. clear, este comando limpia el texto de la pantalla o el contenido de la consola. 17 http://www.ajpdsoft.com/modules.php?name=news&file=article&sid=155 http://ubunturoot.wordpress.com/2007/11/06/comandos-basicos-para-linux/ http://www.webtutoriales.com/tutoriales/linux/comandos-linux.23.html VIÑAS, Roger Baig; LLINAS, Francesc. Sistema Operativo GNU/Linux básico. Primera edición. UOC. España 2003. 261 paginas.
cp , este comando permite copiar el fichero nombrado en el parámetro de origen, en otro lugar del disco definido por el parámetro de destino. find , realiza la búsqueda de un fichero con base a opciones pasadas como parámetro. date, esta orden imprime en pantalla la fecha y la hora actual. ps, informa cuales son los procesos que se están ejecutando en el sistema. kill , este comando elimina el proceso pasado como parámetro. Este comando es útil cuando queremos matar procesos que se inician al momento de arrancar el sistema. df (Disk free), informa sobre el espacio disponible en el sistema de archivos. du (Disk Usage), indica cuanto ocupa de espacio un directorio con todos los ficheros que contiene dentro. file , la orden file permite establecer de que tipo es el fichero, pasado como parámetro. head , este comando muestra las primeras líneas de un fichero plano, el parámetro “-n” permite determinar el número de líneas que se quieren mostrar. tail , este comando visualiza el final de las líneas de un fichero plano, esta orden funciona de manera contraria a head.
last, la orden last nos muestra información a cerca de los últimos usuarios que han accedido en el sistema. passwd , este comando permite cambiar o asignar la contraseña de acceso al sistema. Este comando es de gran utilidad en GNU/Linux porque es recomendable para un usuario cambiar periódicamente la contraseña de acceso al sistema. ls , lista los ficheros y directorios que se encuentran en el directorio donde estemos trabajando o el pasado como parámetro. Este listado se filtra y se visualiza, con base a los atributos pasados como parámetro. man , edita un manual de ayuda completo, del comando o programa pasado como parámetro. mkdir , crea un directorio en el sistema de archivos, con el nombre especificado como parámetro después del comando. more , Este comando edita el contenido de un fichero plano igual que el comando cat, pero esta orden tiene mayor utilidad cuando el contenido del fichero es muy extenso y para mostrar su contenido se requiere mas de una pantalla. mv , se utiliza para cambiar el nombre del primer fichero por el segundo. También se puede emplear para mover un fichero a un directorio especifico. pwd, informa cual es el directorio o ruta en la que se encuentra trabajando el usuario. rm , borra el fichero pasado como parámetro después del comando, esta orden pude ir acompañada de algún atributo.
rmdir , borra un directorio pasado como parámetro, pero teniendo en cuenta que el directorio este vacío, es decir que no tenga ficheros en su interior. who, muestra un listado con la información de los usuarios que están utilizando el sistema. 2.2 Como ingresar a la consola en GNU/Linux En la actualidad existen dos entornos de escritorio muy utilizados por las distribuciones GNU/Linux, estos son Gnome y KDE. En KDE la aplicación se llama Konsole y en Gnome se llama gnome-terminal. Como ingresar a la consola de GNU/Linux Ubuntu: Para ingresa a la aplicación gnome-terminal en Ubuntu 9.04 es muy sencillo, simplemente se va al menú Aplicaciones --- Accesorios --- Terminal. 2.3 Ejemplos de ejecución de algunos comandos básicos cat pedro@ubuntupedro:~$ cat nomFichero ******** Probando el comando cat ******** Contenido del Fichero... Contenido del Fichero... Contenido del Fichero... pedro@ubuntupedro:~$ date pedro@ubuntupedro:~$ date mié ago 9 12:21:32 COT 2006 pedro@ubuntupedro:~$
ps pedro@ubuntupedro:~$ ps PID TTY TIME CMD 7838 pts/0 00:00:00 bash 10396 pts/0 00:00:00 ps pedro@ubuntupedro:~$ kill pedro@ubuntupedro:~$ ps PID TTY TIME CMD 7838 pts/0 00:00:00 bash 7836 pts/0 00:00:00 gnome-terminal 10396 pts/0 00:00:00 ps pedro@ubuntupedro:~$ kill -9 7836 pedro@ubuntupedro:~$ ps PID TTY TIME CMD 7838 pts/0 00:00:00 bash 10396 pts/0 00:00:00 ps pedro@ubuntupedro:~$ df pedro@ubuntupedro:~$ df S.ficheros Bloques de 1K Usado Dispon Uso% Montado en /dev/hda5 19251772 1451036 16822784 8% / tmpfs 453328 0 453328 0% /dev/shm /dev 19251772 1451036 16822784 8% /.dev none 5120 2824 2296 56% /dev pedro@ubuntupedro:~$ du pedro@ubuntupedro:~$ du -sk 12140 . pedro@ubuntupedro:~$ file pedro@ubuntupedro:~$ file pedro.sxw pedro.sxw: Zip archive data, at least v2.0 to extract pedro@ubuntupedro:~$ pedro@ubuntupedro:~$ file pantallasos pantallasos: directory pedro@ubuntupedro:~$ pedro@ubuntupedro:~$ file lista lista: ASCII text pedro@ubuntupedro:~$ head pedro@ubuntupedro:~$ head -3 dia #Dias de la semana echo "" if [ $# -lt 1 ]; then pedro@ubuntupedro:~$
tail pedro@ubuntupedro:~$ tail -3 dia exit 1 ;; esac pedro@ubuntupedro:~$ last pedro@ubuntupedro:~$ last pedro pts/0 :0.0 Wed Aug 9 12:14 still logged in pedro :0 Wed Aug 9 12:12 still logged in reboot system boot 2.6.10-5-386 Wed Aug 9 12:12 (00:39) root pts/0 :0.0 Tue Aug 8 06:05 - down (00:00) pedro :0 Tue Aug 8 06:02 - down (00:03) reboot system boot 2.6.10-5-386 Tue Aug 8 06:02 (00:03) root pts/0 :0.0 Sun Aug 6 06:40 - down (00:00) pedro pts/0 :0.0 Sun Aug 6 06:32 - 06:32 (00:00) pedro :0 Sun Aug 6 06:31 - down (00:09) reboot system boot 2.6.10-5-386 Sun Aug 6 06:30 (00:09) root pts/0 :0.0 Sun Aug 6 06:26 - down (00:00) root pts/1 :0.0 Sun Aug 6 06:22 - 06:22 (00:00) pedro pts/0 :0.0 Sun Aug 6 06:19 - 06:24 (00:05) pedro :0 Sun Aug 6 06:15 - down (00:10) reboot system boot 2.6.10-5-386 Sun Aug 6 06:14 (00:11) root pts/0 :0.0 Wed Aug 2 13:08 - down (00:00) pedro pts/0 :0.0 Wed Aug 2 13:05 - 13:08 (00:02) pedro :0 Wed Aug 2 13:02 - down (00:06) reboot system boot 2.6.10-5-386 Wed Aug 2 13:02 (00:06) reboot system boot 2.6.10-5-386 Wed Aug 2 04:29 (00:00) pedro :0 Wed Aug 2 04:27 - 04:28 (00:00) wtmp begins Wed Aug 2 04:27:43 2006 pedro@ubuntupedro:~$ passwd root@ubuntupedro:/home/pedro # passwd loco Enter new UNIX password: Retype new UNIX password: Sorry, passwords do not match passwd: Authentication information cannot be recovered root@ubuntupedro:/home/pedro # 2.4 Manejo de archivos y directorios 2.4.1 Estructura del sistema de archivos La estructura del sistema de archivos del sistema GNU/Linux es jerarquía, es decir tiene una estructura en forma de árbol. El directorio raíz del sistema de archivos es el root, este se representa por el carácter “/”.
El carácter también es utilizado para separar los directorios al especificar una ruta. El ejemplo de una ruta valida puede ser: ● /home/pedro ● /home/pedro/trabajos ● /bin/cat ● /etc/passwd
Como se muestra en las dos graficas anteriores, existen varios ficheros de tipo directorio que conforma el sistema de archivos de GNU/Linux. Entre principales directorios de la distribución GNU/Linux Ubuntu encontramos: ● bin: Dentro de este directorio encontramos los ficheros ejecutables o programas básicos que utilizan los usuarios normales para interactuar con el sistema. ● boot: Dentro de este directorio se encuentran los archivos relacionados con el arranque del sistema. ● dev: En este directorio del sistema de archivos se encuentran los principales ficheros relacionados con el hardware de la computadora. ● etc: En este directorio están los ficheros relacionados con la configuración y administración del sistema. ● home: Directorio donde se crean los directorios de trabajo de cada usuarios del sistema para que estos guarden sus ficheros. ● lib: Aquí encontramos las librerías del sistema. ● media: Este directorio esta relacionado con el montaje de las unidades de disco externas. ● root: Este es directorio de trabajo del superusuario (root) del sistema GNU/Linux. ● sbin: En este directorio se encuentran los comandos relacionados con la administración del sistema y solo pueden ser ejecutados únicamente por el superusuario (root). ● tmp: Este directorio se utiliza para almacenar archivos temporalmente, cuando el sistema se reinicia, los ficheros se borran. ● usr: En este directorio se almacenan los programas de usuario. 2.4.2 Modos de acceso a un fichero en GNU/Linux Para determinar los permisos de acceso a un fichero supongamos que tenemos listado en formato largo el siguiente archivo: drwxr-xr-x 1 pedro pedro 6194 2006-07-12 21:54 trabajos Los caracteres subrayados corresponden a los modos o permisos de acceso al fichero.
d rwx r-x r-x Tipo de Us uario Grupo Otros archivo ● El primer carácter (d) determina que el fichero es un directorio. ● El primer grupo de permisos (rwx) determina que el usuario creador del fichero, tiene permisos de lectura (r) escritura (w) y ejecución (x) sobre el fichero. Es decir tiene todos los privilegios sobre el archivo. ● El segundo grupo de permisos (r-x) determina que los usuarios pertenecientes al mismo grupo de trabajo del usuario propietario del fichero, tendrán permisos de lectura y ejecución sobre el archivo. Es decir solo podrán ves el contenido del fichero pero no podrán modificarlo. ● El tercer grupo de permisos (r-x) determina que cualquier otro usuario del sistema solo tiene permisos de lectura y ejecución sobre el archivo. Es decir solo podrán ver el contenido del fichero pero no podrán modificarlo. 2.4.3 Comandos para el manejo de archivos y directorios Listado de información El comando utilizado para listar el contenido del directorio en el que nos encontramos trabajando o el directorio pasado como parámetro es ls, para filtrar la salida por pantalla de este comando podemos utilizar diferentes parámetros precedidos por el signo menos (-). Entre las opciones más importantes del comando ls encontramos: ● -a: Muestra un listado con todos los archivos y directorios incluidos los ocultos. ● -l: Muestra el listado de los archivos de un directorio con un formato largo, es decir visualiza en pantalla toda la información del fichero, entre la que encontramos: modos de acceso, número de enlaces, propietario, grupo, tamaño en bytes, fecha de la última creación y nombre del fichero. ● -R: Lista recursivamente todos los directorios y subdirectorios. ● -t: Muestra el listado de archivos de un directorio según la fecha de modificación, ordenando los ficheros que se han modificado recientemente primero.
pedro@ubuntupedro:~$ ls automatix.htm ejmplos.doc pantallasos buscar General pedro.sxw Desktop lista pruba1 dia list saludo pedro@ubuntupedro:~$ pedro@ubuntupedro:~$ ls -l total 468 -rwx------ 1 pedro pedro 138800 2009-03-08 18:28 Automatix.htm -rwxr-xr-x 1 pedro pedro 956 2009-06-15 04:20 buscar drwxr-xr-x 2 pedro pedro 4096 2009-08-06 06:36 Desktop -rwxr-xr-x 1 pedro pedro 691 2009-06-15 10:23 dia -rw-r-r-- 1 pedro pedro 21504 2009-08-10 03:26 ejemplos.doc drwxr-xr-x 34 pedro pedro 4096 1969-12-31 19:00 General -rw-r-r-- 1 pedro pedro 313 2009-06-15 04:44 lista -rwxr-xr-x 1 pedro pedro 655 2009-06-01 06:02 listar drwxr-xr-x 2 pedro pedro 4096 2009-08-06 06:36 pantallasos -rw-r-r-- 1 pedro pedro 5732 2009-01-16 12:54 pedro.odt -rwxr-xr-x 1 pedro pedro 99 2009-01-16 13:06 prueba1 -rw-r-r-- 1 pedro pedro 389 2009-03-08 15:44 saludo pedro@ubuntupedro:~$ La primera columna indica los modos o permisos de acceso al fichero, como se explico en el apartado anterior el primer carácter determina el tipo de fichero y los otros nueve caracteres, las ternas de permisos. La segunda columna o campo especifica al número de enlaces que tiene el fichero dentro del sistema de archivos. Las dos columnas siguientes definen el nombre del usuario propietario del fichero y el grupo de trabajo al que pertenece este usuario. La quinta columna indica el tamaño en bytes del archivo, la próxima columna corresponden a la fecha y hora de la ultima modificación que se realizo sobre el fichero y por ultimo el nombre del fichero. Creación de directorios Para crear directorios se utiliza el comando mkdir, la sintaxis para utilizar este comando es la siguiente: mkdir Debemos tener permisos de escritura (w) sobre el directorio en el que deseamos crear el nuevo directorio.
Por ejemplo supongamos que estamos en el directorio de trabajo del usuario pedro: pedro@ubuntupedro:~$ pwd /home/pedro pedro@ubuntupedro:~$ Si quiero crear un directorio llamado estudiantes dentro de el directorio pedro entonces escribo la siguiente orden: pedro@ubuntupedro:~$ mkdir estudiantes Para comprobar que se creo el nuevo directorio dígito el comando ls -l: pedro@ubuntupedro:~$ ls -l total 468 -rwx------ 1 pedro pedro 138800 2009-03-08 18:28 Automatix.htm -rwxr-xr-x 1 pedro pedro 956 2009-06-15 04:20 buscar drwxr-xr-x 2 pedro pedro 4096 2009-08-06 06:36 Desktop -rwxr-xr-x 1 pedro pedro 691 2009-06-15 10:23 dia -rw-r-r-- 1 pedro pedro 21504 2009-08-10 03:26 ejemplos.doc drwxr-xr-x 1 pedro pedro 4096 2009-08-11 10:43 estudiantes drwxr-xr-x 34 pedro pedro 4096 1969-12-31 19:00 General -rw-r-r-- 1 pedro pedro 313 2009-06-15 04:44 lista -rwxr-xr-x 1 pedro pedro 655 2009-06-01 06:02 listar drwxr-xr-x 2 pedro pedro 4096 2009-08-06 06:36 pantallasos -rw-r-r-- 1 pedro pedro 5732 2009-01-16 12:54 pedro.odt -rwxr-xr-x 1 pedro pedro 99 2009-01-16 13:06 prueba1 -rw-r-r-- 1 pedro pedro 389 2009-03-08 15:44 saludo pedro@ubuntupedro:~$ Si quiero guardar mis programas en una carpeta que se llame programas dentro del directorio estudiantes, creo una carpeta que se llame programas dentro del directorio estudiantes. Ejecuto los siguientes comandos: pedro@ubuntupedro:~$ pwd /home/pedro pedro@ubuntupedro:~$ cd estudiantes pedro@ubuntupedro:~/estudiantes$ mkdir programas pedro@ubuntupedro:~/estudiantes$ ls programas pedro@ubuntupedro:~/estudiantes$ Miro en que directorio de trabajo me encuentro con el comando pwd, luego entro al directorio estudiantes con el comando cd. Posteriormente creo el nuevo directorio programas con el comando mkdir y finalmente ejecuto el comando ls para ver el nuevo
directorio dentro de estudiantes. Movimiento entre directorios Para desplazarnos por el sistema de ficheros en GNU/Linux y poder cambiarnos de un directorio a otro se utiliza el comando cd. Al utilizar este comando se usa la siguiente sintaxis: cd Supongamos que tenemos la siguiente estructura jerárquica de archivos tal como se muestra en la figura, en donde tenemos el directorio raíz (/) al cual pertenece un directorio llamado home, dentro del directorio home existe un subdirectorio llamado pedro o cualquier otros directorio de trabajo. Dentro de pedro hay un subdirectorio llamado pedrogs y en el interior de este están los subdirectorios documentos, programas y talleres. /home /pedro /pedrogs /documentos /programas /talleres Recordemos que en el directorio /home, es donde se almacenan los directorios de trabajo de los usuarios del sistema. En este caso /home/pedro, será el directorio de trabajo del usuario pedro. $ cd documentos $ pwd /home/pedro/pedrogs/documentos $ Estamos en el directorio documentos, para irnos al directorio talleres tenemos que retroceder al directorio pedrogs y luego desplazarnos al directorio talleres:
Se debe tener en cuenta que el comando utilizado para desplazarnos al directorio inmediatamente anterior al que nos encontramos es cd.. $ cd.. $ pwd /home/pedro/pedrogs $ cd talleres De esta forma (cd..) nos devolvemos a pedrogs y luego nos vamos al directorio talleres. En el caso de directorios absolutos, nos podemos mover dando la ruta completa del directorio al que deseamos desplazarnos. Por ejemplo, para acceder dentro del directorio talleres que se encuentra dentro del directorio pedrogs, debemos saber la ruta completa para desplazarnos de manera directa (/home/pedro/pedrogs/talleres). Si deseamos movernos a nuestro directorio de trabajo, podemos hacerlo dando la trayectoria completa hacia el fichero: $ cd /home/pedro Existen varias maneras de regresarse al directorio de trabajo de un usuario. La primera es usando una variable de entrono ($HOME) que tiene definido el directorio del usuario, y se usa de la siguiente manera: $ cd $HOME $ pwd /home/pedro $ La otra puede ser simplemente usando el comando cd sin pasarle ningún parámetro: $ cd $ pwd /home/pedro $
Copiado de archivos Para copiar archivos se utiliza el comando cp, este comando se ejecuta de la siguiente manera: cp El comando permite copiar el archivo especificado en el parámetro origen hacia el destino, si el destino es un directorio podemos indicarle varios ficheros de origen, estos ficheros de origen serán copiados en el directorio de destino. /home /pedro /pedrogs /documentos /programas /talleres Teniendo en cuenta la siguiente estructura jerárquica anterior, supongamos que estamos en el directorio talleres y deseamos copiar un archivo llamado taller1, al directorio pedro: $ pwd /home/pedro/pedrogs/talleres $ cp taller1 /home/pedro Varios archivos también se pueden copiar al mismo tiempo a un directorio utilizando el comodín *. Supongamos que estamos en el directorio pedro y queremos copiar todos los archivos que terminen en .sh, para almacenarlos en el directorio pedrogs. $ cp *.sh /home/pedro/pedrogs Para hacer la operación anterior pero con todos los archivos que contengan los caracteres ejemplo: $ cp ejemplo* /home/pedro/pedrogs
Para copiar de forma recursiva podemos utilizar el parámetro -r, este copia todos los ficheros y directorios contenidos en un directorio de origen, hasta un directorio de destino. Si queremos copiar el contenido del directorio pedro, con todos los ficheros y subdirectorios que cuelgan dentro de él, en el directorio pedrogs: $pwd /home $ cp -r pedro /home/pedro/pedogs Borrado de archivos y directorios Para borrar archivos o directorios el sistema proporciona los comandos rm y rmdir, con rm podemos eliminar cualquier tipo de fichero en el sistema y rmdir permite borrar directorios siempre que estos no contengan otro fichero dentro de el. Entre los atributos que podemos pasar como parámetro al comando rm encontramos: ● -r: Realiza un borrado recursivo, eliminando un directorio y los subdirectorios que este contenga, de manera recursiva. ● -i: Realiza una pregunta de confirmación antes de borrar un fichero. La sintaxis para ejecutar el comando es la siguiente: rm Para eliminar un directorio, este tiene que estar vació y utilizamos la siguiente sintaxis: rmdir -r Con la siguiente orden le indicamos al shell bash que antes de borrar el archivo ejemplos.doc nos pida confirmación: $ rm -i ejemplos.doc rm: remove 'ejemplos.doc'? y $
Con la acción anterior borramos un archivo, cuando este se encuentra en el mismo directorio del fichero que se quiere borrar. También podemos eliminarlo dando la ruta absoluta de la ubicación del mismo: $ rm -i /home/pedro/ejemplos.doc rm: remove 'ejemplos.doc'? y $ Supongamos que deseamos eliminar un directorio que no esta vació, en este caso el contenido del directorio que vamos a borrar es el de pedrogs. $ ls -l total 2 -rw-rw-rw- 1 pedro pedro 2124 2009-06-01 06:02 taller.txt -rw-rw-rw- 1 pedro pedro 4988 2009-06-15 04:44 prueba.txt $ ahora intentemos borrar el directorio pedrogs: $ rmdir pedrogs/ rmdir: pedrogs: Directory not empty $ No se puede borrar porque tiene dos archivos dentro de él, para borrarlo primero debemos borrar los archivos contenidos en el directorio pedrogs, la siguiente instrucción me permite borrar todos los archivos contenidos en el directorio: $ rm pedrogs/* Una vez borrados los archivos que cuelgan del directorio pedrogs, puedo borrar el directorio sin ningún problema: $ rmdir pedrogs Para borrar el directorio pedrogs de una sola vez, lo puedo hacer de manera recursiva con el comando:
$ rm -r pedrogs Renombrado y traslado de archivos Para cambiar el nombre de un archivo por otro o mover un fichero de un lugar a otro, utilizamos el comando mv, este también permite mover varios archivos a otro directorio. La sintaxis para ejecutar el comando puede ser la siguiente: mv o mv Si tenemos un archivo que se llama ejemplos y lo queremos renombrar por otro que se llame trabajo basta con ejecutar el siguiente comando: $ mv ejemplos trabajo El ejemplo anterior funciona si los dos archivos están en el mismo directorio. También puedo mover uno o varios ficheros a un directorio especifico en el sistema de archivos. El siguiente ejemplo mueve el archivo lista al directorio pedrogs: $ mv lista /home/pedro/pedrogs Cambio de permisos, propietario y grupo El comando chmod, permite cambiar los modos o permisos de acceso a un archivo o directorio, su sintaxis es la siguiente: chmod +/- Después de escrito el comando se debe especificar a que usuario queremos modificarle los permisos de acceso, las identidades de este parámetro pueden ser: ● u (user): Especifica que se quieren modificar los permisos de acceso al usuario
propietario del fichero. ● g (group): Especifica que se quieren modificar los permisos de acceso a los usuarios que pertenecen al mismo grupo de trabajo del propietario del fichero. ● o (others): Especifica que se quieren modificar los permisos de acceso a los otros usuarios del sistema, Es decir a los usuarios que no pertenecen al grupo de trabajo del propietario del fichero. Luego de especificar la identidad del usuario, colocamos la operación + o – para añadir o eliminar un permiso, ya sea al usuario dueño del fichero, a los usuarios del grupo u otros usuarios del sistema. Los modos o permisos pueden ser cualquier combinación de rwx: ● r (read): Lectura ● w (write): Escritura ● x (exec): Ejecución Si el usuario pedro quiere que un archivo en particular, digamos que se llama carta1, no sea leído por nadie en el sistema salvo por él y por el usuario root tendría que usar: $ ls -l -rw-rw-rw- 1 pedro usuarios 21504 2009-06-15 04:44 carta1 $ chmod go-rw carta1 Al digitar nuevamente el comando ls -l, veremos que los nuevos permisos de acceso al fichero son los siguientes: $ ls -l -rw------- 1 pedro usuarios 21504 2009-06-15 04:44 carta1 $ A continuación en los permisos de acceso del fichero llamado programa1, se agregara el permiso de escritura para los miembros del mismo grupo del usuario propietario del fichero: $ ls -l -rw-r--r-- 1 pedro usuarios 1563 2009-06-15 04:20 programa1 $ chmod g+w programa1
$ ls -l -rw-rw-r-- 1 pedro usuarios 1563 2006-09-15 04:20 programa1 $ Otro ejemplo cambiando permisos al ejemplo anterior seria: $ chmod go-r,o+w programa1 -rw--w--w- 1 pedro usuarios 1563 2009-06-15 04:20 programa1 $ 2.4.4 Herramienta gráfica Nautilus (GNU/Linux Ubuntu 9.04) Para el manejo de archivos y directorios, el sistema operativo GNU/Linux Ubuntu nos ofrece una poderosa herramienta para la gestión de archivos y carpetas, muy similar al Explorador de Windows, llamada Nautilus. Nautilus es un shell gráfico para el entorno de escritorio Gnome, que facilita la administración de sus archivos y el resto del sistema en general. Las siguientes figuras nos describen el aspecto de la herramienta. El procedimiento para acceder a la herramienta Nautilus de la distribución GNU/Linux Ubuntu, es la siguiente: Nos vamos al menú Lugares, luego nos desplazamos al submenú Carpeta personal: Lugares --- Carpeta personal Lugares --- Equipo
Entre los principales elementos que encontramos en esta ventana están: ● Una Barra de Títulos, que muestra el nombre del directorio en el que nos encontramos: ● Una Barra de Menús que nos ayuda a realizar la operaciones sobre los archivos: ● Una Barra de Herramientas estándar, que contiene los siguientes botones:
● El Botón Adelante, para desplazarnos a la próxima pagina, el botón Subir y el botón Recargar, para actualizar cambios en el directorio, entre otros: ● El Botón Inicial, el cual nos devuelve o nos posiciona en el directorio de trabajo que el usuario tiene por defecto, para almacenar la información. También conocido con el nombre de Home: ● El Botón Equipo, que nos muestra las diferentes unidades del sistema y el sistema de archivos. ● Posee una Barra de Direcciones, nos muestra la ruta donde estamos ubicados en el momento, y en la cual podemos escribir la ruta del directorio del sistema de archivos, en el cual deseamos ubicarnos.
Otra forma de acceder a Nautilus es cuando estamos trabajando en la terminal, entonces simplemente dimitamos el nombre de la herramienta, como si de un comando se tratara, tal como vemos en el siguiente gráfico: Nautilus permite visualiza los archivo de tres formas, una es ver como iconos, ver como lista y lista compacta:
Si hacemos clic derecho sobre cualquier archivo se nos despliega un menú de contexto, parecido al de Explorador de Windows, con opciones como: Abrir con, Copiar el archivo, Cortar el archivo, Crear un enlace, Renombrar..., Mover a la papelera, Enviar a..., Crear archivador..., propiedades, con las cuales podremos hacer muchas operaciones sobre los archivos del sistemas:
3. Administración de usuarios y grupos Objetivos ● Conocer quien es el usuario administrador de los sistemas GNU/Linux y cuales son las labores administrativas básicas, que este realiza dentro del sistema. ● Estudiar la estructura de los ficheros /etc/passwd, /etc/group y /etc/shadow, importantes para la creación de usuarios y grupos en el sistema. ● Conocer la sintaxis de los principales comandos utilizados para crear, eliminar y modificar la información de usuarios y grupos del sistema. ● Conocer alguna herramientas gráficas que facilitan la creación de usuarios y grupos el los sistemas GNU/Linux. 3.1 El superusuario o root En el sistema GNU/Linux existe un usuario que administra el sistema llamado root18 y tiene todos los privilegios de acceso, sobre los recursos del sistema para realizar cualquier tipo de cambios o configuraciones. Entre las acciones que puede realizar el superusuario root encontramos: Eliminar ficheros, matar procesos, configurar ficheros, crear usuarios, instalar paquetes, etc. En los sistemas GNU/Linux el root tiene un identificador de usuario que lo distingue de los demás usuarios, esta identificación es el número 0 y se le asigna cuando se instalan la mayoría de distribuciones GNU/Linux. Como se menciono el root tiene acceso a todos los recursos y además cuenta con los conocimientos técnicos necesarios para realizar las labores administrativas pertinentes, que proporcionen a los usuarios un entorno para trabajar de forma segura y estable. 18 http://es.wikipedia.org/wiki/Root
3.2 Adquirir permisos de superusuario Una forma de entrar de manera sencilla al sistema como root, es ingresando por la opción single-user que ofrece el menú de arranque GRUB de GNU/Linux. Cuando estamos en una cuenta de usuario se pueden adquirir los permisos del usuario root o de otro usuario normal del sistema, siempre que se conozca su contraseña. Para este propósito utilizamos el comando su seguido del password. $ su Password: [ Escribimos el password de root ] # usuario@maquina $ su otro_usuario Password: [ Password de "otro_usuario" ] otro_usuario@maquina $ El sistema GNU/Linux Ubuntu posee un comando especial llamado sudo19 para realizar labores administrativas, se utiliza de la siguiente forma: $ sudo Password: [ Password del usuario root ] 3.3 Tipos de usuarios en GNU/Linux El sistemas operativos GNU/Linux encontramos tres tipos de usuarios con perfiles o roles diferentes en cuanto al uso: ● Usuarios normales: Son usuarios inexpertos o novatos en el uso del sistema, cuando son dados de alta en el sistema se les asigna un directorio de trabajo, una shell (generalmente la bash) y no cuentan con privilegios para acceder a todos los recursos del sistema. ● Usuarios del Sistema: Son usuarios creados por el sistema cuando este se instala inicialmente para administrar algunos servicios que cargan automáticamente 19 http://fabianperez.blogspot.com/2008/03/el-usuario-root-en-ubuntu-linux.html
cuando arranca el sistema operativo. Estos usuarios en la mayoría de distribuciones tienen identificadores (UID), que están entre el número 1 y 100. ● root: Es el superusuario del sistema, tiene todos los privilegios sobre los recursos y se encarga de la administración en los sistemas GNU/Linux. 3.4 Ficheros importantes en la creación de usuarios y grupos Cuando administramos un sistema GNU/Linux, podemos realizar diferentes tareas administrativas, una de ellas es la creación y eliminación de usuarios en el sistema. La gestión de usuarios es una actividad importante para todo administrador, debido a que cualquier usuario que ingrese al sistema tiene que tener como mínimo su contraseña de acceso, un directorio de trabajo y una shell. El archivo que contiene información sobre cada cuenta de usuario del sistema esta en el fichero plano /etc/passwd. Las contraseñas de acceso se almacenan de forma encriptada en el archivo /etc/shadow y la información de los grupos para los usuarios existentes en el sistema, se almacena en el archivo /etc/group. Analicemos la estructura de los diferentes ficheros, relacionados con la creación y eliminación de usuarios o grupos en el sistema GNU/Linux20: ● El fichero /etc/passwd: Es un fichero plano que contiene una base de datos con la información de todas las cuentas de usuarios creadas en el sistema y su estructura el la siguiente: Nombre_de_Usuario:password(si usa shadow sera X):UID:GID:Comentario:home_del_usuario:shell Cada campo esta separa do por el carácter : y la descripción es la siguiente: 20 http://lubrin.org/dani/ch11.html
El primer campo corresponde al nombre con el que cada usuario ingresa al sistema. El segundo campo corresponde a la contraseña de cada usuario, en las distribuciones actuales aparece la letra X, porque el sistema almacena el password en el archivo /etc/shadow. El tercer campo corresponde al identificador de usuario UID, este es un número es único que identifica al usuario en el sistema, el root tiene un UID igual a 0. En GNU/ Linux Ubuntu los usuarios normales se crean automáticamente a partir del número 1000. El cuarto campo es el identificador del grupo al que pertenece un usuario GID. El quinto campo es un comentario opcional en donde se agrega algún tipo de información adicional sobre el usuario que se crea. El sexto campo corresponde a la ruta del directorio de trabajo que se le asigna al usuario que se crea. El séptimo campo especifica la shell que utilizara el usuario como interprete, por defecto es los sistemas GNU/Linux es /bin/bash. Ejemplo del fichero /etc/passwd en GNU/Linux Ubuntu: root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/bin/sh man:x:6:12:man:/var/cache/man:/bin/sh lp:x:7:7:lp:/var/spool/lpd:/bin/sh mail:x:8:8:mail:/var/mail:/bin/sh news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh pedro:x:1001:1001:pedro guevara,,,:/home/pedro:/bin/bash mami:x:1002:1002::/home/mami:/bin/bash hermano:x:1003:1003:Jaime Andres,,,:/home/hermano:/bin/bash loco:x:1004:1000:lalocura:/home/loco:/bin/bash hermanita:x:1005:1002:Diana Karina:/home/hermana:/bin/bash nasly:x:1006:1004:nasly sagado,,,:/home/nasly:/bin/bash jairito:x:1007:1007:Jairo Fadul,Monteria,300123456,:/home/jairito:/bin/bash eliecer:x:1008:1005:Ciro Jimenez:/home/cheveres:/bin/sh ● El fichero /etc/group: Es un fichero plano con una base de datos que contiene la información de todos los grupos que se han creado en el sistema y tiene la siguiente estructura: Nombre_grupo:password:GID:Lista_de_usuarios La descripción de los campos es la siguiente: El primer campo corresponde al nombre que se asigna a un grupo, en GNU/Linux cada usuario debe pertenecer a un grupo principal y este generalmente tiene el mismo nombre del usuario. También se pueden crear varios grupos con nombres diferentes para asociarlos a varios usuarios. El segundo campo corresponde a la contraseña del grupo. El tercer campo corresponde al número que identifica al grupo en el sistema GID, este número por lo general es igual al número del UID de usuario, pero el administrador del sistema puede asignara cualquier otro número al identificador de grupo. Finalmente después del campo GID podemos agregar la lista de usuarios que perteneces al grupo, cada usuario debe estar separado por el carácter coma (,).
Ejemplo del fichero /etc/group en GNU/Linux Ubuntu: root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4:pedro tty:x:5: disk:x:6: lp:x:7:cupsys mail:x:8: news:x:9: uucp:x:10: pedro:x:1001: prueba:x:1002:hermano loco:x:1000: hermano:x:1003: nasly:x:1004: jairito:x:1007:pedro,hermano,eliecer cheveres:x:1005: ● El archivo /etc/shadow: Este fichero plano almacena la información encriptada sobre las contraseñas de cada usuario creado en el sistema. Los sistemas GNU/Linux utilizan este archivo como medida de seguridad para no guardar las contraseñas en el archivo /etc/passwd, ya que este puede ser visto por cualquier usuario. El archivo tiene la siguiente estructura: Usuario:password encriptado:días del ultimo cambio:días antes del cambio:días depuse del cambio:tiempo de aviso: días antes de la inhabilitación:periodo que lleva caducado:reservado: 3.5 Comandos para mantenimiento de usuarios Los siguientes comandos21 nos permiten crear, borrar y modificar las cuentas de los usuarios del sistema, así como realizar algunas tareas de administración: adduser/usseradd: Para añadir usuarios al sistema, podemos utilizar uno de estos dos comandos. Crea automáticamente un usuario en el sistema, asignándole el identificador de usuario (UID), el identificador de grupo (GID), el directorio de trabajo y la shell que utilizara el usuario. Para utilizar el comando useradd tenemos que asignar manualmente varios parámetros. 21 http://www.linuxparatodos.net/portal/staticpages/index.php?page=02-cuentas-usuario
passwd: Este comando permite asignarle la contraseña a un nuevo usuario, que se haya creado manualmente (comando useradd) en el sistema. También sirve para que los usuarios normales que ya estén creados, modifiquen periódicamente su contraseña. userdel: Este comando se utiliza en la mayoría de distribuciones GNU/Linux para eliminar usuarios del sistema, cuando se ejecuta se borra automáticamente la línea correspondiente a la entrada del usuario en el archivo /etc/passwd. Además si se utilaza de manera recursiva también elimina el directorio de trabajo del usuario. usermod: Este comando se utiliza para editar la información de una cuenta de usuario ya creada en el sistema y realizar cualquier tipo de modificaciones. whoami: Este comando muestra el nombre de usuario que está usando sistema. finger: Este comando informa sobre el usuario que este conectado en el sistema, también muestra la información de algún usuario que se pase como parámetro al ejecutar el comando. id: Con este comando vemos los identificadores del usuario (UID) y del grupo al que pertenece el usuario (GID). Para crear usuarios con comandos debemos estar trabajando como usuario root o también podemos estar como usuarios normales pero usando el comando sudo (Ubuntu), los comando mas usados para esta operación son adduser y useradd. Con el comando useradd creamos el usuario ingresando manualmente las opciones o parámetros que tendrá el usuario, en el siguiente ejemplo veremos el modo de uso de useradd.
Primero dígito el comando useradd para ver las diferentes opciones de como usar el comando, luego dígito el comando y utilizo las opciones necesarias para crear el usuario. ● -g prueba indica que el usuario pertenecerá al grupo prueba, este grupo debe existir en el sistema. ● -d /home/javier determino cual será el directorio de trabajo del nuevo usuario. ● -s /bin/bash indico que el usuario javier utilizara la shell bash, esta es la interfaz usada por defecto en los sistema GNU/Linux y se encuentra en el directorio /bin/bash. ● -m -k /etc/skel estos dos parámetros se complementan, el -m crea el directorio de trabajo del nuevo usuario y -k copia el contenido del directorio /etc/skel al directorio de trabajo creado como /home/javier. ● La última opción javier indica el nombre que tendrá el nuevo usuario. Una vez creado el usuario le asignamos una contraseña de usuario utilizando el comando passwd seguido del nombre de usuario y se asigna una nueva contraseña para que el usuario de nombre javier ingrese al sistema. Con el comando adduser el sistema me pide que ingrese la información correspondiente al usuario y el se encarga de asignarle un grupo, un directorio de trabajo, una shell y su respectivo identificador de usuario en el sistema.
Posteriormente el sistema me pide que ingrese el password que se le asignara al nuevo usuario, una vez ingresado este debe repetirse para ser confirmado. Además, se ingresa información adicional referente al usuario como: nombre completo, teléfono del trabajo, teléfono de la casa, etc. Esta información será opcional. Finalmente el sistema pregunta si la información ingresada es correcta, si esto es así, confirmamos digitando el carácter y, y el nuevo usuario quedara automáticamente creado en el sistema. Para eliminar un usuario del sistema utilizamos el comando userdel, esta función se usa de la siguiente forma, supongamos que se quiere borrar el usuario andres. root@ubuntupedro:/home/pedro # userdel -r andres Una vez eliminado el usuario del sistema revisamos el fichero /etc/passwd y vemos que la entrada que existía referente a este usuario ya no existe.
También puede leer