Curso de Linux 2020
Curso de Linux 2020
2.3: LPI Linux Essentials 010-160: Using Directories and Listing Files (ES)
Weight: 2
Navigation of home and system directories and listing files in various locations.
Key Knowledge Areas:
Files, Directories
Section 3 | Section 4 | Section 5
Absolute and Relative Paths
Section 4
2.4: LPI Linux Essentials 010-160: Creating, Moving, and Deleting Files (ES)
Weight: 2
Create, move and delete files and directories under the home directory.
Key Knowledge Areas:
3.2: LPI Linux Essentials 010-160: Searching and Extracting Data from Files (ES)
Weight: 3
Search and extract data from files in the home directory.
Key Knowledge Areas:
3.3: LPI Linux Essentials 010-160: Turning Commands Into a Scripts (ES)
Weight: 4
Turning repetitive commands into simple scripts.
Key Knowledge Areas:
Awareness of common text editors
Section 21
Processes
Section 17
4.4: LPI Linux Essentials 010-160: Your Computer on the Network (ES)
Weight: 2
Querying vital networking configuration and determining the basic requirements for a computer
on a Local Area Network (LAN).
Key Knowledge Areas:
Internet
Section 16
Network
Section 16
5.1: LPI Linux Essentials 010-160: Basic Security and Identifying User Types (ES)
Weight: 2
Various types of users on a Linux system.
Key Knowledge Areas:
System Users
Section 19
Root Users
Section 6
5.3: LPI Linux Essentials 010-160: Managing File Permissions and Ownership (ES)
Weight: 2
Understanding and manipulating file permissions and ownership settings.
Key Knowledge Areas:
La línea de comandos de Linux es una interfaz basada en texto que acepta comandos
que se escriben en ella. Estos comandos hacen que una acción se ejecute en el sistema
operativo del equipo. Por supuesto, las ventanas y los iconos son fáciles de usar, sin
embargo, la línea de comandos es a menudo el héroe cuando se trata de la administración del
sistema y la solución de problemas, ya que proporciona una imagen clara de lo que el sistema
está haciendo en cualquier momento dado.
Teniendo en cuenta todo esto, ¿por qué aprender Linux es un buen comienzo para alguien
que está considerando una carrera en TI? Como se ha dicho anteriormente, el uso de Linux
está muy extendido y continúa creciendo en todas las áreas de la tecnología. ¿Qué tienen en
común empresas y organizaciones como NASA, McDonald's, New York Stock Exchange
(NYSE), DreamWorks Animation y el Departamento de Defensa de los Estados Unidos? Sí, lo
adivinó correctamente, todos usan Linux.
Estas empresas tienen algo más en común porque reconocen que invertir en tecnología es
importante en un mundo que está ansioso para adoptar nuevas tecnologías para innovar y
resolver problemas. La proliferación de tecnología en casi todos los aspectos de nuestra vida
ha resuelto muchos problemas pero también ha creado nuevos retos. Por ejemplo, ahora que
casi todo se puede hacer en línea, estamos creando datos digitales a un ritmo muy rápido, lo
cual está creando una demanda para esos datos. Por lo tanto, el conocimiento y las
capacidades técnicas para analizar, procesar, proteger y transmitir estos datos también
está en alta demanda. Aprender Linux puede ayudarle a avanzar en el camino hacia la
adquisición de estos conocimientos y capacidades. Los siguientes son ejemplos de algunas
profesiones de TI que requieren conocimientos de Linux:
Ingeniería de redes: los ingenieros de redes son responsables de administrar los
equipos de red que se utilizan para transmitir datos. El conocimiento de Linux es
fundamental para los ingenieros de red, ya que más de la mitad de los servidores del
mundo están basados en Linux. La mayoría de los sistemas operativos de red se
basan en una variación de Linux.
Ciberseguridad: los profesionales de la ciberseguridad supervisan e investigan las
amenazas a la seguridad de los datos de los sistemas. Linux se utiliza en
ciberseguridad para llevar a cabo pruebas de penetración del sistema y evaluar la
vulnerabilidad de un sistema.
Desarrollo/Programación: los diseñadores y programadores crean aplicaciones
informáticas. La línea de comandos de Linux permite a los diseñadores y
programadores ejecutar secuencias de comandos; una función que permite al usuario
unir comandos para ejecutar acciones complejas en un ordenador. Linux también se
utiliza en este campo porque sólo Linux permite a los usuarios acceder a su código
fuente (o código source), dándoles la oportunidad de experimentar con el código y
aprender mientras lo hacen.
Análisis de datos: los científicos y los analistas de datos clasifican y analizan
conjuntos de datos para encontrar patrones con el fin de informar y predecir
tendencias y comportamientos. Los analistas de datos utilizan Linux debido a la amplia
gama de herramientas y comandos disponibles para el análisis de datos, como MySQL
y más.
Los sistemas operativos Linux vienen en muchas formas. Hay una variedad de distribuciones
disponibles para adaptarse a las necesidades y demandas de muchos sectores de TI. Por
ejemplo, los profesionales de la ciberseguridad pueden usar Linux Kali, los programadores y
diseñadores pueden usar Linux Ubuntu, los usuarios habituales pueden usar Linux Mint y los
servidores empresariales pueden funcionar con Red Hat Enterprise Linux.
A tener en cuenta
Conocimientos de Linux son necesarios para muchas trayectorias profesionales de TI. Por
ejemplo, conocer los comandos básicos de Linux es un requisito previo para programas de
certificación de TI como la popular certificación Cisco Certified CyberOps Associate. Para
obtener más información sobre cómo Linux se aplica a CCNA Cyber Ops, visite la sección al
final de este curso titulada Linux for CCNA Cyber Ops.
Otras importantes razones para usar y aprender Linux incluyen que, en muchos casos,
es gratis, fácil de instalar, de código abierto, y la presencia de una comunidad Linux
activa y disponible para asistencia y apoyo. Esto permite que aquellos que desean
empezar a adquirir competencias en TI puedan empezar a usar Linux de manera fácil.
Como puede ver, ¡hay muchas razones para aprender y explorar Linux!
sysadmin@localhost:~$ ls
Desktop Documents Downloads Music Pictures Public Templates Videos
sysadmin@localhost:~$ ls
Desktop Documents Downloads Music Pictures Public Templates Videos
Argumentos
comando [opciones…] [argumentos…]
Un argumento (argument) se puede usar para especificar algo sobre lo que el comando debe
actuar. Si al comando ls se le da el nombre de un directorio como argumento, obtendremos
como resultado una lista del contenido de ese directorio. En el siguiente ejemplo, el
directorio Documents se utilizará como argumento:
sysadmin@localhost:~$ ls Documents
School alpha-second.txt food.txt linux.txt os.csv
Work alpha-third.txt hello.sh longfile.txt people.csv
adjectives.txt alpha.txt hidden.txt newhome.txt profile.txt
alpha-first.txt animals.txt letters.txt numbers.txt red.txt
Este comando no solamente es lo que parece. ¡Siga leyendo para saber qué más hay detrás
de este truco!
«Linux se basa en código abierto (open source). Linux está diseñado y desarrollado en
comunidad. ¡Usted puede acceder y contribuir a su código fuente (source code)!»
Opciones
comando [opciones…] [argumentos…]
sysadmin@localhost:~$ ls -l
total 32
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Desktop
drwx------ 4 sysadmin sysadmin 4096 Dec 20 2017 Documents
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Downloads
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Music
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Pictures
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Public
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Templates
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Videos
sysadmin@localhost:~$ ls -r
Videos Templates Public Pictures Music Downloads Documents Desktop
Se pueden usar varias opciones a la vez, ya sea como opciones separadas como en -l -r o
combinadas como -lr . El resultado de los siguientes ejemplos sería el mismo:
ls -l -r
ls -rl
ls -lr
sysadmin@localhost:~$ ls -l -r
total 32
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Videos
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Templates
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Public
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Pictures
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Music
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Downloads
drwx------ 4 sysadmin sysadmin 4096 Dec 20 2017 Documents
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Desktop
sysadmin@localhost:~$ ls -rl
total 32
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Videos
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Templates
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Public
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Pictures
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Music
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Downloads
drwx------ 4 sysadmin sysadmin 4096 Dec 20 2017 Documents
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Desktop
Recuerde que las varias opciones se pueden denotar por separado o combinadas:
aptitude -v -v moo
aptitude -vv moo
pwd [OPCIONES]
A tener en cuenta
¡No encienda su impresora todavía! En los inicios de la computación, el resultado de un
comando se enviaba directamente a impresoras físicas. Este método ha sido reemplazado por
pantallas de vídeo que muestran información más rápidamente. Aún así, actualmente
seguimos utilizando la palabra imprimir (print) aunque el resultado se esté mostrando en una
pantalla.
sysadmin@localhost:~$ pwd
/home/sysadmin
El resultado del comando anterior indica que el usuario está actualmente en su carpeta de
inicio, tal y como muestra el sistema de archivos siguiente.
Considere esto
Observe que nuestras máquinas virtuales emplean un indicador para mostrar el directorio de
trabajo actual, resaltado en color azul. En el primer mensaje, el carácter ~ azul es equivalente
a /home/sysadmin, y representa el directorio de inicio del usuario.
sysadmin@localhost:~$
Cambio de Directorios
Los archivos se utilizan para almacenar datos como texto, gráficos y programas. Los
directorios son un tipo de archivo utilizado para almacenar otros archivos: proporcionan una
estructura organizativa jerárquica. La siguiente imagen muestra una versión abreviada de la
estructura del sistema de archivos de nuestras máquinas virtuales.
Al iniciar una máquina virtual nueva, ya sea abriendo el curso o después de usar el botón de
reinicio, usted inicia una sesión como usuario sysadmin en su directorio principal, resaltado
en azul a continuación:
sysadmin@localhost:~$ cd Documents
sysadmin@localhost:~/Documents$
Los directorios son equivalentes a las carpetas en Windows y Mac OS. Al igual que estos
sistemas operativos más populares, una estructura de directorios Linux también tiene un nivel
superior. No se llama “Mi PC”, sino directorio raíz (root) y está representado por el carácter /.
Para desplazarse al directorio root, utilice el carácter / como argumento del comando cd.
sysadmin@localhost:~/Documents$ cd /
sysadmin@localhost:/$
Rutas absolutas
Una ruta absoluta le permite especificar la ubicación exacta de un directorio. Siempre
comienza en el directorio root, por lo tanto siempre comienza con el carácter /. La ruta al
directorio de inicio (home) /home/sysadmin es una ruta absoluta. La ruta comienza en el
directorio root /, se mueve al directorio de inicio home y, a continuación, al
directorio sysadmin. Esta ruta en una interfaz gráfica de usuario (GUI) como la de su
ordenador personal aparecería así:
Utilice esta ruta como argumento para el comando cd para volver al directorio principal del
usuario sysadmin.
sysadmin@localhost:/$ cd /home/sysadmin
sysadmin@localhost:~$
sysadmin@localhost:~$ pwd
/home/sysadmin
Rutas relativas
Una ruta relativa ubica un archivo en relación con la ubicación actual del usuario en el sistema
de archivos. Las rutas relativas no comienzan con el carácter /, comienzan con el nombre de
un directorio. Eche otro vistazo al primer ejemplo de comando cd. En este caso, el argumento
es un ejemplo de la ruta relativa más simple: el nombre de un directorio en su ubicación
actual.
sysadmin@localhost:~$ cd Documents
sysadmin@localhost:~/Documents$
sysadmin@localhost:~/Documents/School/Art$ pwd
/home/sysadmin/Documents/School/Art
A tener en cuenta
El resultado del comando pwd es la ruta absoluta al directorio Art.
A tener en cuenta
En el ejemplo anterior, el comando cd siguió la ruta School/Art:
cd School/Art
Una ruta también se puede dividir en varios comandos cd. El siguiente conjunto de comandos
lograría los mismos resultados:
cd School
cd Art
sysadmin@localhost:~/Documents/School/Art$ cd ..
sysadmin@localhost:~/Documents/School$
Un punto .
Independientemente del directorio en el que se encuentre, el carácter . siempre representa su
directorio actual. Para el comando cd, este atajo no es muy útil, pero será útil para los
comandos que estudiaremos en las secciones siguientes.
El símbolo ~
El directorio principal del usuario actual está representado por el carácter ~ . Como se indicó
anteriormente, siempre comienza su sesión como usuario sysadmin, cuyo directorio de inicio
se encuentra en /home/sysadmin. Para volver a su directorio de inicio en cualquier
momento, puede ejecutar el siguiente comando:
sysadmin@localhost:~/Documents/School$ cd ~
sysadmin@localhost:~$
Listados de archivos
El comando ls se utiliza para enumerar el contenido de un directorio. Ha visto cómo se utiliza
en varios ejemplos anteriores. Esta página le ayudará a sentirse más cómodo con su uso.
ls [OPCIONES] [ARCHIVO]
sysadmin@localhost:~$ ls
Desktop Documents Downloads Music Pictures Public Templates Videos
Para obtener información detallada sobre los archivos, como el tipo de archivo, los permisos,
las propiedades o el sello horario, ejecute una lista larga utilizando la opción -l con el
comando ls. En el ejemplo siguiente, se utiliza una lista del directorio /var/log, ya que
proporciona una variedad de resultados:
sysadmin@localhost:~$ ls -l /var/log/
total 844
-rw-r--r-- 1 root root 18047 Dec 20 2017 alternatives.log
drwxr-x--- 2 root adm 4096 Dec 20 2017 apache2
drwxr-xr-x 1 root root 4096 Dec 20 2017 apt
-rw-r----- 1 syslog adm 1346 Oct 2 22:17 auth.log
-rw-r--r-- 1 root root 47816 Dec 7 2017 bootstrap.log
-rw-rw---- 1 root utmp 0 Dec 7 2017 btmp
-rw-r----- 1 syslog adm 547 Oct 2 22:17 cron.log
-rw-r----- 1 root adm 85083 Dec 20 2017 dmesg
-rw-r--r-- 1 root root 325238 Dec 20 2017 dpkg.log
-rw-r--r-- 1 root root 32064 Dec 20 2017 faillog
drwxr-xr-x 2 root root 4096 Dec 7 2017 fsck
-rw-r----- 1 syslog adm 106 Oct 2 19:57 kern.log
-rw-rw-r-- 1 root utmp 292584 Oct 2 19:57 lastlog
-rw-r----- 1 syslog adm 19573 Oct 2 22:57 syslog
drwxr-xr-x 2 root root 4096 Apr 11 2014 upstart
-rw-rw-r-- 1 root utmp 384 Oct 2 19:57 wtmp
El primer campo contiene en realidad diez caracteres. El primer carácter indica el tipo
de archivo y los nueve siguientes especifican permisos. Los tipos de archivo son:
Símbol
o Tipo de archivo Descripción
Permisos
Los permisos indican cómo determinados usuarios pueden acceder a un archivo. Siga
leyendo para obtener más información sobre los permisos.
Número de enlaces directos
Este número indica cuántos enlaces directos apuntan a este archivo. Los enlaces
directos están fuera del alcance de este módulo, pero están cubiertos en el curso NDG
Linux Essentials.
Propietario del archivo
Los directorios y archivos más grandes pueden mostrarse en kilobytes ya que mostrar
su tamaño en bytes resultaría en un número demasiado grande. Por lo tanto, en el
caso de un directorio, este número podría ser un múltiplo del tamaño de bloque
utilizado por el sistema de archivos. El tamaño de bloque es el tamaño de una serie de
datos almacenados en el sistema de archivos.
Sello horario o de tiempo
Indica la fecha y hora en que el contenido del archivo se modificó por última vez.
Nombre del archivo
Los enlaces simbólicos están fuera del alcance de este módulo, pero están cubiertos
en el curso NDG Linux Essentials.
Ordenar archivos
Por defecto, el resultado del comando ls está ordenado alfabéticamente según el nombre del
archivo. Pero también se puede ordenar usando otros método.
Siga leyendo
Las opciones en los siguientes ejemplos se combinarán con la opción -l para mostrar los
detalles relevantes de cada archivo. Preste atención a los campos correspondientes a la
opción de búsqueda.
La opción -t ordenará los archivos por su sello de tiempo (timestamp):
sysadmin@localhost:~$ ls -l -S /var/log
total 844
-rw-r--r-- 1 root root 325238 Dec 20 2017 dpkg.log
-rw-rw-r-- 1 root utmp 292584 Oct 2 19:57 lastlog
-rw-r----- 1 root adm 85083 Dec 20 2017 dmesg
-rw-r--r-- 1 root root 47816 Dec 7 2017 bootstrap.log
-rw-r--r-- 1 root root 32064 Dec 20 2017 faillog
-rw-r----- 1 syslog adm 19573 Oct 2 22:57 syslog
-rw-r--r-- 1 root root 18047 Dec 20 2017 alternatives.log
drwxr-x--- 2 root adm 4096 Dec 20 2017 apache2
drwxr-xr-x 1 root root 4096 Dec 20 2017 apt
drwxr-xr-x 2 root root 4096 Dec 7 2017 fsck
drwxr-xr-x 2 root root 4096 Apr 11 2014 upstart
-rw-r----- 1 syslog adm 1346 Oct 2 22:17 auth.log
-rw-r----- 1 syslog adm 547 Oct 2 22:17 cron.log
-rw-rw-r-- 1 root utmp 384 Oct 2 19:57 wtmp
-rw-r----- 1 syslog adm 106 Oct 2 19:57 kern.log
-rw-rw---- 1 root utmp 0 Dec 7 2017 btmp
sysadmin@localhost:~$ ls -r /var/log
wtmp lastlog faillog cron.log auth.log alternatives.log
upstart kern.log dpkg.log btmp apt
syslog fsck dmesg bootstrap.log apache2
«¿Sabía que puede encontrar Linux en...?»
Acceso administrativo
Hay muchos comandos de Linux que tratan con información confidencial como contraseñas,
hardware del sistema, u otros que operan bajo circunstancias excepcionales. Evitar que
usuarios ordinarios ejecuten estos comandos ayuda a proteger el sistema. Iniciar una sesión
como usuario root proporciona acceso administrativo, y permite la ejecución de algunos de
los comandos privilegiados.
El comando su
su OPCIONES NOMBRE-DE-USUARIO
Tenga en cuenta que el símbolo del sistema ha cambiado para reflejar que ahora ha iniciado
sesión como usuario root. Para cerrar la sesión y volver a la cuenta sysadmin, use el
comando exit. Note como el símbolo vuelve a cambiar
root@localhost:~# exit
logout
sysadmin@localhost:~$
sysadmin@localhost:~$ sl
-bash: /usr/bin/sl: Permission denied
sysadmin@localhost:~$ su -
Password:
root@localhost:~# sl
(@@) ( ) (@) ( ) @@ () @ O @
( )
(@@@@)
( )
(@@@)
==== ________ ___________
_D _| |_______/ \__I_I_____===__|_________|
|(_)--- | H\________/ | | =|___ ___|
_________________
/ | | H | | | | ||_| |_|| _|
| | | H |__--------------------| [___] | =|
| ________|___H__/__|_____/[][]~\_______| | -|
|/ | |-----------I_____I [][] [] D |=======|____|
__________________
__/ =| o |=-~~\ /~~\ /~~\ /~~\ ____Y___________|__|
____________________
|/-=|___|= || || || |_____/~\___/ |_D__D__D_|
|_D__
\_/ \_O=====O=====O=====O/ \_/ \_/ \_/
\_/
root@localhost:~# exit
logout
sysadmin@localhost:~$
El comando sudo
sudo [OPCIONES] COMANDO
El comando sudo permite a un usuario ejecutar un comando como otro usuario sin tener que
crear un nuevo shell. Para ejecutar un comando con privilegios administrativos utilice el
comando como argumento para el comando sudo. Al igual que pasa con el comando su, el
comando sudo asume por defecto que la cuenta de usuario root debe usarse para ejecutar
comandos.
A tener en cuenta
El comando sudo también puede usarse para cambiar a otras cuentas de usuario. Para
especificar una cuenta de usuario diferente, utilice la opción -u.
Ejecute el comando sl como usuario root poniendo sudo delante de él:
Nota
Recuerde que la contraseña es netlab123. La solicitud de contraseña no aparecerá de
nuevo mientras el usuario continúe ejecutando comandos sudo a intervalos inferiores a cinco
minutos.
sysadmin@localhost:~$ sudo sl
[sudo] password for sysadmin:
(@@) ( ) (@) ( ) @@ () @ O @
( )
(@@@@)
( )
(@@@)
==== ________ ___________
_D _| |_______/ \__I_I_____===__|_________|
|(_)--- | H\________/ | | =|___ ___|
_________________
/ | | H | | | | ||_| |_|| _|
| | | H |__--------------------| [___] | =|
| ________|___H__/__|_____/[][]~\_______| | -|
|/ | |-----------I_____I [][] [] D |=======|____|
__________________
__/ =| o |=-~~\ /~~\ /~~\ /~~\ ____Y___________|__|
____________________
|/-=|___|= || || || |_____/~\___/ |_D__D__D_|
|_D__
\_/ \_O=====O=====O=====O/ \_/ \_/ \_/
\_/
Una vez completado el comando, observe que el símbolo del sistema no ha cambiado, usted
continua bajo la cuenta de inicio sysadmin. El comando sudo sólo proporciona acceso
administrativo para la ejecución del comando especificado. Esto es una ventaja ya que reduce
el riesgo de que un usuario ejecute accidentalmente un comando como usuario root. La
intención de ejecutar un comando es clara; el comando se ejecuta como root si se prefija con
el comando sudo. De lo contrario, el comando se ejecuta como usuario ordinario.
Permisos
Los permisos determinan la forma en que los diferentes usuarios pueden interactuar con un
archivo o directorio. Al enumerar un archivo con el comando ls -l, el resultado incluye
información sobre sus permisos. Para nuestro ejemplo usaremos un script
llamado hello.sh ubicado en el directorio Documents:
Siga leyendo
Utilice el siguiente comando para cambiar al directorio Documents:
sysadmin@localhost:~$ cd ~/Documents
sysadmin@localhost:~/Documents$ ls -l hello.sh
-rw-r--r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh
Tipo de archivo
- rw-r--r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh
El primer carácter de esta salida indica el tipo de archivo. Recuerde que si el primer carácter
es un -, este es un archivo ordinario. Si el carácter fuera una d, se trataría de un directorio.
Permisos
- rw-r--r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh
Después del carácter de tipo de archivo, se muestran los permisos. Los permisos se dividen
en tres grupos de tres caracteres:
Propietario
- rw- r--r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh
Grupo
-rw- r-- r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh
Otros
-rw-r-- r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh
El último grupo es para todos los demás, cualquiera a quien los dos primeros
conjuntos de permisos no sean aplicables. Si no es el usuario que posee el archivo o
un miembro del grupo que posee el archivo, se le aplicará el tercer conjunto de
permisos.
Tipos de permisos
Un archivo o directorio puede presentar tres permisos diferentes: leer, escribir y ejecutar. La
forma en que se aplican estos permisos difiere entre archivos y directorios, como se muestra
en la tabla siguiente:
A tener en cuenta
Comprender qué permisos se aplican en cada momento es una aptitud importante cuando
trabajamos con Linux. Por ejemplo, considere el siguiente conjunto de permisos:
-r--rw-rwx. 1 sysadmin staff 999 Apr 10 2013 /home/sysadmin/test
El método simbólico
chmod [<COJUNTO DE PERMISOS><ACCIÓN><PERMISOS>]... ARCHIVO
Para usar el método simbólico de chmod primero debe indicar qué conjunto de permisos se
está cambiando:
Símbol
o Significado
Símbolo Significado
r leer (read)
w escribir (write)
x ejecutar (execute)
Finalmente, añada un espacio y los nombres de ruta para los archivos a los que quiere
asignar los permisos.
sysadmin@localhost:~/Documents$ ls -l hello.sh
-rw-r--r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh
Sin embargo, actualmente, el permiso de ejecución no ha sido establecido para ninguno de los
grupos de permisos:
De esta manera, intentar ejecutar este script utilizando la siguiente sintaxis produce un error:
sysadmin@localhost:~/Documents$ ./hello.sh
-bash: ./hello.sh: Permission denied
sysadmin@localhost:~/Documents$ ls -l hello.sh
-rwxr--r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh
Finalmente, intente ejecutar el script de nuevo. Utilice la sintaxis de comando que se muestra
a continuación:
./hello.sh
sysadmin@localhost:~/Documents$ ./hello.sh
______________
( Hello World! )
--------------
\
\
<(^)
( )
A tener en cuenta
Observe que para ejecutar el script en el ejemplo anterior, la siguiente combinación de
caracteres ./ se colocó antes del nombre del script.
./ hello.sh
Siga leyendo
Utilice el siguiente comando para cambiar al directorio Documents:
sysadmin@localhost:~$ cd ~/Documents
sysadmin@localhost:~/Documents$ ls -l
total 144
drwx------ 5 sysadmin sysadmin 4096 Dec 20 2017 School
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Work
-rw-r--r-- 1 sysadmin sysadmin 39 Dec 20 2017 adjectives.txt
-rw-r--r-- 1 sysadmin sysadmin 90 Dec 20 2017 alpha-first.txt
-rw-r--r-- 1 sysadmin sysadmin 106 Dec 20 2017 alpha-second.txt
-rw-r--r-- 1 sysadmin sysadmin 195 Dec 20 2017 alpha-third.txt
-rw-r--r-- 1 sysadmin sysadmin 390 Dec 20 2017 alpha.txt
-rw-r--r-- 1 sysadmin sysadmin 42 Dec 20 2017 animals.txt
-rw-r--r-- 1 sysadmin sysadmin 14 Dec 20 2017 food.txt
-rwxr--r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh
-rw-r--r-- 1 sysadmin sysadmin 67 Dec 20 2017 hidden.txt
-rw-r--r-- 1 sysadmin sysadmin 10 Dec 20 2017 letters.txt
-rw-r--r-- 1 sysadmin sysadmin 83 Dec 20 2017 linux.txt
-rw-r--r-- 1 sysadmin sysadmin 66540 Dec 20 2017 longfile.txt
-rw-r--r-- 1 sysadmin sysadmin 235 Dec 20 2017 newhome.txt
-rw-r--r-- 1 sysadmin sysadmin 10 Dec 20 2017 numbers.txt
-rw-r--r-- 1 sysadmin sysadmin 77 Dec 20 2017 os.csv
-rw-r--r-- 1 sysadmin sysadmin 59 Dec 20 2017 people.csv
-rw-r--r-- 1 sysadmin sysadmin 110 Dec 20 2017 profile.txt
-rw-r--r-- 1 sysadmin sysadmin 51 Dec 20 2017 red.txt
sysadmin@localhost:~/Documents$ ls -l hello.sh
-rwxr--r-- 1 root sysadmin 647 Dec 20 2017 hello.sh
A tener en cuenta
Intente ejecutar el script hello.sh de nuevo. ¡Error! ¿Por qué?
sysadmin@localhost:~/Documents$ ./hello.sh
-bash: ./hello.sh: Permission denied
Sólo el usuario propietario tiene permiso para ejecutar. Ahora el usuario root es el usuario
propietario. Ahora este archivo requiere acceso administrativo para ejecutarse. Utilice el
comando sudo para poder ejecutar el script como usuario root.
sysadmin@localhost:~/Documents$ sudo ./hello.sh
[sudo] password for sysadmin:
______________
( Hello World! )
--------------
\
\
<(^)
( )
Cambiar el propietario de un archivo
Inicialmente, el propietario de un archivo es el usuario que lo crea. El comando chown se
utiliza para cambiar el propietario de los archivos y directorios. Cambiar el usuario propietario
requiere acceso administrativo. Un usuario ordinario no puede utilizar este comando para
cambiar el usuario propietario de un archivo, ni tan solo para otorgar propiedad de uno de sus
propios archivos a otro usuario. Sin embargo, el comando chown permite cambiar el grupo
propietario, lo cual puede ser realizado por el usuario root o el propietario del archivo.
Para cambiar el usuario propietario de un archivo, se puede utilizar la siguiente sintaxis. El
primer argumento, [PROPIETARIO], especifica qué usuario debe ser el nuevo propietario. El
segundo argumento, ARCHIVO, especifica el archivo al cual se está cambiando el propietario.
Siga leyendo
Utilice el siguiente comando para cambiar al directorio Documents:
sysadmin@localhost:~$ cd ~/Documents
sysadmin@localhost:~/Documents$ ls -l
total 144
drwx------ 5 sysadmin sysadmin 4096 Dec 20 2017 School
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Work
-rw-r--r-- 1 sysadmin sysadmin 39 Dec 20 2017 adjectives.txt
-rw-r--r-- 1 sysadmin sysadmin 90 Dec 20 2017 alpha-first.txt
-rw-r--r-- 1 sysadmin sysadmin 106 Dec 20 2017 alpha-second.txt
-rw-r--r-- 1 sysadmin sysadmin 195 Dec 20 2017 alpha-third.txt
-rw-r--r-- 1 sysadmin sysadmin 390 Dec 20 2017 alpha.txt
-rw-r--r-- 1 sysadmin sysadmin 42 Dec 20 2017 animals.txt
-rw-r--r-- 1 sysadmin sysadmin 14 Dec 20 2017 food.txt
-rwxr--r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh
-rw-r--r-- 1 sysadmin sysadmin 67 Dec 20 2017 hidden.txt
-rw-r--r-- 1 sysadmin sysadmin 10 Dec 20 2017 letters.txt
-rw-r--r-- 1 sysadmin sysadmin 83 Dec 20 2017 linux.txt
-rw-r--r-- 1 sysadmin sysadmin 66540 Dec 20 2017 longfile.txt
-rw-r--r-- 1 sysadmin sysadmin 235 Dec 20 2017 newhome.txt
-rw-r--r-- 1 sysadmin sysadmin 10 Dec 20 2017 numbers.txt
-rw-r--r-- 1 sysadmin sysadmin 77 Dec 20 2017 os.csv
-rw-r--r-- 1 sysadmin sysadmin 59 Dec 20 2017 people.csv
-rw-r--r-- 1 sysadmin sysadmin 110 Dec 20 2017 profile.txt
-rw-r--r-- 1 sysadmin sysadmin 51 Dec 20 2017 red.txt
sysadmin@localhost:~/Documents$ ls -l hello.sh
-rwxr--r-- 1 root sysadmin 647 Dec 20 2017 hello.sh
A tener en cuenta
Intente ejecutar el script hello.sh de nuevo. ¡Error! ¿Por qué?
sysadmin@localhost:~/Documents$ ./hello.sh
-bash: ./hello.sh: Permission denied
Sólo el usuario propietario tiene permiso para ejecutar. Ahora el usuario root es el usuario
propietario. Ahora este archivo requiere acceso administrativo para ejecutarse. Utilice el
comando sudo para poder ejecutar el script como usuario root.
sysadmin@localhost:~/Documents$ sudo ./hello.sh
[sudo] password for sysadmin:
______________
( Hello World! )
--------------
\
\
<(^)
( )