35
LINUX B LINUX B á á sico (7. Shells(2)) sico (7. Shells(2)) 1 1 LINUX B LINUX B á á sico sico TAKASHI SUGASAWA

LINUX Básico€¦ · LINUX Básico (7. Shells(2)) 4 7.1 Programas y comandos (1) Programas y comandos interiores del shell • Normalmente los comandos son programas, su sustancia

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: LINUX Básico€¦ · LINUX Básico (7. Shells(2)) 4 7.1 Programas y comandos (1) Programas y comandos interiores del shell • Normalmente los comandos son programas, su sustancia

LINUX BLINUX Báásico (7. Shells(2))sico (7. Shells(2)) 11

LINUX BLINUX Báásicosico

TAKASHI SUGASAWA

Page 2: LINUX Básico€¦ · LINUX Básico (7. Shells(2)) 4 7.1 Programas y comandos (1) Programas y comandos interiores del shell • Normalmente los comandos son programas, su sustancia

LINUX BLINUX Báásico (7. Shells(2))sico (7. Shells(2)) 22

Programa del cursoPrograma del curso

1.1. IntroducciIntroduccióón a LINUXn a LINUX2.2. OperaciOperacióón bn báásica de LINUXsica de LINUX3.3. OperaciOperacióón de archivos y directoriosn de archivos y directorios4.4. Editor viEditor vi5.5. ComprensiComprensióón del sistema de ficherosn del sistema de ficheros6.6. Shells(1)Shells(1)7.7. Shells(2)Shells(2)8.8. Shells(3)Shells(3)9.9. Otros comandosOtros comandos

Page 3: LINUX Básico€¦ · LINUX Básico (7. Shells(2)) 4 7.1 Programas y comandos (1) Programas y comandos interiores del shell • Normalmente los comandos son programas, su sustancia

LINUX BLINUX Báásico (7. Shells(2))sico (7. Shells(2)) 33

LINUX BLINUX Báásicosico77. . Shells(2)Shells(2)

7.1 Comandos y programas 7.1 Comandos y programas 7.2 Idea de procesos7.2 Idea de procesos7.3 Control de procesos7.3 Control de procesos7.4 Autoridad de procesos7.4 Autoridad de procesos

ÍÍndicendice

Page 4: LINUX Básico€¦ · LINUX Básico (7. Shells(2)) 4 7.1 Programas y comandos (1) Programas y comandos interiores del shell • Normalmente los comandos son programas, su sustancia

LINUX BLINUX Báásico (7. Shells(2))sico (7. Shells(2)) 44

77.1.1 Programas y comandosProgramas y comandos(1)(1) Programas y comandos interiores del shellProgramas y comandos interiores del shell•• Normalmente los comandos son programas, su Normalmente los comandos son programas, su

sustancia es un archivo ejecutable.sustancia es un archivo ejecutable.•• Pero, algunos comandos son comandos interiores del Pero, algunos comandos son comandos interiores del

shell, no tienen sus archivos propios.shell, no tienen sus archivos propios.

comandoscomandos

programasprogramas

comandos comandos interiores del shellinteriores del shell (cd, exit, logout, umask, ...)(cd, exit, logout, umask, ...)

(cat, cp, mv, rm, mkdir, ...)(cat, cp, mv, rm, mkdir, ...)

Page 5: LINUX Básico€¦ · LINUX Básico (7. Shells(2)) 4 7.1 Programas y comandos (1) Programas y comandos interiores del shell • Normalmente los comandos son programas, su sustancia

LINUX BLINUX Báásico (7. Shells(2))sico (7. Shells(2)) 55

•• Para saber la sustancia de un comando, utilizamos el Para saber la sustancia de un comando, utilizamos el comando comando ““whichwhich””. .

Busca el directorio de un comando.Busca el directorio de un comando.(ej.) which cat(ej.) which cat

(33) which(33) which

[usr000@linuxpc usr000]$ which cat[usr000@linuxpc usr000]$ which cat/bin/cat/bin/cat[usr000@linuxpc usr000]$ ls [usr000@linuxpc usr000]$ ls --l /bin/catl /bin/cat--rwxrrwxr--xrxr--x 1 root root 14364 feb 18 2003 /bin/catx 1 root root 14364 feb 18 2003 /bin/cat[usr000@linuxpc usr000]$ file /bin/cat[usr000@linuxpc usr000]$ file /bin/cat/bin/cat: ELF 32/bin/cat: ELF 32--bit LSB executable, Intel 80386, version 1 (SYSV), for bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), strippedGNU/Linux 2.2.5, dynamically linked (uses shared libs), stripped[usr000@linuxpc usr000]$ which cd[usr000@linuxpc usr000]$ which cd/usr/bin/which: no cd in (/usr/local/bin:/bin:/usr/bin:/usr/X11R/usr/bin/which: no cd in (/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin 6/bin :/home/usr000/bin):/home/usr000/bin)

la sustancia del comando la sustancia del comando ““catcat””

““cd cd ““ es el comando es el comando interior del shell.interior del shell.

Determina el tipo de un archivo.Determina el tipo de un archivo.(ej.) file arch1(ej.) file arch1

(34) file(34) file

presenta el tipo del archivo.presenta el tipo del archivo.

Page 6: LINUX Básico€¦ · LINUX Básico (7. Shells(2)) 4 7.1 Programas y comandos (1) Programas y comandos interiores del shell • Normalmente los comandos son programas, su sustancia

LINUX BLINUX Báásico (7. Shells(2))sico (7. Shells(2)) 66

7.1(2)7.1(2) PATHPATH•• ““PATHPATH”” es un variable en el shell, y contiene los es un variable en el shell, y contiene los

directorios en los que el shell busca comandos.directorios en los que el shell busca comandos.•• ““PATHPATH”” tiene una cadena delimita por signos de dos tiene una cadena delimita por signos de dos

puntos puntos ““::”” que apuntan a todos los directorios que que apuntan a todos los directorios que contienen los programas que usa usted.contienen los programas que usa usted.

[usr000@linuxpc usr000]$ echo $PATH[usr000@linuxpc usr000]$ echo $PATH/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/usr000/bin/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/usr000/bin

•• El orden de la lista es importante, determina cuEl orden de la lista es importante, determina cuáál es se l es se buscarbuscaráá primero.primero.

1ro:1ro: /usr/local/bin/usr/local/bin2do:2do: /bin/bin3ro:3ro: /usr/bin/usr/bin4to:4to: /usr/X11R6/bin/usr/X11R6/bin5to:5to: /home/usr000/bin/home/usr000/bin

Page 7: LINUX Básico€¦ · LINUX Básico (7. Shells(2)) 4 7.1 Programas y comandos (1) Programas y comandos interiores del shell • Normalmente los comandos son programas, su sustancia

LINUX BLINUX Báásico (7. Shells(2))sico (7. Shells(2)) 77

PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/usr000/biPATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/usr000/binn

•• Por ejemplo, cunado ejecutamos Por ejemplo, cunado ejecutamos ““calcal””, ..., ...

11 busca en el busca en el ““/usr/local/bin/usr/local/bin””, pero no est, pero no estáá..22 busca en el busca en el ““/bin/bin””, pero no est, pero no estáá..33 busca en el busca en el ““/usr/bin/usr/bin””, aqu, aquíí estestáá y ejecuta y ejecuta ““/usr/bin/cal/usr/bin/cal””..

11 22 33

•• O bien, podemos poner el nombre de la ruta de acceso O bien, podemos poner el nombre de la ruta de acceso (relativo o absoluto) del programa directamente.(relativo o absoluto) del programa directamente.

[usr000@linuxpc usr000]$ /usr/bin/cal[usr000@linuxpc usr000]$ /usr/bin/calseptiembre de 2004septiembre de 2004do lu ma mi ju vi sdo lu ma mi ju vi sáá

1 2 3 41 2 3 45 6 7 8 9 10 115 6 7 8 9 10 1112 13 14 15 16 17 1812 13 14 15 16 17 1819 20 21 22 23 24 2519 20 21 22 23 24 2526 27 28 29 3026 27 28 29 30

Page 8: LINUX Básico€¦ · LINUX Básico (7. Shells(2)) 4 7.1 Programas y comandos (1) Programas y comandos interiores del shell • Normalmente los comandos son programas, su sustancia

LINUX BLINUX Báásico (7. Shells(2))sico (7. Shells(2)) 88

•• Si ejecutamos un programa que no estSi ejecutamos un programa que no estéé en los en los directorios de directorios de ““PATHPATH””, ..., ...

[usr000@linuxpc usr000]$ [usr000@linuxpc usr000]$ comandocomando--bash: bash: comandocomando: command not found: command not found

[usr000@linuxpc usr000]$ pwd[usr000@linuxpc usr000]$ pwd/home/usr000/home/usr000[usr000@linuxpc usr000]$ cp /bin/date date2[usr000@linuxpc usr000]$ cp /bin/date date2[usr000@linuxpc usr000]$ ls [usr000@linuxpc usr000]$ ls --lltotal 40total 40--rwxrrwxr--xrxr--x 1 usr000 usr000 38620 sep 18 13:46 date2x 1 usr000 usr000 38620 sep 18 13:46 date2[usr000@linuxpc usr000]$ date2[usr000@linuxpc usr000]$ date2--bash: date2: command not foundbash: date2: command not found[usr000@linuxpc usr000]$ ./date2[usr000@linuxpc usr000]$ ./date2ssááb sep 18 13:59:08 ECT 2004b sep 18 13:59:08 ECT 2004

un comando inexistenteun comando inexistente

ahora estahora estáá en el directorio base.en el directorio base.

crea una copia de crea una copia de el comando el comando ““datedate””..

pero no se puede ejecutar, pero no se puede ejecutar, porque porque ““date2date2”” no estno estáá en en los directorios de los directorios de ““PATHPATH””..

[usr000@linuxpc usr000]$ echo $PATH[usr000@linuxpc usr000]$ echo $PATH/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/usr000/bin/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/usr000/bin[usr000@linuxpc usr000]$ pwd[usr000@linuxpc usr000]$ pwd/home/usr000/home/usr000[usr000@linuxpc usr000]$ mkdir bin[usr000@linuxpc usr000]$ mkdir bin[usr000@linuxpc usr000]$ mv date2 bin[usr000@linuxpc usr000]$ mv date2 bin[usr000@linuxpc usr000]$ ls [usr000@linuxpc usr000]$ ls --lltotal 4total 4drwxrwxrdrwxrwxr--x 2 usr000 usr000 4096 sep 18 14:01 binx 2 usr000 usr000 4096 sep 18 14:01 bin[usr000@linuxpc usr000]$ ls [usr000@linuxpc usr000]$ ls --l binl bintotal 40total 40--rwxrrwxr--xrxr--x 1 usr000 usr000 38620 sep 18 13:46 date2x 1 usr000 usr000 38620 sep 18 13:46 date2[usr000@linuxpc usr000]$ date2[usr000@linuxpc usr000]$ date2ssááb sep 18 14:03:06 ECT 2004b sep 18 14:03:06 ECT 2004

va a crear este directorio va a crear este directorio y desplazar adentro.y desplazar adentro.

ya se puede ejecutar ya se puede ejecutar ““date2date2”” sin ruta de acceso.sin ruta de acceso.

para ejecutar para ejecutar ““date2date2””, ruta de acceso es necesario., ruta de acceso es necesario.

Page 9: LINUX Básico€¦ · LINUX Básico (7. Shells(2)) 4 7.1 Programas y comandos (1) Programas y comandos interiores del shell • Normalmente los comandos son programas, su sustancia

LINUX BLINUX Báásico (7. Shells(2))sico (7. Shells(2)) 99

•• Si es necesario, podemos cambiar el valor de Si es necesario, podemos cambiar el valor de ““PATHPATH””..[usr000@linuxpc usr000]$ pwd[usr000@linuxpc usr000]$ pwd/home/usr000/home/usr000[usr000@linuxpc usr000]$ cp /bin/date date3[usr000@linuxpc usr000]$ cp /bin/date date3[usr000@linuxpc usr000]$ ls [usr000@linuxpc usr000]$ ls --l date3l date3--rwxrrwxr--xrxr--x 1 usr000 usr000 38620 sep 18 14:20 date3x 1 usr000 usr000 38620 sep 18 14:20 date3[usr000@linuxpc usr000]$ date3[usr000@linuxpc usr000]$ date3--bash: date3: command not foundbash: date3: command not found[usr000@linuxpc usr000]$ echo $PATH[usr000@linuxpc usr000]$ echo $PATH/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/usr000/bin/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/usr000/bin[usr000@linuxpc usr000]$ PATH=$PATH:.[usr000@linuxpc usr000]$ PATH=$PATH:.[usr000@linuxpc usr000]$ echo $PATH[usr000@linuxpc usr000]$ echo $PATH/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/usr000/bin:./usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/usr000/bin:.[usr000@linuxpc usr000]$ date3[usr000@linuxpc usr000]$ date3ssááb sep 18 14:21:02 ECT 2004b sep 18 14:21:02 ECT 2004

ahora estahora estáá en el directorio base.en el directorio base.

crea una copia de crea una copia de ““datedate”” otra vez.otra vez.

no se puede ejecutar, no se puede ejecutar, sin ruta de acceso.sin ruta de acceso.

agrega agrega ““..”” al al ““PATHPATH””..

se ha ase ha aññadidoadido

ya se puede ejecutar ya se puede ejecutar ““date2date2”” sin ruta de acceso.sin ruta de acceso.

Es conveniente tener Es conveniente tener ““..”” en el en el ““PATHPATH””, especialmente al desarrollar , especialmente al desarrollar programas o scripts. Pero, el valor original de programas o scripts. Pero, el valor original de ““PATHPATH”” no tiene no tiene ““..””, , a causa de la seguridad. Por que es posible que ejecutemos un a causa de la seguridad. Por que es posible que ejecutemos un comando equivocado o venenoso.comando equivocado o venenoso.

Page 10: LINUX Básico€¦ · LINUX Básico (7. Shells(2)) 4 7.1 Programas y comandos (1) Programas y comandos interiores del shell • Normalmente los comandos son programas, su sustancia

LINUX BLINUX Báásico (7. Shells(2))sico (7. Shells(2)) 1010

77.2.2 Idea de procesosIdea de procesos(1)(1) ComprensiComprensióón de los procesosn de los procesos•• En el LINUX, a un programa en ejecuciEn el LINUX, a un programa en ejecucióón se le conoce n se le conoce

como proceso.como proceso.•• Los archivos ejecutables son las sustancias estLos archivos ejecutables son las sustancias estááticas de ticas de

programas.programas.•• Los procesos son las sustancias dinLos procesos son las sustancias dináámicas de programas.micas de programas.

archivo ejecutablearchivo ejecutable proceso 1proceso 1ejecuciejecucióónn

programaprogramasustancia estsustancia estááticatica sustancias dinsustancias dináámicasmicas

•• Ya que LINUX es un sistema de multitareas, muchos Ya que LINUX es un sistema de multitareas, muchos procesos pueden ejecutarse simultprocesos pueden ejecutarse simultááneamente.neamente.

•• Podemos crear mPodemos crear múúltiples procesos del mismo archivo ltiples procesos del mismo archivo ejecutable.ejecutable.

proceso 2proceso 2

ejecuciejecucióónn

Page 11: LINUX Básico€¦ · LINUX Básico (7. Shells(2)) 4 7.1 Programas y comandos (1) Programas y comandos interiores del shell • Normalmente los comandos son programas, su sustancia

LINUX BLINUX Báásico (7. Shells(2))sico (7. Shells(2)) 1111

7.2(2)7.2(2) ID de procesoID de proceso•• Para distinguir entre los procesos, LINUX asigna a cada Para distinguir entre los procesos, LINUX asigna a cada

nuevo proceso una identificacinuevo proceso una identificacióón n úúnica llamada nica llamada identificaciidentificacióón de proceso (ID de proceso).n de proceso (ID de proceso).

•• ID de proceso es sID de proceso es sóólo un nlo un núúmero que identifica con mero que identifica con precisiprecisióón cada proceso.n cada proceso.

•• Para observar los procesos que corren en el sistema, Para observar los procesos que corren en el sistema, enviamos el comando enviamos el comando ““psps””. Dado que los procesos . Dado que los procesos avanzan con rapidez, este informe es savanzan con rapidez, este informe es sóólo una vista lo una vista instantinstantáánea de lo que habnea de lo que habíía sucedido cuando se a sucedido cuando se preguntpreguntóó..

Informa el estado de los procesos.Informa el estado de los procesos.(ej.) (ej.) psps ; los procesos del mismo terminal.; los procesos del mismo terminal.

psps --uu ; detalladamente.; detalladamente.

psps --xx ; los procesos de otros terminales tambi; los procesos de otros terminales tambiéénn

psps --auxaux ; todos los procesos en el sistema.; todos los procesos en el sistema.

(35) (35) psps

Page 12: LINUX Básico€¦ · LINUX Básico (7. Shells(2)) 4 7.1 Programas y comandos (1) Programas y comandos interiores del shell • Normalmente los comandos son programas, su sustancia

LINUX BLINUX Báásico (7. Shells(2))sico (7. Shells(2)) 1212

[usr000[usr000@linuxpc@linuxpc usr000]$ usr000]$ pspsPID TTY TIME CMDPID TTY TIME CMD8763 pts/0 00:00:04 bash8763 pts/0 00:00:04 bash9137 pts/0 00:00:00 9137 pts/0 00:00:00 psps

[usr000[usr000@linuxpc@linuxpc usr000]$ usr000]$ psps --uuUSER PID USER PID %CPU%CPU %MEM%MEM VSZ RSS TTY STAT START TIME COMMANDVSZ RSS TTY STAT START TIME COMMANDusr000 8763 0.0 2.2 4444 1388 pts/0 S 11:21 0:04 usr000 8763 0.0 2.2 4444 1388 pts/0 S 11:21 0:04 --bashbashusr000 9138 0.0 1.0 2592 636 pts/0 R 17:18 0:00 usr000 9138 0.0 1.0 2592 636 pts/0 R 17:18 0:00 psps --uu

[usr000[usr000@linuxpc@linuxpc usr000]$ usr000]$ psps --uxuxUSER PID USER PID %CPU%CPU %MEM%MEM VSZ RSS TTY STAT START TIME COMMANDVSZ RSS TTY STAT START TIME COMMANDusr000 8763 0.0 2.2 4444 1388 pts/0 S 11:21 0:04 usr000 8763 0.0 2.2 4444 1388 pts/0 S 11:21 0:04 --bashbashusr000 9088 0.0 2.1 4416 1348 pts/1 S 16:53 0:00 usr000 9088 0.0 2.1 4416 1348 pts/1 S 16:53 0:00 --bashbashusr000 9139 10.0 1.0 2596 636 pts/0 R 17:18 0:00 usr000 9139 10.0 1.0 2596 636 pts/0 R 17:18 0:00 psps --uxux

Sin argumentos, presenta brevemente Sin argumentos, presenta brevemente ssóólo los procesos del mismo terminal.lo los procesos del mismo terminal.

ID de procesoID de proceso Login ShellLogin Shell

Con Con ““--uu””, presenta la informaci, presenta la informacióón detallada.n detallada.

Propietario del procesoPropietario del proceso

Estado del procesoEstado del procesoS: S: SleepSleep (durmiente)(durmiente)R: R: RunRun (ejecutable)(ejecutable)

Con Con ““--xx””, presenta los procesos de su usuario, incluido los procesos de , presenta los procesos de su usuario, incluido los procesos de otro otro terminal.terminal.

terminales son diferentesterminales son diferentes

Nombre del terminalNombre del terminal

Page 13: LINUX Básico€¦ · LINUX Básico (7. Shells(2)) 4 7.1 Programas y comandos (1) Programas y comandos interiores del shell • Normalmente los comandos son programas, su sustancia

LINUX BLINUX Báásico (7. Shells(2))sico (7. Shells(2)) 1313

[usr000[usr000@linuxpc@linuxpc usr000]$ usr000]$ psps --auxauxUSER PID USER PID %CPU%CPU %MEM%MEM VSZ RSS TTY STAT START TIME COMMANDVSZ RSS TTY STAT START TIME COMMANDroot 1 0.0 0.2 1368 136 ? S Sep17 0:05 root 1 0.0 0.2 1368 136 ? S Sep17 0:05 initinitroot 2 0.0 0.0 0 0 ? SW Sep17 0:00 [root 2 0.0 0.0 0 0 ? SW Sep17 0:00 [keventdkeventd]]root 3 0.0 0.0 0 0 ? SW Sep17 0:00 [root 3 0.0 0.0 0 0 ? SW Sep17 0:00 [kapmdkapmd]]root 4 0.0 0.0 0 0 ? SWN Sep17 0:00 [root 4 0.0 0.0 0 0 ? SWN Sep17 0:00 [ksoftirqdksoftirqdroot 9 0.0 0.0 0 0 ? SW Sep17 0:00 [root 9 0.0 0.0 0 0 ? SW Sep17 0:00 [bdflushbdflush]]root 5 0.0 0.0 0 0 ? SW Sep17 0:00 [root 5 0.0 0.0 0 0 ? SW Sep17 0:00 [kswapdkswapd]]root 6 0.0 0.0 0 0 ? SW Sep17 0:00 [root 6 0.0 0.0 0 0 ? SW Sep17 0:00 [kscandkscand/DM/DMroot 7 0.0 0.0 0 0 ? SW Sep17 0:15 [root 7 0.0 0.0 0 0 ? SW Sep17 0:15 [kscandkscand/No/Noroot 8 0.0 0.0 0 0 ? SW Sep17 0:00 [root 8 0.0 0.0 0 0 ? SW Sep17 0:00 [kscandkscand//HiHiroot 10 0.0 0.0 0 0 ? SW Sep17 0:01 [root 10 0.0 0.0 0 0 ? SW Sep17 0:01 [kupdatedkupdated]]root 11 0.0 0.0 0 0 ? SW Sep17 0:00 [root 11 0.0 0.0 0 0 ? SW Sep17 0:00 [mdrecovermdrecover

(Omisi(Omisióón)n)

root 1716 0.0 0.0 1352 4 tty5 S Sep17 0:00 /root 1716 0.0 0.0 1352 4 tty5 S Sep17 0:00 /sbin/sbin/mingmingroot 1717 0.0 0.0 1352 4 tty6 S Sep17 0:00 /root 1717 0.0 0.0 1352 4 tty6 S Sep17 0:00 /sbin/sbin/mingmingroot 9201 0.0 0.2 1492 128 ? S Sep18 0:01 root 9201 0.0 0.2 1492 128 ? S Sep18 0:01 in.telnetdin.telnetdroot 9202 0.0 0.3 2276 212 ? S Sep18 0:00 [root 9202 0.0 0.3 2276 212 ? S Sep18 0:00 [login]login]usr000 9203 0.0 1.3 4432 828 pts/2 S Sep18 0:00 usr000 9203 0.0 1.3 4432 828 pts/2 S Sep18 0:00 --bashbashroot 13202 0.0 0.9 1492 584 ? S 09:37 0:00 root 13202 0.0 0.9 1492 584 ? S 09:37 0:00 in.telnetdin.telnetdroot 13203 0.0 1.8 2276 1120 ? S 09:37 0:00 [root 13203 0.0 1.8 2276 1120 ? S 09:37 0:00 [login]login]usr000 13204 0.1 2.2 4440 1388 pts/0 S 09:37 0:02 usr000 13204 0.1 2.2 4440 1388 pts/0 S 09:37 0:02 --bashbashroot 13268 0.1 0.6 1348 388 tty1 S 10:07 0:00 /root 13268 0.1 0.6 1348 388 tty1 S 10:07 0:00 /sbin/sbin/mingmingusr000 13272 0.0 1.0 2620 664 pts/2 R 10:07 0:00 usr000 13272 0.0 1.0 2620 664 pts/2 R 10:07 0:00 psps --auxmauxm

Con Con ““--auxaux””, presenta todos los procesos en el sistema detalladamente., presenta todos los procesos en el sistema detalladamente.

Page 14: LINUX Básico€¦ · LINUX Básico (7. Shells(2)) 4 7.1 Programas y comandos (1) Programas y comandos interiores del shell • Normalmente los comandos son programas, su sustancia

LINUX BLINUX Báásico (7. Shells(2))sico (7. Shells(2)) 1414

[usr000[usr000@linuxpc@linuxpc usr000]$ usr000]$ psps --uuUSER PID USER PID %CPU%CPU %MEM%MEM VSZ RSS TTY STAT START TIME COMMANDVSZ RSS TTY STAT START TIME COMMANDusr000 8763 0.0 2.2 4444 1388 pts/0 S 11:21 0:04 usr000 8763 0.0 2.2 4444 1388 pts/0 S 11:21 0:04 --bashbashusr000 9138 0.0 1.0 2592 636 pts/0 R 17:18 0:00 usr000 9138 0.0 1.0 2592 636 pts/0 R 17:18 0:00 psps --uu

•• Al hacer Login, el sistema inicia un proceso de Login Shell Al hacer Login, el sistema inicia un proceso de Login Shell automautomááticamente.ticamente.

7.2(3)7.2(3) Procesos de programasProcesos de programas

•• Cuando ejecutamos un programa en el shell, el shell generalmenteCuando ejecutamos un programa en el shell, el shell generalmentearranca un proceso nuevo, espera la terminaciarranca un proceso nuevo, espera la terminacióón del programa.n del programa.

Proceso deProceso deLogin ShellLogin Shell

Proceso de Proceso de ““psps””LoginLogin creacicreacióónn

creacicreacióónn

DespuDespuéés de ejecucis de ejecucióón n del programa, el del programa, el proceso se extingue.proceso se extingue.

esperaespera

87638763

este instanteeste instante

Al hacer LogoAl hacer Logoutut, este , este proceso se extingue.proceso se extingue.

91389138

Page 15: LINUX Básico€¦ · LINUX Básico (7. Shells(2)) 4 7.1 Programas y comandos (1) Programas y comandos interiores del shell • Normalmente los comandos son programas, su sustancia

LINUX BLINUX Báásico (7. Shells(2))sico (7. Shells(2)) 1515

77.3.3 Control de procesosControl de procesos(1)(1) DisposiciDisposicióón de procesos en segundo planon de procesos en segundo plano•• En el shell, un programa se ejecuta en primer plano normalmente.En el shell, un programa se ejecuta en primer plano normalmente.

Hasta la terminaciHasta la terminacióón del programa, no podemos ejecutar otro n del programa, no podemos ejecutar otro programa.programa.

Suspende la ejecuciSuspende la ejecucióón durante un intervalo.n durante un intervalo.(ej.) (ej.) sleepsleep 55 ; suspende el ejecuci; suspende el ejecucióón por 5 segundosn por 5 segundos

(36) (36) sleepsleep

[usr000[usr000@linuxpc@linuxpc usr000]$ usr000]$ sleepsleep 55 Durante 5 segundos no Durante 5 segundos no podemos hacer nada.podemos hacer nada.

•• Para colocar un proceso en segundo plano, es necesario utilizar Para colocar un proceso en segundo plano, es necesario utilizar el signo el signo ““&&”” como como úúltimo carltimo caráácter de la lcter de la líínea.nea.

[usr000[usr000@linuxpc@linuxpc usr000]$ usr000]$ sleepsleep 5 &5 &[1] 13403[1] 13403[usr000[usr000@linuxpc@linuxpc usr000]$usr000]$ Al instante, podemos Al instante, podemos

ejecutar otro comando.ejecutar otro comando.

ID de procesoID de proceso

ID de trabajoID de trabajo

[1]+ Done [1]+ Done sleepsleep 55

DespuDespuéés al operar el shell, hay una avisa de la terminacis al operar el shell, hay una avisa de la terminacióón del proceso en la n del proceso en la pantalla.pantalla.

Page 16: LINUX Básico€¦ · LINUX Básico (7. Shells(2)) 4 7.1 Programas y comandos (1) Programas y comandos interiores del shell • Normalmente los comandos son programas, su sustancia

LINUX BLINUX Báásico (7. Shells(2))sico (7. Shells(2)) 1616

•• Podemos confirmar los procesos en segundo plano con el Podemos confirmar los procesos en segundo plano con el comando comando ““psps”” o o ““jobsjobs””..

Presenta la informaciPresenta la informacióón de los trabajos del n de los trabajos del shell de segundo plano.shell de segundo plano.(ej.) (ej.) jobsjobs

(37) (37) jobsjobs

[usr000[usr000@linuxpc@linuxpc usr000]$ usr000]$ sleepsleep 15 &15 &[1] 8375[1] 8375[usr000[usr000@linuxpc@linuxpc usr000]$ usr000]$ pspsPID TTY TIME CMDPID TTY TIME CMD8336 pts/1 00:00:00 bash8336 pts/1 00:00:00 bash8375 pts/1 00:00:00 8375 pts/1 00:00:00 sleepsleep8376 pts/1 00:00:00 8376 pts/1 00:00:00 psps[usr000[usr000@linuxpc@linuxpc usr000]$ usr000]$ jobsjobs[1]+ [1]+ RunningRunning sleepsleep 15 &15 &

[usr000[usr000@linuxpc@linuxpc usr000]$usr000]$[1]+ Done [1]+ Done sleepsleep 1515[usr000[usr000@linuxpc@linuxpc usr000]$ usr000]$ pspsPID TTY TIME CMDPID TTY TIME CMD8336 pts/1 00:00:00 bash8336 pts/1 00:00:00 bash8377 pts/1 00:00:00 8377 pts/1 00:00:00 psps[usr000[usr000@linuxpc@linuxpc usr000]$ usr000]$ jobsjobs[usr000[usr000@linuxpc@linuxpc usr000]$usr000]$

aquaquíí hayhay

crea crea unun proceso proceso enen segundo plano.segundo plano.

aviso de la terminaciaviso de la terminacióónn

ahora no estahora no estáá

aquaquíí hay tambihay tambiéénn

Page 17: LINUX Básico€¦ · LINUX Básico (7. Shells(2)) 4 7.1 Programas y comandos (1) Programas y comandos interiores del shell • Normalmente los comandos son programas, su sustancia

LINUX BLINUX Báásico (7. Shells(2))sico (7. Shells(2)) 1717

Me llamo Takashi Sugasawa.Me llamo Takashi Sugasawa.~~~~~~~~~~~~~~~~~~~~

7.3(2)7.3(2) SuspensiSuspensióón de procesosn de procesos•• Podemos suspender el proceso de primer plano por medio de Podemos suspender el proceso de primer plano por medio de

teclear teclear ^z^z (Control(Control--z).z).

[1]+ [1]+ StoppedStopped vi arch1vi arch1[usr000[usr000@linuxpc@linuxpc usr000]$ usr000]$ psps --uuUSER PID USER PID %CPU%CPU %MEM%MEM VSZ RSS TTY STAT START TIME COMMANDVSZ RSS TTY STAT START TIME COMMANDusr000 13945 0.4 2.2 4452 1384 pts/0 S 21:06 0:00 usr000 13945 0.4 2.2 4452 1384 pts/0 S 21:06 0:00 --bashbashusr000 13976 0.1 1.6 4128 1004 pts/0 T 21:06 0:00 vusr000 13976 0.1 1.6 4128 1004 pts/0 T 21:06 0:00 vi arch1i arch1usr000 13977 0.0 1.0 2588 632 pts/0 R 21:08 0:00 usr000 13977 0.0 1.0 2588 632 pts/0 R 21:08 0:00 psps --uu[usr000[usr000@linuxpc@linuxpc usr000]$ usr000]$ jobsjobs[1]+ [1]+ StoppedStopped vi arch1vi arch1

teclear teclear ““^z^z””

detenidodetenido

El proceso existe, pero no estEl proceso existe, pero no estáá en accien accióón.n.

[usr000[usr000@linuxpc@linuxpc usr000]$ vi arch1usr000]$ vi arch1

iniciar el editor iniciar el editor ““vivi””

Page 18: LINUX Básico€¦ · LINUX Básico (7. Shells(2)) 4 7.1 Programas y comandos (1) Programas y comandos interiores del shell • Normalmente los comandos son programas, su sustancia

LINUX BLINUX Báásico (7. Shells(2))sico (7. Shells(2)) 1818

Me llamo Takashi Sugasawa.Me llamo Takashi Sugasawa.~~~~~~~~~~~~~~~~~~~~

•• Para resucitar el proceso detenido hacia primer plano, usamos elPara resucitar el proceso detenido hacia primer plano, usamos elcomando comando ““fgfg””..

[usr000[usr000@linuxpc@linuxpc usr000]$ usr000]$ jobsjobs[1]+ [1]+ StoppedStopped vi arch1vi arch1[usr000[usr000@linuxpc@linuxpc usr000]$ usr000]$ fgfg 11

resucitar un proceso hacia primer plano.resucitar un proceso hacia primer plano.(ej.) (ej.) fgfg ; resucitar el proceso ; resucitar el proceso úúltimamente detenido.ltimamente detenido.

fgfg 11 ; resucitar el proceso de que ID de trabajo es 1.; resucitar el proceso de que ID de trabajo es 1.

(38) (38) fgfg

un proceso detenidoun proceso detenido

““11”” se puede omitirse puede omitir

se ha resucitado.se ha resucitado.

Page 19: LINUX Básico€¦ · LINUX Básico (7. Shells(2)) 4 7.1 Programas y comandos (1) Programas y comandos interiores del shell • Normalmente los comandos son programas, su sustancia

LINUX BLINUX Báásico (7. Shells(2))sico (7. Shells(2)) 1919

•• Para resucitar el proceso detenido hacia segundo plano, usamos ePara resucitar el proceso detenido hacia segundo plano, usamos el l comando comando ““bgbg””..

[usr000[usr000@linuxpc@linuxpc usr000]$ usr000]$ sleepsleep 6060

Resucita un proceso detenido hacia segundo Resucita un proceso detenido hacia segundo plano.plano.(ej.) (ej.) bgbg ; resucitar el proceso ; resucitar el proceso úúltimamente detenido.ltimamente detenido.

bgbg 11 ; resucitar el proceso de que ID de trabajo es 1.; resucitar el proceso de que ID de trabajo es 1.

(38) (38) bgbg

[1]+ Stopped sleep 60[1]+ Stopped sleep 60[usr000@linuxpc usr000]$ jobs[usr000@linuxpc usr000]$ jobs[1]+ Stopped sleep 60[1]+ Stopped sleep 60[usr000@linuxpc usr000]$ [usr000@linuxpc usr000]$ bgbg[1]+ sleep 60 &[1]+ sleep 60 &[usr000@linuxpc usr000]$ jobs[usr000@linuxpc usr000]$ jobs[1]+ Running sleep 60 &[1]+ Running sleep 60 &[usr000@linuxpc usr000]$ fg[usr000@linuxpc usr000]$ fgsleep 60sleep 60

detenidodetenido

teclear teclear ““^z^z””

estestáá en accien accióón en n en segundo planosegundo plano

•• Usando el comando Usando el comando ““fgfg””, podemos cambiar el estado de un , podemos cambiar el estado de un proceso desde segundo plano hasta primer plano tambiproceso desde segundo plano hasta primer plano tambiéén.n.

Page 20: LINUX Básico€¦ · LINUX Básico (7. Shells(2)) 4 7.1 Programas y comandos (1) Programas y comandos interiores del shell • Normalmente los comandos son programas, su sustancia

LINUX BLINUX Báásico (7. Shells(2))sico (7. Shells(2)) 2020

•• Es imposible poner un programa como Es imposible poner un programa como ““vivi”” que necesiten la que necesiten la entrada del terminal o teclado. Aun cuando intente esto, el entrada del terminal o teclado. Aun cuando intente esto, el proceso se va a suspender al instante.proceso se va a suspender al instante.

[usr000@linuxpc usr000]$ jobs[usr000@linuxpc usr000]$ jobs[1]+ Stopped vi arch1[1]+ Stopped vi arch1[usr000@linuxpc usr000]$ [usr000@linuxpc usr000]$ bgbg[1]+ vi arch1 &[1]+ vi arch1 &[usr000@linuxpc usr000]$ jobs[usr000@linuxpc usr000]$ jobs[1]+ Stopped vi arch1[1]+ Stopped vi arch1

““vivi”” estestáá suspendido.suspendido.trata de trata de resucitar el proceso resucitar el proceso hacia segundo plano.hacia segundo plano.

pero, no puede.pero, no puede.

Page 21: LINUX Básico€¦ · LINUX Básico (7. Shells(2)) 4 7.1 Programas y comandos (1) Programas y comandos interiores del shell • Normalmente los comandos son programas, su sustancia

LINUX BLINUX Báásico (7. Shells(2))sico (7. Shells(2)) 2121

7.3(3)7.3(3) TerminaciTerminacióón de procesosn de procesos•• Tecleando Tecleando ““^c^c”” (Control(Control--c), podemos terminar el proceso de c), podemos terminar el proceso de

primer plano.primer plano.[usr000[usr000@linuxpc@linuxpc usr000]$ usr000]$ sleepsleep 1000010000

teclear teclear ““^c^c””

[usr000[usr000@linuxpc@linuxpc usr000]$usr000]$

•• El comando El comando ““killkill”” puede terminar los procesos a la fuerza.puede terminar los procesos a la fuerza.

EnvEnvíía una sea una seññal a los procesos en ejecucial a los procesos en ejecucióón, por n, por lo general, les da por terminado.lo general, les da por terminado.(ej.) (ej.) killkill 1234 1234 ; termina un proceso de que ID de ; termina un proceso de que ID de

proceso es 1234.proceso es 1234.

killkill --KILL 1234KILL 1234 ; termina un proceso de que ID de; termina un proceso de que ID deproceso es 1234 proceso es 1234 incondicionalmente.incondicionalmente.

(39) (39) killkill

Page 22: LINUX Básico€¦ · LINUX Básico (7. Shells(2)) 4 7.1 Programas y comandos (1) Programas y comandos interiores del shell • Normalmente los comandos son programas, su sustancia

LINUX BLINUX Báásico (7. Shells(2))sico (7. Shells(2)) 2222

[usr000[usr000@linuxpc@linuxpc usr000]$ usr000]$ sleepsleep 10000 &10000 &[1] 14087[1] 14087[usr000[usr000@linuxpc@linuxpc usr000]$ usr000]$ pspsPID TTY TIME CMDPID TTY TIME CMD

13945 pts/0 00:00:02 bash13945 pts/0 00:00:02 bash14087 pts/0 00:00:00 14087 pts/0 00:00:00 sleepsleep14088 pts/0 00:00:00 14088 pts/0 00:00:00 psps[usr000[usr000@linuxpc@linuxpc usr000]$ usr000]$ killkill 1408714087[1]+ Terminado [1]+ Terminado sleepsleep 1000010000[usr000[usr000@linuxpc@linuxpc usr000]$ usr000]$ pspsPID TTY TIME CMDPID TTY TIME CMD

13945 pts/0 00:00:02 bash13945 pts/0 00:00:02 bash14089 pts/0 00:00:00 14089 pts/0 00:00:00 psps

crea crea un un proceso en proceso en segundo plano.segundo plano.

aquaquíí estestáá

mata el procesomata el proceso

no hayno hay

Page 23: LINUX Básico€¦ · LINUX Básico (7. Shells(2)) 4 7.1 Programas y comandos (1) Programas y comandos interiores del shell • Normalmente los comandos son programas, su sustancia

LINUX BLINUX Báásico (7. Shells(2))sico (7. Shells(2)) 2323

77..4 Autoridad de procesos4 Autoridad de procesos(1)(1) Propietario de procesosPropietario de procesos•• Cada proceso tiene su propietario. Normalmente el propietario deCada proceso tiene su propietario. Normalmente el propietario de

un proceso es el usuario que ejecutun proceso es el usuario que ejecutóó el programa.el programa.[usr000[usr000@linuxpc@linuxpc usr000]$ which usr000]$ which sleepsleep/bin//bin/sleepsleep[usr000[usr000@linuxpc@linuxpc usr000]$ ls usr000]$ ls --l /bin/l /bin/sleepsleep--rwxrrwxr--xrxr--x 1 root x 1 root rootroot 12444 feb 18 2003 /bin/12444 feb 18 2003 /bin/sleepsleep[usr000[usr000@linuxpc@linuxpc usr000]$ usr000]$ whoamiwhoamiusr000usr000[usr000[usr000@linuxpc@linuxpc usr000]$ usr000]$ sleepsleep 1000 &1000 &[1] 14745[1] 14745[usr000[usr000@linuxpc@linuxpc usr000]$ usr000]$ psps --u u --p 14745p 14745USER PID USER PID %CPU%CPU %MEM%MEM VSZ RSS TTY STAT START TIME COMMANDVSZ RSS TTY STAT START TIME COMMANDusr000 14745 0.1 0.8 3780 528 pts/2 S 10:57 0:00 usr000 14745 0.1 0.8 3780 528 pts/2 S 10:57 0:00 sleepsleep 10001000

propietario del procesopropietario del proceso

•• Cuando un proceso accede a un fichero, esto informaciCuando un proceso accede a un fichero, esto informacióón se usa.n se usa.

Page 24: LINUX Básico€¦ · LINUX Básico (7. Shells(2)) 4 7.1 Programas y comandos (1) Programas y comandos interiores del shell • Normalmente los comandos son programas, su sustancia

LINUX BLINUX Báásico (7. Shells(2))sico (7. Shells(2)) 2424

7.4(2)7.4(2) Otros permisos de ficherosOtros permisos de ficheros•• Ficheros tienen otros premisos, el bit SETUID (Ficheros tienen otros premisos, el bit SETUID (Set User IDSet User ID) , el bit ) , el bit

SETGID (SETGID (Set Group IDSet Group ID) y el bit STI () y el bit STI (StickySticky / pegajoso)./ pegajoso).

-rwxrwxrwxss:: Si estSi estáá activado tanto el bit activado tanto el bit SETUIDSETUID como el como el

correspondiente de ejecutable.correspondiente de ejecutable.SS:: Si estSi estáá activado el bit activado el bit SETUIDSETUID pero no el pero no el

correspondiente de ejecutable.correspondiente de ejecutable.

ss:: Si estSi estáá activado tanto el bit activado tanto el bit SETGIDSETGID como el como el correspondiente de ejecutable.correspondiente de ejecutable.

SS:: Si estSi estáá activado el bit activado el bit SETGIDSETGID pero no el pero no el correspondiente de ejecutable.correspondiente de ejecutable.

tt:: Si tanto el bit Si tanto el bit STISTI como el ejecutable para como el ejecutable para otros estotros estáán activados.n activados.

TT:: Si el bit Si el bit STISTI estestáá activado pero el ejecutable activado pero el ejecutable para otros no lo estpara otros no lo estáá..

permisos del fichero (permisos del fichero (““ls ls --ll””))

ssSSactivadoactivado

xx----

xx--

permiso de ejecucipermiso de ejecucióónn

SETUID o SETGIDSETUID o SETGID

ttTTactivadoactivado

xx----

xx--

permiso de ejecucipermiso de ejecucióónn

STISTI

Page 25: LINUX Básico€¦ · LINUX Básico (7. Shells(2)) 4 7.1 Programas y comandos (1) Programas y comandos interiores del shell • Normalmente los comandos son programas, su sustancia

LINUX BLINUX Báásico (7. Shells(2))sico (7. Shells(2)) 2525

para el grupopara el grupoPermiso de ejecuciPermiso de ejecucióón.n.00100100

Permiso de escritura.Permiso de escritura.00200020

Permiso de lectura.Permiso de lectura.00004040

para todos los dempara todos los demááss

Permiso de ejecuciPermiso de ejecucióón.n.00000101

Permiso de escritura.Permiso de escritura.00020002

Permiso de lectura.Permiso de lectura.00000044

para el propietariopara el propietario

Permiso de lectura.Permiso de lectura.04000400

Permiso de escritura.Permiso de escritura.02000200

Permiso de ejecuciPermiso de ejecucióón.n.01010000

ActivaciActivacióón del bit SETUIDn del bit SETUID40004000

ActivaciActivacióón del bit SETGIDn del bit SETGID20002000

ActivaciActivacióón del bit STIn del bit STI10001000

Permisos octales absolutos de Permisos octales absolutos de ““chmodchmod””

chmod modo archivo1 [archivo2 ...]

Page 26: LINUX Básico€¦ · LINUX Básico (7. Shells(2)) 4 7.1 Programas y comandos (1) Programas y comandos interiores del shell • Normalmente los comandos son programas, su sustancia

LINUX BLINUX Báásico (7. Shells(2))sico (7. Shells(2)) 2626

[usr000[usr000@linuxpc@linuxpc usr000]$usr000]$/home/usr000/home/usr000[usr000[usr000@linuxpc@linuxpc usr000]$ cp /bin/usr000]$ cp /bin/sleepsleep sleep2sleep2[usr000[usr000@linuxpc@linuxpc usr000]$ ls usr000]$ ls --l sleep2l sleep2--rwxrrwxr--xrxr--x 1 usr000 x 1 usr000 usr000usr000 12444 sep 20 11:57 sleep212444 sep 20 11:57 sleep2[usr000[usr000@linuxpc@linuxpc usr000]$ chmod 4755 sleep2usr000]$ chmod 4755 sleep2[usr000[usr000@linuxpc@linuxpc usr000]$ ls usr000]$ ls --l sleep2l sleep2--rwsrrwsr--xrxr--x 1 usr000 x 1 usr000 usr000usr000 12444 sep 20 11:57 sleep212444 sep 20 11:57 sleep2[usr000[usr000@linuxpc@linuxpc usr000]$ chmod 2755 sleep2usr000]$ chmod 2755 sleep2[usr000[usr000@linuxpc@linuxpc usr000]$ ls usr000]$ ls --l sleep2l sleep2--rwxrrwxr--srsr--x 1 usr000 x 1 usr000 usr000usr000 12444 sep 20 11:57 sleep212444 sep 20 11:57 sleep2[usr000[usr000@linuxpc@linuxpc usr000]$ chmod 1755 sleep2usr000]$ chmod 1755 sleep2[usr000[usr000@linuxpc@linuxpc usr000]$ ls usr000]$ ls --l sleep2l sleep2--rwxrrwxr--xrxr--t 1 usr000 t 1 usr000 usr000usr000 12444 sep 20 11:57 sleep212444 sep 20 11:57 sleep2[usr000[usr000@linuxpc@linuxpc usr000]$ chmod 7755 sleep2usr000]$ chmod 7755 sleep2[usr000[usr000@linuxpc@linuxpc usr000]$ ls usr000]$ ls --l sleep2l sleep2--rwsrrwsr--srsr--t 1 usr000 t 1 usr000 usr000usr000 12444 sep 20 11:57 sleep212444 sep 20 11:57 sleep2[usr000[usr000@linuxpc@linuxpc usr000]$ chmod 7644 sleep2usr000]$ chmod 7644 sleep2[usr000[usr000@linuxpc@linuxpc usr000]$ ls usr000]$ ls --l sleep2l sleep2--rwSrrwSr--SrSr--T 1 usr000 T 1 usr000 usr000usr000 12444 sep 20 11:57 sleep212444 sep 20 11:57 sleep2

Page 27: LINUX Básico€¦ · LINUX Básico (7. Shells(2)) 4 7.1 Programas y comandos (1) Programas y comandos interiores del shell • Normalmente los comandos son programas, su sustancia

LINUX BLINUX Báásico (7. Shells(2))sico (7. Shells(2)) 2727

todos los usuarios.todos los usuarios.aa

todos los demtodos los demáás.s.oo

el grupo.el grupo.gg

el propietario.el propietario.uu

Establece el modo absoluto.Establece el modo absoluto.==

Retira el modo.Retira el modo.--

Agrega el modo.Agrega el modo.++

Establece el bit STIEstablece el bit STItt

Establece el bit SETUID o SETGIDEstablece el bit SETUID o SETGIDss

Establece a ejecuciEstablece a ejecucióón.n.xx

Establece a escritura.Establece a escritura.ww

Establece a lectura.Establece a lectura.rr

QuiQuiéénn

OperadorOperador

PermisoPermiso

FFormula ormula de permisos de permisos relativo de relativo de ““chmodchmod””

chmod formula archivo1 [archivo2 ...]

QuiQuiéénn OperadorOperador PermisoPermiso

Page 28: LINUX Básico€¦ · LINUX Básico (7. Shells(2)) 4 7.1 Programas y comandos (1) Programas y comandos interiores del shell • Normalmente los comandos son programas, su sustancia

LINUX BLINUX Báásico (7. Shells(2))sico (7. Shells(2)) 2828

[usr000[usr000@linuxpc@linuxpc usr000]$ chmod 755 sleep2usr000]$ chmod 755 sleep2[usr000[usr000@linuxpc@linuxpc usr000]$ ls usr000]$ ls --l sleep2l sleep2--rwrwxxrr--xrxr--x 1 usr000 x 1 usr000 usr000usr000 12444 feb 18 2003 sleep212444 feb 18 2003 sleep2[usr000[usr000@linuxpc@linuxpc usr000]$ chmod u+s sleep2usr000]$ chmod u+s sleep2[usr000[usr000@linuxpc@linuxpc usr000]$ ls usr000]$ ls --l sleep2l sleep2--rwrwssrr--xxrr--x 1 usr000 x 1 usr000 usr000usr000 12444 feb 18 2003 sleep212444 feb 18 2003 sleep2[usr000[usr000@linuxpc@linuxpc usr000]$ chmod g+s sleep2usr000]$ chmod g+s sleep2[usr000[usr000@linuxpc@linuxpc usr000]$ ls usr000]$ ls --l sleep2l sleep2--rwsrrwsr--ssrr--xx 1 usr000 1 usr000 usr000usr000 12444 feb 18 2003 sleep212444 feb 18 2003 sleep2[usr000[usr000@linuxpc@linuxpc usr000]$ chmod +t sleep2usr000]$ chmod +t sleep2[usr000[usr000@linuxpc@linuxpc usr000]$ ls usr000]$ ls --l sleep2l sleep2--rwsrrwsr--srsr--tt 1 usr000 1 usr000 usr000usr000 12444 feb 18 2003 sleep212444 feb 18 2003 sleep2

Page 29: LINUX Básico€¦ · LINUX Básico (7. Shells(2)) 4 7.1 Programas y comandos (1) Programas y comandos interiores del shell • Normalmente los comandos son programas, su sustancia

LINUX BLINUX Báásico (7. Shells(2))sico (7. Shells(2)) 2929

7.4(7.4(33)) SETUIDSETUID•• Normalmente el propietario de un proceso es el usuario que Normalmente el propietario de un proceso es el usuario que

ejecutejecutóó el programa. el programa. •• Pero, si el bit Pero, si el bit SETUIDSETUID del archivo del programa estdel archivo del programa estáá activo, el activo, el

propietario del proceso va a ser el programa del archivo. propietario del proceso va a ser el programa del archivo. •• Por ejemplo, el comando Por ejemplo, el comando ““passwdpasswd”” tiene el bit SETUID activado. tiene el bit SETUID activado.

[usr000[usr000@linuxpc@linuxpc usr000]$ ls usr000]$ ls --l /usr/bin/passwdl /usr/bin/passwd--rr--ss----xx----x 1 x 1 rootroot rootroot 16336 feb 13 2003 /usr/bin/passwd16336 feb 13 2003 /usr/bin/passwd

Este comando guarda las contraseEste comando guarda las contraseññas en el archivo as en el archivo ““/etc//etc/shadowshadow””. Sin embargo, los usuarios ordinales no tienen . Sin embargo, los usuarios ordinales no tienen permisos, no pondrpermisos, no pondráán cambiar su contrasen cambiar su contraseñña. Entonces, a. Entonces, utilizamos el bit utilizamos el bit SETUIDSETUID. El propietario del proceso va a ser . El propietario del proceso va a ser ““rootroot””, el proceso puede editar el archivo , el proceso puede editar el archivo ““/etc//etc/shadowshadow””..

Page 30: LINUX Básico€¦ · LINUX Básico (7. Shells(2)) 4 7.1 Programas y comandos (1) Programas y comandos interiores del shell • Normalmente los comandos son programas, su sustancia

LINUX BLINUX Báásico (7. Shells(2))sico (7. Shells(2)) 3030

[usr001@linuxpc usr001]$ ls [usr001@linuxpc usr001]$ ls --l /home/usr000/secretol /home/usr000/secreto--rr----rr---------- 1 usr000 1 usr000 usr000usr000 43 sep 20 10:04 /home/usr000/secreto43 sep 20 10:04 /home/usr000/secreto[usr001@linuxpc usr001]$ [usr001@linuxpc usr001]$ whoamiwhoamiusr001usr001[usr001@linuxpc usr001]$ cat /home/usr000/secreto[usr001@linuxpc usr001]$ cat /home/usr000/secretocat: /home/usr000/secreto: cat: /home/usr000/secreto: PermisoPermiso denegadodenegado

[usr001@linuxpc usr001]$ ls [usr001@linuxpc usr001]$ ls --l /home/usr000/catl /home/usr000/cat--SUIDSUID--rwrwssrr--xrxr--xx 1 1 usr000usr000 usr000usr000 14364 14364 febfeb 18 2003 /home/usr000/cat18 2003 /home/usr000/cat--SUIDSUID

[usr001@linuxpc usr001]$ /home/usr000/cat[usr001@linuxpc usr001]$ /home/usr000/cat--SUID /home/usr000/secretoSUID /home/usr000/secretoEl El contenidocontenido del del esteeste archivoarchivo eses secretosecreto......

Hay un archivo Hay un archivo ““secretosecreto”” en el directorio base de en el directorio base de ““usr000usr000””. Otros usuarios . Otros usuarios excepto excepto ““usr000usr000”” no pueden leerlo con el comando no pueden leerlo con el comando ““catcat”” normal.normal.

En el mismo directorio, hay un comando En el mismo directorio, hay un comando ““catcat--SUIDSUID”” especial del comando especial del comando ““catcat””, , que tiene el bit SETUID activado. Este comando se ejecuta en la que tiene el bit SETUID activado. Este comando se ejecuta en la autoridad del autoridad del usuario usuario ““usr000usr000””..

Usando el comando Usando el comando ““catcat--SUIDSUID””, otros usuarios pueden leer el archivo , otros usuarios pueden leer el archivo ““secretosecreto””..

Page 31: LINUX Básico€¦ · LINUX Básico (7. Shells(2)) 4 7.1 Programas y comandos (1) Programas y comandos interiores del shell • Normalmente los comandos son programas, su sustancia

LINUX BLINUX Báásico (7. Shells(2))sico (7. Shells(2)) 3131

7.4(7.4(44)) SETGIDSETGID•• La idea de SETGID es similar a la de SETUID.La idea de SETGID es similar a la de SETUID.•• Si el bit Si el bit SETGIDSETGID del archivo del programa estdel archivo del programa estáá activo, el proceso activo, el proceso

va a ser un miembro del grupo del archivo temporalmente.va a ser un miembro del grupo del archivo temporalmente.

[usr001@linuxpc usr001]$ ls [usr001@linuxpc usr001]$ ls --l /home/usr000/catl /home/usr000/cat--SGIDSGID--rwxrrwxr--ssrr--xx 1 usr000 1 usr000 usr000usr000 14364 14364 febfeb 18 2003 /home/usr000/cat18 2003 /home/usr000/cat--SGIDSGID

[usr001@linuxpc usr001]$ /home/usr000/cat[usr001@linuxpc usr001]$ /home/usr000/cat--SUID /home/usr000/secretoSUID /home/usr000/secretoEl El contenidocontenido del del esteeste archivoarchivo eses secretosecreto......

En el mismo directorio, hay otro comando En el mismo directorio, hay otro comando ““catcat--SGIDSGID””, especial del comando , especial del comando ““catcat”” tambitambiéén, que tiene el bit SETGID activado. Este comando se ejecuta en n, que tiene el bit SETGID activado. Este comando se ejecuta en la autoridad del grupo la autoridad del grupo ““usr000usr000””..

Usando el comando Usando el comando ““catcat--SUIDSUID”” tambitambiéén, otros usuarios pueden leer el archivo n, otros usuarios pueden leer el archivo ““secretsecret””..

[usr001@linuxpc usr001]$ ls [usr001@linuxpc usr001]$ ls --l /home/usr000/secretol /home/usr000/secreto--rr----rr---------- 1 usr000 1 usr000 usr000usr000 43 sep 20 10:04 /home/usr000/secreto43 sep 20 10:04 /home/usr000/secreto[usr001@linuxpc usr001]$ cat /home/usr000/secreto[usr001@linuxpc usr001]$ cat /home/usr000/secretocat: /home/usr000/secreto: cat: /home/usr000/secreto: PermisoPermiso denegadodenegado

Sobre el dicho archivo Sobre el dicho archivo ““secretosecreto”” en el directorio base del en el directorio base del ““usr000usr000””... ...

Page 32: LINUX Básico€¦ · LINUX Básico (7. Shells(2)) 4 7.1 Programas y comandos (1) Programas y comandos interiores del shell • Normalmente los comandos son programas, su sustancia

LINUX BLINUX Báásico (7. Shells(2))sico (7. Shells(2)) 3232

7.4(7.4(55)) STISTI•• Por ejemplo, en el directorio Por ejemplo, en el directorio ““/home/tmp/home/tmp””, cualquiera puede crear , cualquiera puede crear

archivos y directorios.archivos y directorios.

[usr001@linuxpc usr001]$ [usr001@linuxpc usr001]$ whoamiwhoamiusr001usr001[usr001@linuxpc usr001]$ date >> /home/tmp/arch1[usr001@linuxpc usr001]$ date >> /home/tmp/arch1--bash: /home/tmp/arch1: bash: /home/tmp/arch1: PermisoPermiso denegadodenegado

[usr000@linuxpc usr000]$ ls [usr000@linuxpc usr000]$ ls --ld /home/tmpld /home/tmpdrwxrwxrwxdrwxrwxrwx 2 root 2 root rootroot 4096 sep 21 11:45 /home/tmp4096 sep 21 11:45 /home/tmp[usr000@linuxpc usr000]$ ls [usr000@linuxpc usr000]$ ls --l /home/tmp/arch1l /home/tmp/arch1ls: /home/tmp/arch1: No ls: /home/tmp/arch1: No existeexiste el el ficherofichero o el o el directoriodirectorio[usr000@linuxpc usr000]$ date > /home/tmp/arch[usr000@linuxpc usr000]$ date > /home/tmp/arch11[usr000@linuxpc usr000]$ ls [usr000@linuxpc usr000]$ ls --l /home/tmp/arch1l /home/tmp/arch1--rwrw--rwrw--rr---- 1 usr000 1 usr000 usr000usr000 29 sep 21 11:45 /home/tmp/arch129 sep 21 11:45 /home/tmp/arch1

•• Si quita el permiso de escritura para otros usuarios, puede Si quita el permiso de escritura para otros usuarios, puede defender el contenido del archivo contra otros usuarios.defender el contenido del archivo contra otros usuarios.

otro usuariootro usuario

Page 33: LINUX Básico€¦ · LINUX Básico (7. Shells(2)) 4 7.1 Programas y comandos (1) Programas y comandos interiores del shell • Normalmente los comandos son programas, su sustancia

LINUX BLINUX Báásico (7. Shells(2))sico (7. Shells(2)) 3333

•• Sin embargo, el propietario no puede impedir que otros usuarios Sin embargo, el propietario no puede impedir que otros usuarios eliminen el archivo, por que el directorio les da el permiso de eliminen el archivo, por que el directorio les da el permiso de escritura.escritura.

[usr000@linuxpc usr000]$ ls [usr000@linuxpc usr000]$ ls --ld /tmpld /tmpdrwxrwxrwdrwxrwxrwtt 3 root 3 root rootroot 4096 sep 21 09:30 /tmp4096 sep 21 09:30 /tmp

[usr001@linuxpc usr001]$ [usr001@linuxpc usr001]$ whoamiwhoamiusr001usr001[usr001@linuxpc usr001]$ ls [usr001@linuxpc usr001]$ ls --ld /home/tmpld /home/tmpdrwxrwxrwxdrwxrwxrwx 2 root 2 root rootroot 4096 sep 21 11:45 /home/tmp4096 sep 21 11:45 /home/tmp[usr001@linuxpc usr001]$ ls [usr001@linuxpc usr001]$ ls --l /home/tmp/arch1l /home/tmp/arch1--rwrw--rwrw--rr---- 1 usr000 1 usr000 usr000usr000 29 sep 21 11:45 /home/tmp/arch129 sep 21 11:45 /home/tmp/arch1[usr001@linuxpc usr001]$ rm /home/tmp/arch1[usr001@linuxpc usr001]$ rm /home/tmp/arch1rm: rm: ¿¿borrarborrar el el ficherofichero regular `/home/tmp/arch1' regular `/home/tmp/arch1' protegidoprotegido contra contra escrescrituraitura? (? (s/ns/n) s) s[usr001@linuxpc usr001]$ ls [usr001@linuxpc usr001]$ ls --l /home/tmp/arch1l /home/tmp/arch1ls: /home/tmp/arch1: No ls: /home/tmp/arch1: No existeexiste el el ficherofichero o el o el directoriodirectorio

otro usuariootro usuario

•• Entonces, utilizamos el bit STI por el directorio. Se utiliza enEntonces, utilizamos el bit STI por el directorio. Se utiliza en el el directorio directorio ““/tmp/tmp””, en el que cualquiera puede guardar ficheros , en el que cualquiera puede guardar ficheros temporales.temporales.Cuando el sistema arranca, se borran todos los ficheros en el Cuando el sistema arranca, se borran todos los ficheros en el ““/tmp/tmp””..

Page 34: LINUX Básico€¦ · LINUX Básico (7. Shells(2)) 4 7.1 Programas y comandos (1) Programas y comandos interiores del shell • Normalmente los comandos son programas, su sustancia

LINUX BLINUX Báásico (7. Shells(2))sico (7. Shells(2)) 3434

[usr001@linuxpc usr001]$ [usr001@linuxpc usr001]$ whoamiwhoamiusr001usr001[usr001@linuxpc usr001]$ date >> /home/tmp2/arch1[usr001@linuxpc usr001]$ date >> /home/tmp2/arch1--bash: /home/tmp2/arch1: bash: /home/tmp2/arch1: PermisoPermiso denegadodenegado[usr001@linuxpc usr001]$ rm /home/tmp2/arch1[usr001@linuxpc usr001]$ rm /home/tmp2/arch1rm: rm: ¿¿borrarborrar el el ficherofichero regular `/home/tmp2/arch1' regular `/home/tmp2/arch1' protegidoprotegido contra contra escrituraescritura? (? (s/ns/n) s) srm: no se rm: no se puedepuede borrarborrar `/home/tmp2/arch1': `/home/tmp2/arch1': OperaciOperacióónn no no permitidapermitida

[usr000@linuxpc usr000]$ ls [usr000@linuxpc usr000]$ ls --ld /home/tmp2ld /home/tmp2drwxrwxrwdrwxrwxrwtt 2 root 2 root rootroot 4096 sep 21 12:22 /home/tmp24096 sep 21 12:22 /home/tmp2[usr000@linuxpc usr000]$ ls [usr000@linuxpc usr000]$ ls --l /home/tmp2/arch1l /home/tmp2/arch1ls: /home/tmp2/arch1: No ls: /home/tmp2/arch1: No existeexiste el el ficherofichero o el o el directoriodirectorio[usr000@linuxpc usr000]$ date > /home/tmp2/arch1[usr000@linuxpc usr000]$ date > /home/tmp2/arch1[usr000@linuxpc usr000]$ ls [usr000@linuxpc usr000]$ ls --l /home/tmp2/arch1l /home/tmp2/arch1--rwrw--rwrw--rr---- 1 usr000 1 usr000 usr000usr000 29 sep 21 12:24 /home/tmp2/arch129 sep 21 12:24 /home/tmp2/arch1

otro usuariootro usuario

En el directorio En el directorio ““/home/tmp2/home/tmp2”” tambitambiéén, cualquiera puede almacenar archivos, n, cualquiera puede almacenar archivos, pero el bit STI estpero el bit STI estáá activado.activado.

Este vez, otros usuarios no pueden editar ni eliminar el archivoEste vez, otros usuarios no pueden editar ni eliminar el archivo. .

Page 35: LINUX Básico€¦ · LINUX Básico (7. Shells(2)) 4 7.1 Programas y comandos (1) Programas y comandos interiores del shell • Normalmente los comandos son programas, su sustancia

LINUX BLINUX Báásico (7. Shells(2))sico (7. Shells(2)) 3535

¡¡ Muchas gracias por su atenciMuchas gracias por su atencióón !n !¡¡ Hasta pronto !Hasta pronto !

En la próxima hora, vamos a aprender sobre el shell scripts.