<commit_before><!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
	<meta name="viewport" content="width=1024, user-scalable=no">

	<title>LPIC Slides</title>
	
	<!-- Required stylesheet -->
	<link rel="stylesheet" href="core/deck.core.css">
	<link rel="stylesheet" href="extensions/status/deck.status.css">
	<link rel="stylesheet" href="extensions/scale/deck.scale.css">
	<link rel="stylesheet" href="extensions/hash/deck.hash.css">

	<link rel="stylesheet" href="themes/style/lpic_slides.css">
	<link rel="stylesheet" href="themes/transition/horizontal-slide.css">
	
	<!-- Required Modernizr file -->
	<script src="modernizr.custom.js"></script>
</head>
<body>

	<header>
		<span><a href="http://josecriane.com/lpic/">Inicio</a></span>
	</header>

<!-- Begin slides. Just make elements with a class of slide. -->
	<article class="deck-container">
		<section class="slide">
			<h1>Gestión de usuarios [y grupos.]</h1>
		</section>

		<section class="slide">
			<h2>Añadir usuarios</h2>
			<pre>useradd [OPCIONES] nombre-usuario</pre>
			<ul>
				<li class="slide">
					Usar <code>usedadd</code> es la forma más común de añadir usuarios al sistema, entre las opciones que podemos usar para cambiar parametros del sistema, tenemos:
				</li>
				<li class="slide">
					<ul>
						<li class="slide"><strong>-d directorio</strong>: Usaremos esta opción para establecer o cambiar el home por defecto del usuario.</li>
						<li class="slide"><strong>-e fecha-expiracion</strong>: Es la fecha en la que la cuenta expira. El formato es YYYY-MM-DD, si no podemos este parametro las cuentas no expiran.</li>
						<li class="slide"><strong>-f días-inactivo</strong>: Si el usuario pasa esos días sin conectarse la cuenta expirará automaticamente. Por defecto el valor es -1 que implica que no puede expirar por no loguearse.</li>
						<li class="slide"><strong>-g grupo</strong>: Establece el grupo por defecto.</li>
						<li class="slide"><strong>-G grupo [, ....]</strong>: Asigana al usuario otros grupos.</li>
						<li class="slide"><strong>-p contraseña</strong>: Envia la contraseña directamente al fichero /etc/shadow sin modificarse.</li>
						<li class="slide"><strong>-s shell</strong>: Establece la shell por defecto, que puede ser cualquier ejecutable.</li>
						<li class="slide"><strong>-u UID</strong>: Crea al usuario con ese UID</li>
						<li class="slide"><strong>-n</strong>: No creamos el grupo del usuario.</li>
					</ul>
				</li> 
			</ul>
			<p class="deck-status">
				<span class="deck-status-current"></span>/<span class="deck-status-total"></span>
			</p>
		</section>

		<section class="slide">
			<h2>Password del usuario.</h2>
			<pre>passwd [OPCIONES] [Usuario]</pre>
			<ul>
				<li class="slide">
					Se recomienda, en cualquier sistema, que cada cierto tiempo se cambie la contraseña del usuario, para hacer esto nosotros contamos con el comando <code>passwd</code>. Las opciones de este comando son:
					<ul>
						<li class="slide"><strong>-k</strong>: Actualiza cuentas expiradas.</li>
						<li class="slide"><strong>-l</strong>: Bloquea una cuenta de usuario.</li>
						<li class="slide"><strong>-u</strong>: Desbloquea una cuenta de usuario</li>
						<li class="slide"><strong>-d</strong>: Borra la contraseña de la cuenta.</li>
					</ul>
				</li>
				<li class="slide">Si un usuario quiere cambiar su contraseña, passwd le preguntará su contraseña actual. Sin embargo, el usuario root, puede cambiar la contraseña de otro usuario sin saber la contraseña actual.</li>
			</ul>
			<p class="deck-status">
				<span class="deck-status-current"></span>/<span class="deck-status-total"></span>
			</p>
		</section>

		<section class="slide">
			<h2>Modificar un usuario.</h2>
			<pre>usermod [OPCIONES] usuario</pre>
			<ul>
				<li>
					Este comando funciona de forma similar a como lo hace <code>useradd</code>, con la diferencia de que en lugar de crear un usuario lo modifica, además tiene un par de opciones que ayudan a la modificacion del usuario.
					<ul>
						<li class="slide"><strong>-m</strong>: Usada con el <code>-d</code>, además de asignar un nuevo directorio home, esta opción movera los ficheros que haya en el directorio home anterior al nuevo directorio.</li>
						<li class="slide"><strong>-l nuevo-nombre</strong>: Cambia el nombre del usuario de.</li>
						<li class="slide"><strong>-L / -U</strong>: Exactamente igual que las opciones -L y -U de <code>passwd</code></li>
					</ul>
				</li> 
				<li class="slide">Hay que tener en cuenta que si cambiamos el UID del usuario, es posible que sea necesario ejecuar un <code>chown</code> para devolver la pertenencia del fichero al usuario.</li>
			</ul>
			<pre class="slide">chage usuario</pre>
			<ul>
				<li>
					Este comando se utiliza para tener más control sobre la expiración de usuarios, nos centraremos solo en la expiración por contraseña, ya que las otras opciones podemos cubrirlas con <code>usermod</code>, o <code>useradd</code>.
					<ul>
						<li class="slide"><strong>-l</strong>: Muestra la información de la expiración de la cuenta.</li>
						<li class="slide"><strong>-m días</strong>: Indica cada cuanto el usuario puede cambiar la contraseña.</li>
						<li class="slide"><strong>-M días</strong>: Es el numero maximo de dias que pueden pasar sin que el usuario cambie la contraseña.</li>
						<li class="slide"><strong>-W días</strong>: Define el numero de días en los que se avisará al usuario de que la cuenta esta a punto de expirar</li>
					</ul>
				</li> 
				<li class="slide">Hay que tener en cuenta que si cambiamos el UID del usuario, es posible que sea necesario ejecuar un <code>chown</code> para devolver la pertenencia del fichero al usuario.</li>
			</ul>
			<p class="slide">Una vez cambiado el SO, debemos ejecutar <code>lilo</code>, para que lilo se reinstale en el MBR</p>
			<p class="deck-status">
				<span class="deck-status-current"></span>/<span class="deck-status-total"></span>
			</p>
		</section>

		<section class="slide">
			<h2>Eliminar usuarios.</h2>
			<pre>userdel [OPCIONES] usuario.</pre>
			<ul>
				<li>
					Usamos este comando para eliminar usuarios del sistema.
					<ul>
						<li class="slide"><strong>-r, --remove</strong>: Elimina tanto la cola de correos del usuario, como el directorio home.</li>
						<li class="slide"><strong>-f, --force</strong>: Borra al usuario aunque esté activo en el sistema, y el directorio home aunque haya otro usuario que use el mismo.</li>
						<li class="slide"><strong>-h, --help</strong>: Obtiene la ayuda del comando.</li>
					</ul>
				</li>
			</ul>
			<p class="deck-status">
				<span class="deck-status-current"></span>/<span class="deck-status-total"></span>
			</p>
		</section>

		


	</article>
<!-- End slides. -->

<!-- Required JS files. -->
<script src="jquery-1.7.2.min.js"></script>
<script src="core/deck.core.js"></script>
<script src="extensions/hash/deck.hash.js"></script>
<script src="extensions/status/deck.status.js"></script>
<script src="extensions/scale/deck.scale.js"></script>

<!-- Initialize the deck. You can put this in an external file if desired. -->
<script>
	$(function() {
		$.deck('.slide');
	});
</script>
</body>
</html><commit_msg>Adds groups and qouta to 7 lesson<commit_after><!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
	<meta name="viewport" content="width=1024, user-scalable=no">

	<title>LPIC Slides</title>
	
	<!-- Required stylesheet -->
	<link rel="stylesheet" href="core/deck.core.css">
	<link rel="stylesheet" href="extensions/status/deck.status.css">
	<link rel="stylesheet" href="extensions/scale/deck.scale.css">
	<link rel="stylesheet" href="extensions/hash/deck.hash.css">

	<link rel="stylesheet" href="themes/style/lpic_slides.css">
	<link rel="stylesheet" href="themes/transition/horizontal-slide.css">
	
	<!-- Required Modernizr file -->
	<script src="modernizr.custom.js"></script>
</head>
<body>

	<header>
		<span><a href="http://josecriane.com/lpic/">Inicio</a></span>
	</header>

<!-- Begin slides. Just make elements with a class of slide. -->
	<article class="deck-container">
		<section class="slide">
			<h1>Gestión de usuarios y grupos.</h1>
		</section>

		<section class="slide">
			<h2>Añadir usuarios</h2>
			<pre>useradd [OPCIONES] nombre-usuario</pre>
			<ul>
				<li class="slide">
					Usar <code>usedadd</code> es la forma más común de añadir usuarios al sistema, entre las opciones que podemos usar para cambiar parametros del sistema, tenemos:
					<ul>
						<li class="slide"><strong>-d directorio</strong>: Usaremos esta opción para establecer o cambiar el home por defecto del usuario.</li>
						<li class="slide"><strong>-e fecha-expiracion</strong>: Es la fecha en la que la cuenta expira. El formato es YYYY-MM-DD, si no podemos este parametro las cuentas no expiran.</li>
						<li class="slide"><strong>-f días-inactivo</strong>: Si el usuario pasa esos días sin conectarse la cuenta expirará automaticamente. Por defecto el valor es -1 que implica que no puede expirar por no loguearse.</li>
						<li class="slide"><strong>-g grupo</strong>: Establece el grupo por defecto.</li>
						<li class="slide"><strong>-G grupo [, ....]</strong>: Asigana al usuario otros grupos.</li>
						<li class="slide"><strong>-p contraseña</strong>: Envia la contraseña directamente al fichero /etc/shadow sin modificarse.</li>
						<li class="slide"><strong>-s shell</strong>: Establece la shell por defecto, que puede ser cualquier ejecutable.</li>
						<li class="slide"><strong>-u UID</strong>: Crea al usuario con ese UID</li>
						<li class="slide"><strong>-n</strong>: No creamos el grupo del usuario.</li>
					</ul>
				</li> 
			</ul>
			<p class="deck-status">
				<span class="deck-status-current"></span>/<span class="deck-status-total"></span>
			</p>
		</section>

		<section class="slide">
			<h2>Password del usuario.</h2>
			<pre>passwd [OPCIONES] [Usuario]</pre>
			<ul>
				<li class="slide">
					Se recomienda, en cualquier sistema, que cada cierto tiempo se cambie la contraseña del usuario, para hacer esto nosotros contamos con el comando <code>passwd</code>. Las opciones de este comando son:
					<ul>
						<li class="slide"><strong>-k</strong>: Actualiza cuentas expiradas.</li>
						<li class="slide"><strong>-l</strong>: Bloquea una cuenta de usuario.</li>
						<li class="slide"><strong>-u</strong>: Desbloquea una cuenta de usuario</li>
						<li class="slide"><strong>-d</strong>: Borra la contraseña de la cuenta.</li>
					</ul>
				</li>
				<li class="slide">Si un usuario quiere cambiar su contraseña, passwd le preguntará su contraseña actual. Sin embargo, el usuario root, puede cambiar la contraseña de otro usuario sin saber la contraseña actual.</li>
			</ul>
			<p class="deck-status">
				<span class="deck-status-current"></span>/<span class="deck-status-total"></span>
			</p>
		</section>

		<section class="slide">
			<h2>Modificar un usuario.</h2>
			<pre>usermod [OPCIONES] usuario</pre>
			<ul>
				<li>
					Este comando funciona de forma similar a como lo hace <code>useradd</code>, con la diferencia de que en lugar de crear un usuario lo modifica, además tiene un par de opciones que ayudan a la modificacion del usuario.
					<ul>
						<li class="slide"><strong>-m</strong>: Usada con el <code>-d</code>, además de asignar un nuevo directorio home, esta opción movera los ficheros que haya en el directorio home anterior al nuevo directorio.</li>
						<li class="slide"><strong>-l nuevo-nombre</strong>: Cambia el nombre del usuario de.</li>
						<li class="slide"><strong>-L / -U</strong>: Exactamente igual que las opciones -L y -U de <code>passwd</code></li>
					</ul>
				</li> 
				<li class="slide">Hay que tener en cuenta que si cambiamos el UID del usuario, es posible que sea necesario ejecuar un <code>chown</code> para devolver la pertenencia del fichero al usuario.</li>
			</ul>
		</section>
		<section class="slide">
			<h2>Modificar un usuario.</h2>
			<pre>chage usuario</pre>
			<ul>
				<li>
					Este comando se utiliza para tener más control sobre la expiración de usuarios, nos centraremos solo en la expiración por contraseña, ya que las otras opciones podemos cubrirlas con <code>usermod</code>, o <code>useradd</code>.
					<ul>
						<li class="slide"><strong>-l</strong>: Muestra la información de la expiración de la cuenta.</li>
						<li class="slide"><strong>-m días</strong>: Indica cada cuanto el usuario puede cambiar la contraseña.</li>
						<li class="slide"><strong>-M días</strong>: Es el numero maximo de dias que pueden pasar sin que el usuario cambie la contraseña.</li>
						<li class="slide"><strong>-W días</strong>: Define el numero de días en los que se avisará al usuario de que la cuenta esta a punto de expirar</li>
					</ul>
				</li> 
				<li class="slide">Hay que tener en cuenta que si cambiamos el UID del usuario, es posible que sea necesario ejecuar un <code>chown</code> para devolver la pertenencia del fichero al usuario.</li>
			</ul>
			<p class="slide">Una vez cambiado el SO, debemos ejecutar <code>lilo</code>, para que lilo se reinstale en el MBR</p>
			<p class="deck-status">
				<span class="deck-status-current"></span>/<span class="deck-status-total"></span>
			</p>
		</section>

		<section class="slide">
			<h2>Eliminar usuarios.</h2>
			<pre>userdel [OPCIONES] usuario.</pre>
			<ul>
				<li>
					Usamos este comando para eliminar usuarios del sistema.
					<ul>
						<li class="slide"><strong>-r, --remove</strong>: Elimina tanto la cola de correos del usuario, como el directorio home.</li>
						<li class="slide"><strong>-f, --force</strong>: Borra al usuario aunque esté activo en el sistema, y el directorio home aunque haya otro usuario que use el mismo.</li>
						<li class="slide"><strong>-h, --help</strong>: Obtiene la ayuda del comando.</li>
					</ul>
				</li>
			</ul>
			<p class="deck-status">
				<span class="deck-status-current"></span>/<span class="deck-status-total"></span>
			</p>
		</section>

		<section class="slide">
			<h2>Añadir grupos</h2>
			<pre>groupadd [OPCIONES] grupo.</pre>
			<ul>
				<li class="slide">
					Si necesitamos crear nuevos grupos usaremos el comando groupadd.
					<ul>
						<li class="slide"><strong>-g GID</strong>: Establecemos el GID que queremos darle a este grupo.</li>
						<li class="slide"><strong>-r</strong>: Por si se necesitase crear grupos con el GID por debajo de 500.</li>
						<li class="slide"><strong>-f</strong>: Si no se pudiese crear un grupo <code>groupadd</code>, nos dará un error con este parametro hacemos que aunque falle no nos lo muestre.</li>
						<li class="slide"><strong>-o</strong>: En caso de que queramos que un grupo tengo un GID repetido.</li>
					</ul>
				</li>
			</ul>
		</section>

		<section class="slide">
			<h2>Modificacion de grupos</h2>
			<pre>groupmod [OPCIONES] grupo</pre>
			<ul>
				<li class="slide">
					Con este comando modificamos los parametros de un grupo que ya exista
					<ul>
						<li class="slide"><strong>-g GID</strong>: Establecemos el GID que queremos darle a este grupo.</li>
						<li class="slide"><strong>-n nuevoNombre</strong>: Le damos un nuevo nombre al grupo.</li>
					</ul>
				</li>
				<li class="slide">Si queremos añadir un usuario a un grupo, no lo hacemos con <code>groupmod</code>, si no que usamos un comando que ya vimos, <code>usermod</code>, con el parametro <code>-G grupo[, ...] usuario</code>. Esto hará que un usuario pertenezca SOLO a los grupos que le pasemos.</li>
			</ul>
		</section>

		<section class="slide">
			<h2>Password de grupos</h2>
			<pre>gpasswd [OPCIONES] grupo</pre>
			<ul>
				<li class="slide">
					Es analogo al passwd de los usuarios.
					<ul>
						<li class="slide"><strong>-a user</strong>: Añade a un usuario al grupo</li>
						<li class="slide"><strong>-d user</strong>: Quita a un usuario del grupo</li>
						<li class="slide"><strong>-R</strong>: No permite usar el comando <code>newgrp</code>.</li>
						<li class="slide"><strong>-r</strong>: Quita la contraseña del grupo.</li>
						<li class="slide"><strong>-A usuario[, ...]</strong>: Añade administradores al grupo, estos pueden añadir y borrar miembros, y cambiar la contraseña del grupo. Solo el usuario root puede usar este parametro.</li>
						<li class="slide"><strong>-M usuario[, ...]</strong>: Añade administradores al grupo y también los añade como miembros. Solo el usuario root puede usar este parametro.</li>
					</ul>
				</li>
			</ul>
		</section>

		<section class="slide">
			<h2>Añadir usuarios a grupos</h2>
			<ul>
				<li class="slide">
					Ya vimos dos maneras de añadir usuarios a los grupos:
					<ul>
						<li class="slide"><strong>gpasswd -a grupo</strong></li>
						<li class="slide"><strong>usermod -G grupos</strong></li>
					</ul>
				</li>
				<li class="slide">
					Pero también podemos añadir los usuarios a los grupos editando los ficheros /etc/group, añadiendo el usuario a la lista existente para ese grupo.
				</li>
				<li class="slide">
					Existe una manera temporal de añadir un usuario a un grupo, para ello usaremos el usuario que quiere pertenecer a un determinado grupo usará el comando <code>newgpr</code>. Este comando añadirá a un usuario al grupo en caso de que este usuario conozca la contraseña del grupo. Y si ya pertenece al grupo, lo que hará será cambiar el grupo primario, todos estos cambios no son permanentes.
				</li>
			</ul>
		</section>

		<section class="slide">
			<h2>Eliminar grupos</h2>
			<pre>groupdel	grupo</pre>
			<ul>
				<li class="slide">Para eliminar un grupo podemos optar por eliminarlo de los ficheros /etc/group y /etc/gshadow.</li>
				<li class="slide">Solemos utilizar el comando <code>groupdel</code>.</li>
				<li class="slide">Este comando comprobará si ese grupo es un grupo primario para algún usuario, en tal caso, no se borrará. Para borrarlo deberemos de cambiar el grupo primario de todos aquellos usuarios que lo tengan como grupo primario.</li>
				<li class="slide">Al igual que pasaba cuando eliminabamos a un usuario los ficheros no se eliminan y la propiedad de estos pasa a estar vinculada al GID del grupo al que pertenecian. Podemos ayudarnos de la herramienta <code>find</code>, para localizar estos ficheros, por ejemplo <code>find / -g GID</code></li>
			</ul>
		</section>

		<section class="slide">
			<h2>Quotas de disco</h2>
			<ul>
				<li class="slide">
					Es habitual limitar el espacio de disco duro que pueden usar nuestros usuarios. Si no hicieramos esto, algún usuario podría utilizar la mayoría del espacio, provocando que otros usuarios no puedan trabajar con el sistema de forma correcta. Para este fin, en Linux, contamos con las quotas de disco.</li>
				<li class="slide">Lo primero que tenemos que hacer es activar la quota de disco, para ello debemos descargarnos el paquete <code>quota</code>, que se encargará de hacer los pasos necesario para activar la cuota en nuestro sistema.</li>
				<li class="slide">Ahora que tenemos la quota activa en el sistema, tendremos que configurar el montaje de las particiones para que nos permitan gestionar una cuota de disco. Editando el fichero fstab
					<ul>
						<li class="slide">usrquota, con esto activaremos la quota para usuarios</li>
						<li class="slide">grpquota, con esto la quota para grupos</li>
					</ul>	
				</li>
				<li class="slide">Debemos remontar las particiones para que se monten con las quotas activas.</li>
				<li class="slide">Ya solo nos queda editar las quotas para los usuarios con <code>edquota usuario</code>, donde debemos distiguir dos parametros, el limite flexible, o soft, que nos permitira pasarnos de forma temporal durante un tiempo determinado, y el limite estricto, o hard que no nos permitirá pasar de dicho limite nunca.</li>
				<li class="slide">Con edquota y la opción -t definiremos el tiempo durante el cual podremos pasarnos del limite soft.</li>
			</ul>
		</section>

	</article>
<!-- End slides. -->

<!-- Required JS files. -->
<script src="jquery-1.7.2.min.js"></script>
<script src="core/deck.core.js"></script>
<script src="extensions/hash/deck.hash.js"></script>
<script src="extensions/status/deck.status.js"></script>
<script src="extensions/scale/deck.scale.js"></script>

<!-- Initialize the deck. You can put this in an external file if desired. -->
<script>
	$(function() {
		$.deck('.slide');
	});
</script>
</body>
</html>

<!--

		<section class="slide">
			<h2></h2>
			<pre></pre>
			<ul>
				<li class="slide">
					<ul>
						<li class="slide"><strong></strong>:</li>
						<li class="slide"><strong></strong>:</li>
						<li class="slide"><strong></strong>:</li>
						<li class="slide"><strong></strong>:</li>
					</ul>
				</li>
			</ul>
		</section>

-->
{'fraction_non_alphanumeric': 0.1451033028138632, 'fraction_numerical': 0.0028761804323857916, 'mean_word_length': 3.707129963898917, 'pattern_counts': {'":': 0, '<': 708, '<?xml version=': 0, '>': 708, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6909631', 'n_tokens_mistral': 7980, 'n_tokens_neox': 7054, 'n_words': 2291}