-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTPs_Diplomatura_Linux.tex
4731 lines (3709 loc) · 158 KB
/
TPs_Diplomatura_Linux.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
\documentclass[a4paper,11pt,spanish]{article} % or {article}
\usepackage[utf8x]{inputenc}
%\usepackage[utf8]{inputenc}% utf8x es un extensión, en gral las
% extensiones funcionan mejor, ``archx`` son extensiones. En ubuntu
% la extensión es utf8x
\usepackage[spanish]{babel}
\addto{\captionsspanish}{\renewcommand*{\refname}{
\center \Large BIBLIOGRAFÍA}}
\usepackage[T1]{fontenc} % Los fonts tipo T1 están en todos los
% visualizadores
\usepackage{times} % recordar que T1 + times logra un estilo de fuente
%muy armónico
\usepackage{verbatim} % verbatim package to use multiline comments in
%Latex \begin{comment}...\end{comment}
\usepackage{listings}
% SOME Extra packages
\usepackage{calc}
\usepackage{setspace}
\usepackage{fixltx2e}
\usepackage[normalem]{ulem}
%% Please revise the following command, if your babel
%% package does not support English (US)
\usepackage{color}
\usepackage{hyperref}
\usepackage[utf8x]{inputenc}
\usepackage[spanish]{babel}
\usepackage[T1]{fontenc}
\usepackage{times}
\usepackage{xcolor}
\usepackage{color}
%\usepackage{hyperref}
%\usepackage{geometry}
%\geometry{verbose,a4paper,tmargin=30mm,bmargin=20mm,lmargin=30mm,
%rmargin=20mm}
\usepackage{setspace}
\usepackage{url}
\usepackage{tocvsec2}
\usepackage{float}
\usepackage[nottoc,notlof,notlot]{tocbibind}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsfonts}
\usepackage{textcomp}
\usepackage[font=footnotesize,labelfont=bf]{caption}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{multicol} % tabular mgmt
\usepackage{bm}
\usepackage{pdfpages} % to import PDF pages
\usepackage{acronym}
\usepackage{multicol}
%\usepackage{subfigure}
%\usepackage[caption=false]{subfig}
\usepackage{subfig}
%\usepackage{subcaption}
\usepackage{graphicx}
\newenvironment{mytinylisting}
{\begin{list}{}{\setlength{\leftmargin}{1em}}\item\tiny\bfseries}
{\end{list}}
\newenvironment{myscriptlisting}
{\begin{list}{}{\setlength{\leftmargin}{1em}}\item\scriptsize\bfseries}
{\end{list}}
%opening
\title{\huge UNIVERSIDAD NACIONAL de CORDOBA - Departamento Universitario de Informática}
% \\[2cm]\huge
% Dimensionamiento de una estaci\'on ISDB-Tb \& Visita LV80 TV Canal
% 10 \\[2cm]}
\date{}
\makeatletter
\def\@biblabel#1{}
\makeatother
\spanishdecimal{.}
\bibliographystyle{apalike}
\renewcommand{\figurename}{Fig.} %Cambia la palabra ``Figura`` por ``Fig.``
\renewcommand{\tablename}{Tabla} %Cambia la palabra ``Cuadro`` por ``Tabla``
\renewcommand{\listtablename}{Índice de tablas}
\begin{document}
\pagenumbering{roman}
\maketitle
\thispagestyle{empty}
\begin{figure}[htb] % h= here t=top =bottom con respecto al texto
\centering
\includegraphics[width=.5\textwidth,
keepaspectratio]{/home/delivery/Desktop/DiploLinuxLatex/Figuras/LogoDUI.jpg} \ \ \
\ \
%\caption{\emph{ Representaci\'{o}n gr\'{a}fica
\includegraphics[width=.4\textwidth,
keepaspectratio]{/home/delivery/Desktop/DiploLinuxLatex/Figuras/LogoLinux.jpg}
\end{figure}
\begin{center}
\hspace*{\fill} \\[.7cm] \Large Diplomatura SO Linux
\\[1cm]
\begin{tabular}[h]{|p{ 9cm }|}
\hline
\textbf{\Large Prácticos curso Administración básica de
\mbox{Sistemas Operativos GNU/Linux.}}
\\
\hline
\end{tabular}
\author{ \hspace*{\fill} \\[.9cm] BARRIRERO, Exequiel \\}
\end{center}
\begin{flushleft}
\textbf{ \\[.3cm] Profesor:} MIRIZIO, Esteban.\\
\end{flushleft}
\begin{center}
\textbf{\large -2015-}\\[2.5cm]
\end{center}
\begin{center}
in \LaTeX
\end{center}
\newpage
\begin{center}
\tableofcontents
\listoffigures
\listoftables
\setcounter{secnumdepth}{3}
%\settocdepth{subsection}
\end{center}
\newpage
\pagenumbering{arabic}
\setcounter{page}{1}
%\setcounter{page}{2}
%\thispagestyle{empty}
\section{Ejercicios Tema1: Introducción al entorno gráfico de un Sistema GNU/Linux y herramientas}
\begin{itemize}
\item Conceptos básicos de sistemas operativos
\subitem Conceptos de multitarea y multiusuario
\subitem Explicar la naturaleza del software opensource
\item Orígenes de GNU/Linux. Distribuciones GNU/Linux. Principios básicos de GNU/Linux.
\item Entornos de escritorio más comunes: Gnome.
\item Navegadores de sistemas archivos: Nautilus.
\item Navegación web: Firefox.
\item Ofimática: LibreOffice: Writer y Calc
\item Multimedia: reproductores de audio y reproductores de video.
\item Editores de texto: Gedit.
\item Visor de PDF: Evince.
\item Pasar de entorno gráfico a consola
\end{itemize}
\subsection{Actividad 1.}
\subsubsection{Kernel: Definición}
En informática, un núcleo o kernel (de la raíz germánica Kern, núcleo, hueso) es un software que
constituye una parte fundamental del sistema operativo, y se define como la parte que se ejecuta en modo
privilegiado (conocido también como modo núcleo). Es el principal responsable de facilitar a
los distintos programas acceso seguro al hardware de la computadora o en forma básica,
es el encargado de gestionar recursos, a través de servicios de llamada al sistema.
Como hay muchos programas y el acceso al hardware es limitado, también se encarga de
decidir qué programa podrá hacer uso de un dispositivo de hardware y durante cuánto tiempo,
lo que se conoce como multiplexado. Acceder al hardware directamente puede ser realmente complejo,
por lo que los núcleos suelen implementar una serie de abstracciones del hardware. Esto permite esconder
la complejidad, y proporciona una interfaz limpia y uniforme al hardware subyacente, lo que facilita su uso
al programador.
\cite{wikikernel}
\subsubsection{Versión actual de kernel estable en \ac{gnu}/Linux}
Here are several main categories into which kernel releases may fall:
\begin{itemize}
\item \textbf{Prepatch: \\}
Prepatch or ``RC`` kernels are mainline kernel pre-releases that are mostly aimed at other kernel developers
and Linux enthusiasts. They must be compiled from source and usually contain new features that must be
tested before they can be put into a stable release. Prepatch kernels are maintained and released by
Linus Torvalds.
\item \textbf{Mainline:\\}
Mainline tree is maintained by Linus Torvalds. It's the tree where all new features are introduced and
where all the exciting new development happens. New mainline kernels are released every 2-3 months.
\item \textbf{Stable:\\}
After each mainline kernel is released, it is considered ``stable.`` Any bug fixes for a stable kernel
are backported from the mainline tree and applied by a designated stable kernel maintainer.
There are usually only a few bugfix kernel releases until next mainline kernel becomes available -- unless it is designated a ``longterm maintenance kernel.`` Stable kernel updates are released on as-needed basis, usually 2-3 a month.
\item \textbf{Longterm:\\}
There are usually several ``longterm maintenance`` kernel releases provided for the purposes of backporting
bugfixes for older kernel trees. Only important bugfixes are applied to such kernels and they don't usually see very frequent releases, especially for older trees.
Longterm release kernels are the Versions: 3.18, 3.14, 3.12, 3.10, 3.4, 3.2, 2.6.32.
\item \textbf{Distribution kernels:\\}
Many Linux distributions provide their own ``longterm maintenance`` kernels that may or may not be based
on those maintained by kernel developers. These kernel releases are not hosted at kernel.org and kernel
developers can provide no support for them.
It is easy to tell if you are running a distribution kernel. Unless you downloaded, compiled and installed
your own version of kernel from kernel.org, you are running a distribution kernel.
To find out the version of your kernel, run \texttt{uname -r}:
\cite{linuxkernel}\\
Por ejemplo:
\begin{myscriptlisting}
\begin{verbatim}
delivery@delivery-laptop:~$ uname -r
3.16.0-33-generic
delivery@delivery-laptop:~$ uname -a
Linux delivery-laptop 3.16.0-33-generic #44~14.04.1-Ubuntu SMP Fri Mar
13 10:33:29 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
\end{verbatim}
\end{myscriptlisting}
\end{itemize}
Luego la \textbf{\emph{última versión estable del Kernel de Linux}} es la versión: \textbf{4.17}.
Esto puede verificarse en el sitio web oficial de Linux Kernel Organization Inc (https://www.kernel.org/).
Como se presenta en la figura debajo:
\begin{figure}[h!]
\centering
\includegraphics[width=1 \textwidth,
keepaspectratio]{/home/delivery/Desktop/DiploLinuxLatex/Figuras/LinuxKernel.jpg}
\caption{\emph{The Linux Kernel Archives \cite{linuxkernel1}.}}
\end{figure}
\clearpage
\subsubsection{Versión mas usada de kernel estable en \ac{gnu}/Linux}
Considerando que la versión estable 2.6.10 del Kernel de Linux se lanzó en Diciembre del 2003 y aún
esta vigente y en use podemos decir que esta versión estable es la ampliamente desplegada y utilizada.
Versión 2.6, lanzada el 17 December 2003. Versión actual 2.6.32 - 2.6.39
\ac{eol} (maintained from May 2011 to August 2011), last stable release of the 2.6 kernel series.
longterm: 2.6.32.67 2015-06-03
Por su parte, cabe considerar la versión y los releases 3.0 del Kernel ya que esta versión tomó lugar
el 21 de Julio del 2011 y su último release longterm:3.18.21 (2015-08-31) demostrando una validez de ya
cinco años.
\cite{wikikernel1}
\subsection{Actividad 2.}
\subsubsection{¿De qué distribución deriva \ac{gnu}/Linux Fedora?}
\emph{``The Fedora Project is a global partnership of free software community members.
The Fedora Project is sponsored by \textbf{\emph{Red Hat}}, which invests in our infrastructure and resources to
encourage collaboration and incubate innovative new technologies. Some of these technologies may later
be integrated into Red Hat products. They are developed in Fedora and produced under a free and open
sogenurce license from inception, so other free software communities and projects are free to study, adopt,
and modify them.
Read an overview to learn more about our mission, our community, our governance, and what makes Fedora
unique. You can also learn about our vision and core values the foundations upon which the project is
built. We also have information relating to our user base, and the objectives for our technical work.''}
\cite{fedoraproject}
\subsection{Actividad 3.}
\subsubsection{Imprimir pantalla del escritorio \ac{gnome}}
Imprimir pantalla del escritorio \ac{gnome}
y guardar la imagen en el home del usuario dentro de un directorio llamado imagen.
Cabe mencionar que el usuario es nombrado \textbf{\emph{delivery}}.
\begin{figure}[h!]
\centering
\includegraphics[width=1 \textwidth,
keepaspectratio]{/home/delivery/Desktop/DiploLinuxLatex/Figuras/actividad3.jpg}
\caption{\emph{Capturando pantalla en ubuntu 14.04.}}
\end{figure}
\begin{figure}[h!]
\centering
\includegraphics[width=1 \textwidth,
keepaspectratio]{/home/delivery/Desktop/DiploLinuxLatex/Figuras/actividad3b.jpg}
\caption{\emph{Verificando que la captura se haya guardado correctamente en la folder \\
/home/delivery/image/.}}
\end{figure}
\pagebreak
\subsection{Actividad 4.}
\subsubsection{Navegación de directorios con Nautilus}
\textbf{Navegar a través del Nautilus los siguientes directorios:
/home
/etc/
/var/log
/root
/dev
¿En que directorio/s no pudo acceder? ¿Qué tienen de particular los íconos de estos directorios a los que no pudo acceder?\\}
Como usuario sin privilegios a través del navegador de archivos \textbf{\emph{nautilus}}
uno solo podría ingresar y tener control absoluto de los directorios
y archivos dentro de \textbf{\emph{/home}}. Luego con este mismo usuario acceder a \textbf{\emph{/etc, /var/log, /dev}}, pero
sin permisos de escritura o ejecución, solo lectura. Finalmente, el directorio \textbf{\emph{/root}} no es
accesible a través de la interfaz gráfica ya que no poseemos permisos suficientes para realizar esta
acción. Las carpetas a las cuales carecemos de acceso y permisos se presentan con un candado en el
icono (considerar que esto no ocurre para el nuevo ubuntu 14.04 como puede verse en las capturas de
pantalla).
Lo detallado en el párrafo anterior puede apreciarse en las siguientes capturas:
\begin{figure}[h!]
\centering
\includegraphics[width=1 \textwidth,
keepaspectratio]{/home/delivery/Desktop/DiploLinuxLatex/Figuras/actividad4a.jpg}
\caption{\emph{Navegación de archivos con Nautius folder: /home .}}
\end{figure}
\begin{figure}[h!]
\centering
\includegraphics[width=1 \textwidth,
keepaspectratio]{/home/delivery/Desktop/DiploLinuxLatex/Figuras/actividad4b.jpg}
\caption{\emph{Navegación de archivos con Nautius folder: /etc .}}
\end{figure}
\begin{figure}[h!]
\centering
\includegraphics[width=1 \textwidth,
keepaspectratio]{/home/delivery/Desktop/DiploLinuxLatex/Figuras/actividad4c.jpg}
\caption{\emph{Navegación de archivos con Nautius folder: /root.}}
\end{figure}
\clearpage
\pagebreak
\subsection{Actividad 5.}
\subsubsection{LibreOffice Writer: Guardado de archivos .doc en .odt }
\begin{figure}[h!]
\centering
\includegraphics[width=1 \textwidth,
keepaspectratio]{/home/delivery/Desktop/DiploLinuxLatex/Figuras/actividad5.jpg}
\caption{\emph{LibreOffice Writer: Guardado de archivos .doc en .odt.}}
\end{figure}
A un archivo .doc, guardarlo como .odt con LibreOffice Writer.
\pagebreak
\subsection{Actividad 6.}
\subsubsection{Consolas virtuales y \ac{gtk}-Warning}
\textbf{Ejecute la siguiente secuencia de teclas:
Alt+F2 y escriba ``gedit``.
¿Qué sucedió? ¿Qué acción realiza la ejecución de Alt+F2?}\\
Accedemos a la consola virtual número dos. Por su parte no es posible abrir un aplicativo que
requiere de \ac{gui} para funcionar.
Esto es un evento relacionado a la seguridad de SO normal. Linux es un sistema multiusuario
donde muchos usuarios podrían estar loggeados, localmente o de forma remota en una sesión GUI.
Luego, ¿qué ocurriría si otros users podrían abrir ventanas en tu escritorio sin su consentimiento?
Claramente esto no sería un comportamiento deseado del SO. Por su parte esto permitiría abrir una
ventana de gedit u otra aplicación más crítica como un navegador web de forma tal que a este usuario
mal intencionado le permita leer todos nuestros inputs por teclado, pudiendo incluir datos confidenciales
como nuestra cuenta bancaria. Es por esto que se utiliza \textbf{\emph{xhost}} \footnote{NAME:
xhost - server access control program for X. SYNOPSIS: xhost [[+-]name ...] DESCRIPTION: The xhost
program is used to add and delete host names or user names to the list allowed to make connections
to the X server. In the case of hosts, this provides a rudimentary form of privacy control and security.
It is only sufficient for a workstation (single user) environment, although it does limit the
worst abuses. Environments which require more sophisticated measures should implement
the user-based mechanism or use the hooks in the protocol for passing other authentication data
to the server.\cite{xhost}}.
Por otro lado, la sesión CLI de root no sabe en cual de los displays o pantallas debe abrir la ventana.
Nuevamente cabe remarcar que podría haber varias, tanto locales como remotas. Por lo antedicho surge
la necesidad de declarar la variable de entorno \textbf{\emph{DISPLAY}}. De todas formas existen
soluciones más prácticas desde la \ac{gui} de usuario normal para manejar estás sesiones,
\textbf{\emph{gnomesu}} en \ac{gnome} y \textbf{\emph{kdesu}} en \ac{kde}. Las cuales básicamente son parte
de una librería para proveer de privilegios de super usuario a las aplicaciones de \ac{gnome}.\\
Cabe mencionar:\\
\emph{''\textbf{Virtual consoles:} In the default Debian system, there are \textbf{six switchable VT100-like character consoles available
to start the command shell directly on the Linux host}. Unless you are in a \ac{gui} environment,
you can switch between the virtual consoles by \textbf{pressing the Left-Alt-key and one of the F1 — F6
keys simultaneously}. Each character console allows independent login to the account and offers the
multiuser environment. This multiuser environment is a great Unix feature, and very addictive.
If you are under the X Window System, you gain access to the character console 1 by pressing
Ctrl-Alt-F1 key, i.e., the left-Ctrl-key, the left-Alt-key, and the F1-key are pressed together.
You can get back to the X Window System, normally running on the virtual console 7, by pressing Alt-F7.
You can alternatively change to another virtual console, e.g. to the console 1, from the commandline.``}
\texttt{\# chvt 1\\}
\cite{osamu}
\begin{figure}[h!]
\centering
\includegraphics[width=1 \textwidth,
keepaspectratio]{/home/delivery/Desktop/DiploLinuxLatex/Figuras/actividad6.jpg}
\caption{\emph{Linux virtual consoles.}}
\end{figure}
\clearpage
\pagebreak
\section{Ejercicios Tema3: Línea de Comandos. Comandos básicosI }
\begin{itemize}
\item Concepto de lineas de comando. Presentación de shell bash.
\item Entender la naturaleza de los privilegios del usuario root.
\item Moverse y explorar el árbol de jerarquía del Sistema Operativo: ls, cd, mkdir, rmdir.
\item Copiar, eliminar y renombrar archivos: cp, rm, mv, ln.
\item Usuarios y permisos: chown, chmod, adduser, addgroup
\item Crear y ver archivos: touch, less.
\end{itemize}
\subsection{Actividad 1.}
\subsubsection{\ac{cd} command}
\textbf{Desde el directorio /home/curso, cambiar al directorio /etc vía path absoluto.
Vuelva al directorio /home/curso vía path absoluto.}
\begin{myscriptlisting}
\begin{verbatim}
delivery@ubuntu:~/curso$ pwd
/home/delivery/curso
delivery@ubuntu:~/curso$ cd /etc/
delivery@ubuntu:/etc$ pwd
/etc
delivery@ubuntu:/etc$ cd /home/delivery/curso/
delivery@ubuntu:~/curso$ pwd
/home/delivery/curso
\end{verbatim}
\end{myscriptlisting}
\textbf{Repita la acción anterior vía path relativo.
Ejecutar el comando pwd en ambos casos para confirmar el cambio de directorio.}
\begin{myscriptlisting}
\begin{verbatim}
delivery@ubuntu:~/curso$ pwd
/home/delivery/curso
delivery@ubuntu:~/curso$ cd /etc/
delivery@ubuntu:/etc$ pwd
/etc
delivery@ubuntu:/etc$ cd ~delivery/curso/
delivery@ubuntu:~/curso$ pwd
/home/delivery/curso
\end{verbatim}
\end{myscriptlisting}
\subsection{Actividad 2.}
\subsubsection{Sudo y permisos de administración}
\textbf{¿Por qué el usuario ``dui`` tiene permisos de administración mientras que el usuario ``curso`` no?
Algunas pistas:
a.- Revisar a que grupo pertenecen el usuario ``dui`` y ``curso``
b.- Revisar el contenido del archivo /etc/sudoers (archivo de configuración de \ac{sudo})
y ver que permisos tienen los grupos a los cuales pertenecen el usuario ''dui'' y ``curso''.\\}
Se verifican los usuarios creados en el sistema a través del archivo de sistema \textbf{\emph{passwd}}
donde se encuentran definidas las cuentas de usuario.
Por otro lado, puede verse que el user \textbf{\emph{curso}} no se encuentra en el archivo
\textbf{\emph{sudoers}} por lo que carece de asignación de privilegios de súper usuario a través
del comando \textbf{\emph{\ac{sudo}}}.\\
\textbf{NOTA:}
se utilizó el user \textbf{\emph{delivery}} en lugar de \textbf{\emph{dui}}.
\begin{myscriptlisting}
\begin{verbatim}
curso@ubuntu:~$ cat /etc/passwd | egrep -i 'root|delivery|curso'
root:x:0:0:root:/root:/bin/bash
delivery:x:1000:1000:delivery,,,:/home/delivery:/bin/bash
curso:x:1001:1001:curso,,,:/home/curso:/bin/bash
curso@ubuntu:~$ sudo su
[sudo] password for curso:
curso is not in the sudoers file. This incident will be reported.
\end{verbatim}
\end{myscriptlisting}
Luego con el usuario \textbf{\emph{delivery}} se lee y validan los privilegios
declarados en \textbf{\emph{/etc/sudoers}}. Como ser el user \textbf{\emph{root}}, con permisos
\textbf{\emph{ALL=(ALL:ALL) ALL}} (se detallará debajo su significado) y los más relevante
para esta práctica revisar que se incluye una línea para permitir a todos los miembros
del grupo \textbf{\emph{\ac{sudo}}} para ejecutar cualquier comando:
\begin{verbatim}
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
\end{verbatim}
\begin{myscriptlisting}
\begin{verbatim}
curso@ubuntu:~$ su - delivery
Password:
delivery@ubuntu:~$ sudo cat /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path=``/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin``
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL:ALL) ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
# See sudoers(5) for more information on ``#include`` directives:
#includedir /etc/sudoers.d
\end{verbatim}
\end{myscriptlisting}
Finalmente se verifica en \textbf{\emph{/etc/group}} lo comentado anteriormente
donde el user \textbf{\emph{delivery}} pertenece al grupo \ac{sudo} con \textbf{\emph{GID = 27}}
y el user \textbf{\emph{curso}} no.
\begin{myscriptlisting}
\begin{verbatim}
delivery@ubuntu:~$ cat /etc/group | egrep -i 'curso|delivery|root'
root:x:0:
adm:x:4:syslog,delivery
cdrom:x:24:delivery
sudo:x:27:delivery
dip:x:30:delivery
plugdev:x:46:delivery
delivery:x:1000:
lpadmin:x:110:delivery
sambashare:x:111:delivery
curso:x:1001:
\end{verbatim}
\end{myscriptlisting}
\textbf{Sudo} is a program designed to let system administrators allow some users to execute some commands
as root (or another user). The basic philosophy is to give as few privileges as possible but still
allow people to get their work done. \ac{sudo} is also an effective way to log who ran which command and when.
As of most Debian based distributions, if you ask for the Desktop task during the installation, that pulls in \ac{sudo} with
a default configuration that automatically grants sudo-ing rights to any member of the \ac{sudo} group.
Depending on what user accounts you set up during the install, it's still possible that you may not
have been added to that group - you can check by running groups.\\
\textbf{Why \ac{sudo}?}
Using sudo is better (safer) than opening a session as root for a number of reasons, including:
\begin{enumerate}
\item Nobody needs to know the root password (\ac{sudo} prompts for the current user's password).
Extra privileges can be granted to individual users temporarily, and then taken away without the
need for a password change.
\item It's easy to run only the commands that require special privileges via \ac{sudo}; the rest of the time,
you work as an unprivileged user, which reduces the damage that mistakes can cause.
Auditing/logging: when a \ac{sudo} command is executed, the original username and the command are logged.
\item For the reasons above, switching to root using \ac{sudo} -i (or sudo su) is usually deprecated because
it cancels the above features.
\end{enumerate}
Sudo is a program designed to allow a sysadmin to give limited root privileges to users and log root
activity. The basic philosophy is to give as few privileges as possible but still allow people to get
their work done.\\
\cite{debiansudo}
\%sudo ALL=(ALL) ALL
\begin{itemize}
\item \textbf{\%sudo} the group named "admin" (\% prefix) is the group or users that
are receiving the permises.
\item \textbf{ALL=} The 2nd parameter refers to the host where the before mentioned group or
users will have priviledges. For this exampe in ALL hosts (this will work if you distribute
the same sudoers file to many computers, or if someone access remotely - however no recommended
from a secutiry point of view).
\item \textbf{(ALL)} The third one is the user as you are running the command. In this case
as any target user.
\item \textbf{ALL} The last one is the commands allowed. So the users in sudo group, in any host
as any user including root, can run any command.
\end{itemize}
\subsection{Actividad 3.}
\subsubsection{less command}
\textbf{Revisar con el comando "less" el contenido del archivo /etc/passwd y en él buscar a los usuarios
root, curso y dui}
\begin{myscriptlisting}
\begin{verbatim}
delivery@ubuntu:~$ less /etc/passwd | egrep 'root|curso|delivery'
root:x:0:0:root:/root:/bin/bash
delivery:x:1000:1000:delivery,,,:/home/delivery:/bin/bash
curso:x:1001:1001:curso,,,:/home/curso:/bin/bash
\end{verbatim}
\end{myscriptlisting}
\subsection{Actividad 4.}
\subsubsection{/bin and /sbin}
\textbf{¿Cuál es la diferencia entre los directorios /bin y /sbin?}
\begin{itemize}
\item \textbf{/bin}\\
This directory contains executable programs which are needed
in single user mode and to bring the system up or repair it.
\end{itemize}
\begin{mytinylisting}
\begin{verbatim}
delivery@ubuntu:/sbin$ cd /bin
delivery@ubuntu:/bin$ pwd
/bin
delivery@ubuntu:/bin$ ls
bash chvt fgconsole lesspipe nc ntfstruncate sed
bunzip2 cp fgrep ln nc.openbsd ntfswipe setfacl
busybox cpio findmnt loadkeys netcat open setfont
bzcat dash fuser login netstat openvt setupcon
bzcmp date fusermount loginctl nisdomainname pidof sh
bzdiff dbus-cleanup-sockets getfacl lowntfs-3g ntfs-3g ping sh.distrib
bzegrep dbus-daemon grep ls ntfs-3g.probe ping6 sleep
bzexe dbus-uuidgen gunzip lsblk ntfs-3g.secaudit plymouth ss
bzfgrep dd gzexe lsmod ntfs-3g.usermap plymouth-upstart-bridge static-sh
bzgrep df gzip mkdir ntfscat ps stty
bzip2 dir hostname mknod ntfsck pwd su
bzip2recover dmesg ip mktemp ntfscluster rbash sync
bzless dnsdomainname kbd_mode more ntfscmp readlink tailf
bzmore domainname kill mount ntfsdump_logfile red tar
cat dumpkeys kmod mountpoint ntfsfix rm tempfile
chacl echo less mt ntfsinfo rmdir touch
chgrp ed lessecho mt-gnu ntfsls rnano true
chmod egrep lessfile mv ntfsmftalloc running-in-container udevadm
chown false lesskey nano ntfsmove run-parts
\end{verbatim}
\end{mytinylisting}
\begin{itemize}
\item \textbf{/sbin}\\
Like /bin, this directory holds commands needed to boot the
system, but which are usually not executed by normal users.
\end{itemize}
\begin{mytinylisting}
\begin{verbatim}
delivery@ubuntu:/sbin$ ls
acpi_available e2fsck fstrim-all iptables-apply mkfs.bfs nameif rmmod
agetty e2image gdisk iptables-restore mkfs.cramfs ntfsclone route
alsa e2label getcap iptables-save mkfs.ext2 ntfscp rtacct
apm_available e2undo getpcaps iptunnel mkfs.ext3 ntfslabel rtmon
apparmor_parser ethtool getty isosize mkfs.ext4 ntfsresize runlevel
badblocks fatlabel halt iwconfig mkfs.ext4dev ntfsundelete setcap
biosdevname fdisk hdparm iwevent mkfs.fat on_ac_power setvtrgb
blkid findfs hwclock iwgetid mkfs.minix pam_tally sfdisk
blockdev fixparts ifconfig iwlist mkfs.msdos pam_tally2 sgdisk
bridge fsck ifdown iwpriv mkfs.ntfs parted shadowconfig
capsh fsck.cramfs ifquery iwspy mkfs.vfat partprobe shutdown
cfdisk fsck.ext2 ifup kbdrate mkhomedir_helper pivot_root slattach
cgdisk fsck.ext3 init killall5 mkntfs plipconfig start
crda fsck.ext4 initctl ldconfig mkswap plymouthd startpar
ctrlaltdel fsck.ext4dev insmod ldconfig.real mntctl poweroff startpar-upstart-inject
debugfs fsck.fat installkernel logsave modinfo rarp start-stop-daemon
depmod fsck.minix ip losetup modprobe raw status
dhclient fsck.msdos ip6tables lsmod mountall reboot stop
dhclient-script fsck.nfs ip6tables-apply MAKEDEV mount.fuse regdbdump sulogin
dmsetup fsck.vfat ip6tables-restore mii-tool mount.lowntfs-3g reload swaplabel
dosfsck fsfreeze ip6tables-save mkdosfs mount.ntfs resize2fs swapoff
dosfslabel fstab-decode ipmaddr mke2fs mount.ntfs-3g resolvconf swapon
dumpe2fs fstrim iptables mkfs mount.vboxsf restart switch_root
\end{verbatim}
\end{mytinylisting}
Directorios relacionados:
\begin{itemize}
\item \textbf{/usr/bin}\\
This is the primary directory for executable programs. Most
programs executed by normal users which are not needed for
booting or for repairing the system and which are not
installed locally should be placed in this directory.
\item \textbf{/usr/local}\\
This is where programs which are local to the site typically
go.
\item \textbf{/usr/local}\\
This is where programs which are local to the site typically
go.
\item \textbf{/usr/local/bin}\\
Binaries for programs local to the site.
\item \textbf{/usr/local/sbin}\\
Locally installed programs for system administration.
\end{itemize}
\cite{wikifhs}
\subsection{Actividad 5.}
\subsubsection{Listado de permisos ''ls -la`` command}
\textbf{Liste el contenido del directorio /home/curso (incluido los archivos ocultos).
Se requiere saber el permiso de acceso, dueño y grupo de cada archivo del directorio.}
\begin{myscriptlisting}
\begin{verbatim}
delivery@ubuntu:~$ cd /home/delivery/
delivery@ubuntu:~$ pwd
/home/delivery
delivery@ubuntu:~$ ls -la
total 128
drwxr-xr-x 19 delivery delivery 4096 Sep 20 19:54 .
drwxr-xr-x 4 root root 4096 Sep 20 19:49 ..
-rw------- 1 delivery delivery 1295 Sep 20 19:38 .bash_history
-rw-r--r-- 1 delivery delivery 220 Sep 16 10:17 .bash_logout
-rw-r--r-- 1 delivery delivery 3637 Sep 16 10:17 .bashrc
drwx------ 14 delivery delivery 4096 Sep 20 19:54 .cache
drwx------ 3 delivery delivery 4096 Sep 20 14:03 .compiz
drwx------ 17 delivery delivery 4096 Sep 20 19:54 .config
drwxrwxr-x 2 delivery delivery 4096 Sep 20 19:41 curso
drwx------ 3 delivery delivery 4096 Sep 20 17:56 .dbus
drwxr-xr-x 2 delivery delivery 4096 Sep 19 21:11 Desktop
drwxrwxr-x 3 delivery delivery 4096 Sep 20 19:12 DiploLinux
-rw-r--r-- 1 delivery delivery 33 Sep 20 14:03 .dmrc
drwxr-xr-x 2 delivery delivery 4096 Sep 19 21:11 Documents
drwxr-xr-x 2 delivery delivery 4096 Sep 19 21:11 Downloads
drwx------ 3 delivery delivery 4096 Sep 20 17:56 .gconf
-rw------- 1 delivery delivery 1590 Sep 20 17:56 .ICEauthority
drwx------ 3 delivery delivery 4096 Sep 19 21:11 .local
drwxr-xr-x 2 delivery delivery 4096 Sep 19 21:11 Music
drwxr-xr-x 2 delivery delivery 4096 Sep 19 21:11 Pictures
drwx------ 3 delivery delivery 4096 Sep 20 19:54 .pki
-rw-r--r-- 1 delivery delivery 675 Sep 16 10:17 .profile
drwxr-xr-x 2 delivery delivery 4096 Sep 19 21:11 Public
drwxr-xr-x 2 delivery delivery 4096 Sep 19 21:11 Templates
-rw-r----- 1 delivery delivery 5 Sep 20 17:56 .vboxclient-clipboard.pid
-rw-r----- 1 delivery delivery 5 Sep 20 17:56 .vboxclient-display.pid
-rw-r----- 1 delivery delivery 5 Sep 20 17:56 .vboxclient-draganddrop.pid
-rw-r----- 1 delivery delivery 5 Sep 20 17:56 .vboxclient-seamless.pid
drwxr-xr-x 2 delivery delivery 4096 Sep 19 21:11 Videos
-rw------- 1 delivery delivery 51 Sep 20 17:56 .Xauthority
-rw------- 1 delivery delivery 908 Sep 20 17:56 .xsession-errors
-rw------- 1 delivery delivery 1294 Sep 20 17:14 .xsession-errors.old
\end{verbatim}
\end{myscriptlisting}
\textbf{Permisos a archivos}
Para permitir establecer los permisos en un archivo contamos con el comando chmod.
Este comando funciona con la siguiente sintaxis:\\
\texttt{Chmod [opciones] permisos archivo/directorio}\\
Antes de adentrarnos en el comando es necesario explicar algunas cosas. Tenemos dos
maneras de asignar permisos a los usuarios, mediante un modo octal y modo carácter.\\
\textbf{Modo Octal}
El modo octal responde a la combinación de los tres permisos con las tres clases de
usuario formando un numero binario de 3 cifras donde:
\begin{itemize}
\item El primer digito corresponde a los permisos del dueño
\item El segundo a los del grupo
\item El tercero al resto de los usuarios
\end{itemize}
La instrucción quedaría asi:\\
\texttt{chmod 760 archivo.txt}\\
\textbf{Modo carácter}
Posee 3 modificadores que permiten realizar la tarea:
\begin{itemize}
\item + : añade un modo
\item – : elimina un modo
\item = : específica un modo (sobrescribiendo el anterior)
\end{itemize}
Los modos son \textbf{r (read), w (write), x(ejecutar)}. y los usuarios están representados por:
\begin{itemize}
\item u: dueño
\item g: grupo
\item o : otros
\item a : todos
\end{itemize}
Entonces si quiero agregar el permiso de escribir a todos, escribo:\\
\texttt{chmod a+w archivo.txt}\\
\cite{mirizioe}
\subsection{Actividad 6.}
\subsubsection{Listado de permisos ''ls -l`` command}
\textbf{Liste el contenido del directorio /etc. Debe aparecer cada archivo contenido en una
linea aparte sin detalles de permisos de acceso, dueño o grupo.}
\begin{myscriptlisting}
\begin{verbatim}
delivery@ubuntu:/etc$ pwd
/etc
delivery@ubuntu:/etc$ ls -1
acpi
adduser.conf
alternatives
anacrontab
apg.conf
apm
apparmor
apparmor.d
apport
apt
at.deny
at-spi2
avahi
bash.bashrc
bash_completion
bash_completion.d
bindresvport.blacklist
blkid.conf
blkid.tab
bluetooth
...
update-manager
update-motd.d
update-notifier
UPower
upstart-xsessions
vim
vtrgb
w3m
wgetrc
wodim.conf
wpa_supplicant
X11
xdg
xml
zsh_command_not_found
\end{verbatim}
\end{myscriptlisting}
\subsection{Actividad 7.}
\subsubsection{mkdir make directory}
\textbf{Cree en el directorio /home/curso la siguiente estructura de directorio}
\begin{verbatim}
./raiz
|___bin
|___home
| |___ApellidoNombre
| |___Desktop
| |___bin
|___var
..|__log
\end{verbatim}
\begin{verbatim}
curso@ubuntu:~$ pwd
/home/curso
curso@ubuntu:~$ mkdir ./raiz ./raiz/bin ./raiz/home ./raiz/home/BarrireroExequiel
./raiz/home/Desktop ./raiz/home/bin ./raiz/var ./raiz/var/log
curso@ubuntu:~$ ls -R
.:
raiz
./raiz:
bin home var
./raiz/bin:
./raiz/home:
BarrireroExequiel bin Desktop
./raiz/home/BarrireroExequiel:
./raiz/home/bin:
./raiz/home/Desktop:
./raiz/var:
log
./raiz/var/log:
\end{verbatim}
\textbf{¿Qué significa ./?}\\
Refiere a \textbf\emph{{''este directorio``}}, es decir al directorio actual en el que nos
encontramos posicionados en la terminal.
\subsection{Actividad 8.}
\subsubsection{Creación de archivos con ''touch``}
\textbf{Sobre el esquema de directorios creado en la Actividad 7, cree con
``touch`` un archivo en /home/curso/raiz/var/log/messages}
\begin{verbatim}
curso@ubuntu:~$ touch /home/curso/raiz/var/log/messages
curso@ubuntu:~$ ls -la /home/curso/raiz/var/log/
total 8
drwxrwxr-x 2 curso curso 4096 Sep 29 18:58 .
drwxrwxr-x 3 curso curso 4096 Sep 20 22:38 ..
-rw-rw-r-- 1 curso curso 0 Sep 29 18:57 messages
\end{verbatim}
\subsection{Actividad 9.}
\subsubsection{Cambio de permisos con ''chmod``}
\textbf{Liste con ``ls`` los permisos de acceso del archivo creado en la Actividad 8.
Luego con ``chmod`` cambie los permisos de acceso del archivo creado en la Actividad 8
a rwx solo para el grupo.}
\begin{verbatim}
curso@ubuntu:~$ ls -la /home/curso/raiz/var/log/
total 8
drwxrwxr-x 2 curso curso 4096 Sep 29 18:58 .
drwxrwxr-x 3 curso curso 4096 Sep 20 22:38 ..
-rw-rw-r-- 1 curso curso 0 Sep 29 18:57 messages
curso@ubuntu:~$ chmod g+rwx /home/curso/raiz/var/log/messages
curso@ubuntu:~$ ls -la /home/curso/raiz/var/log/
total 8
drwxrwxr-x 2 curso curso 4096 Sep 29 18:58 .
drwxrwxr-x 3 curso curso 4096 Sep 20 22:38 ..
-rw-rwxr-- 1 curso curso 0 Sep 29 18:57 messages
\end{verbatim}
\subsection{Actividad 10.}
\subsubsection{Eliminar recursivamente con ''rm`` command}
\textbf{Elimine recursivamente el directorio ``/home/curso/raiz/var``}
\begin{verbatim}
curso@ubuntu:~$ rm -r /home/curso/raiz/var/
curso@ubuntu:~$ ll /home/curso/raiz/
total 16
drwxrwxr-x 4 curso curso 4096 Sep 29 19:07 ./
drwxr-xr-x 17 curso curso 4096 Sep 29 19:02 ../
drwxrwxr-x 2 curso curso 4096 Sep 20 22:38 bin/
drwxrwxr-x 5 curso curso 4096 Sep 20 22:38 home/
\end{verbatim}
\subsection{Actividad 11.}
\subsubsection{Copia recursiva de directorio con ''cp`` command}
\textbf{Cree el directorio /home/curso/raiz/etc.
Luego copie TODO el contenido del directorio /etc/ dentro de /home/curso/raiz/etc}
\begin{myscriptlisting}
\begin{verbatim}
curso@ubuntu:~$ mkdir /home/curso/raiz/etc
curso@ubuntu:~$ cp /etc/* /home/curso/raiz/etc/
curso@ubuntu:~$ sudo cp -R /etc/* /home/curso/raiz/etc/
curso@ubuntu:~$ ls -l /home/curso/raiz/etc/
total 1016
drwxr-xr-x 3 root root 4096 Sep 29 19:21 acpi
-rw-r--r-- 1 curso curso 2981 Sep 29 19:21 adduser.conf
drwxr-xr-x 2 root root 4096 Sep 29 19:21 alternatives
-rw-r--r-- 1 curso curso 401 Sep 29 19:21 anacrontab
-rw-r--r-- 1 curso curso 112 Sep 29 19:21 apg.conf
drwxr-xr-x 6 root root 4096 Sep 29 19:21 apm
drwxr-xr-x 3 root root 4096 Sep 29 19:21 apparmor
drwxr-xr-x 8 root root 4096 Sep 29 19:21 apparmor.d
drwxr-xr-x 4 root root 4096 Sep 29 19:21 apport
drwxr-xr-x 6 root root 4096 Sep 29 19:21 apt
-rw-r----- 1 root root 144 Sep 29 19:21 at.deny
drwxr-xr-x 2 root root 4096 Sep 29 19:21 at-spi2
drwxr-xr-x 3 root root 4096 Sep 29 19:21 avahi
-rw-r--r-- 1 curso curso 2177 Sep 29 19:21 bash.bashrc