<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>sudoers &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://wordpress.com/tag/sudoers/</link>
	<description>Feed of posts on WordPress.com tagged "sudoers"</description>
	<pubDate>Fri, 29 Aug 2008 20:13:15 +0000</pubDate>

	<generator>http://wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Que la consola no nos pida la contraseña al usar sudo]]></title>
<link>http://orcatips.wordpress.com/?p=6</link>
<pubDate>Thu, 31 Jul 2008 00:23:28 +0000</pubDate>
<dc:creator>cablop</dc:creator>
<guid>http://orcatips.wordpress.com/?p=6</guid>
<description><![CDATA[Consola o terminal, que es la misma cosa&#8230; que no es lo que se discute en este momento.
Algunos]]></description>
<content:encoded><![CDATA[<p>Consola o terminal, que es la misma cosa... que no es lo que se discute en este momento.</p>
<p>Algunos usuarios, como yo, no queremos que el sistema nos pregunte la contraseña a cada paso que damos cuando usamos sudo (ni Vista que fuera) y simplemente queremos ver como al ejecutar <em>sudo &#60;nuestrocomando&#62;</em> simplemente las cosas se hagan. (Que la práctica no es recomendada, bueno, quizá para un servidor, pero en nuestro equipo de la casa...)</p>
<p><span style="text-decoration:underline;">Esta es una de las soluciones:</span></p>
<p>Primero abrimos la consola.</p>
<p>Luego ejecutamos el comando</p>
<ul>
<li>sudo visudo</li>
</ul>
<p>(Esperamos que esta sea la última vez que escribamos la contraseña en la consola.)</p>
<p>Nos aparecerá un editor (en las versiones anteriores tuvieron el cuidado de que fuera nano, en hardy no sé porque es el condenado vi). [1]</p>
<p>Y descomentamos la línea que dice:</p>
<ul>
<li># %sudo ALL=NOPASSWD: ALL</li>
</ul>
<p>Para ello quitamos el # al inicio de esa línea. [2]</p>
<p>Luego guardamos el archivo.</p>
<p>Solo nos falta una cosa... añadimos nuestro usuario al grupo sudo y con eso ya está.</p>
<p>[1] En otro post les enseñaremos como cambiar el editor por defecto.</p>
<p>[2] Parece que a veces sudo le hace caso a las primeras directivas que lee y a veces a las últimas... y a veces nos quita los permisos de algunas reglas al establecer nuevas o simplemente omite los permisos de las nuevas directivas... Simple, si ese es el caso movemos la línea al final del archivo. O, en el caso paranóico, la dejamos donde está, lo que la convierte en la primera regla, y luego la copiamos también en el final del archivo, lo que la hace la primera y la última reglas.</p>
<p><span style="text-decoration:underline;">En resumen</span></p>
<p><!--more--></p>
<p>1. En la consola ejecutamos sudo visudo<br />
2. En el editor descomentamos la línea # %sudo ALL=NOPASSWD: ALL y guardamos (en algunos casos, es necesario copiarla o moverla al final del archivo)<br />
3. Añadimos nuestro usuario al grupo sudo</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Avviare visudo con gedit]]></title>
<link>http://ubuntrucchi.wordpress.com/?p=482</link>
<pubDate>Sat, 10 May 2008 23:35:13 +0000</pubDate>
<dc:creator>Muflone</dc:creator>
<guid>http://ubuntrucchi.wordpress.com/?p=482</guid>
<description><![CDATA[Talvolta può essere utile modificare il file sudoers usando visudo come visto in precedenza ma dove]]></description>
<content:encoded><![CDATA[<p style="text-align:justify;">Talvolta può essere utile modificare il file sudoers usando <strong>visudo</strong> <a title="Eseguire un programma come root senza la richiesta di password" href="http://ubuntrucchi.wordpress.com/2008/03/25/eseguire-un-programma-come-root-senza-la-richiesta-di-password/">come visto in precedenza</a> ma dover utilizzare l'editor <em>nano</em> o <em>vi</em> non rende giustizia. Vedremo un brevissimo trucco per forzare visudo ad utilizzare <strong>gedit</strong>, l'editor di testo predefinito su Ubuntu.<!--more--></p>
<p style="text-align:justify;">All'interno di un terminale oppure nella finestra <em>Esegui applicazione</em> (ALT+F2) basterà scrivere:</p>
<pre>sudo bash -c "export EDITOR=gedit &#38;&#38; visudo"</pre>
<p style="text-align:center;"><img class="alignnone size-full wp-image-484" src="http://ubuntrucchi.wordpress.com/files/2008/05/011.png" alt="" width="383" height="190" /></p>
<p style="text-align:justify;">Nel caso si usi la finestra Esegui applicazione è necessario spuntare la casella <strong>Esegui nel terminale</strong>. Verrà richiesta la password del proprio utente e quindi sarà avviata la modifica del file sudoers mediante gedit.</p>
<p style="text-align:center;"><img class="alignnone size-full wp-image-485" src="http://ubuntrucchi.wordpress.com/files/2008/05/021.png" alt="" width="400" height="387" /></p>
<p style="text-align:justify;">Al termine basterà salvare le modifiche e chiudere gedit normalmente.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Gnome: guida definitiva al terminale]]></title>
<link>http://vicsteele.wordpress.com/?p=72</link>
<pubDate>Thu, 17 Apr 2008 22:53:24 +0000</pubDate>
<dc:creator>Vic Steele</dc:creator>
<guid>http://vicsteele.wordpress.com/?p=72</guid>
<description><![CDATA[
Ho pubblicato stamani la guida che spero sia definitiva, riguardo agli usi basilari del terminale. ]]></description>
<content:encoded><![CDATA[<p style="text-align:center;"><img src="http://vicsteele.wordpress.com/files/2008/04/terminale-vlc.png" alt="Esempio di comando da terminale" /></p>
<p style="text-align:justify;">Ho pubblicato stamani la guida che spero sia definitiva, riguardo agli usi basilari del terminale. Ho scelto di pubblicarla come pagina, affinchè rimanga sempre visibile ovunque all'interno del blog.<br />
La guida la raggiungete a <a href="http://vicsteele.wordpress.com/comandi/">questo link</a> .<br />
Probabilmente ho aggiunto tutto quello che c'era da aggiungere, nel caso in cui mi venisse altro in mente provvederò.<br />
Mi auguro che con quella pagina riuscirò a farmi perdonare per la lunga assenza nel blog.</p>
<p style="text-align:justify;">State facendo il conto alla rovescia? Mancano 5 giorni al rilascio stabile di Ubuntu Hardy Heron 8.04 :D .</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[One command system update (Without password)]]></title>
<link>http://fnmueller.wordpress.com/?p=34</link>
<pubDate>Sun, 02 Mar 2008 16:04:50 +0000</pubDate>
<dc:creator>fnmueller</dc:creator>
<guid>http://fnmueller.wordpress.com/?p=34</guid>
<description><![CDATA[I have been asked quite often how I update my system and how I can do it so easily.
Basically, I u]]></description>
<content:encoded><![CDATA[<p>I have been asked quite often how I update my system and how I can do it so easily.<br />
Basically, I use sudo and an alias in my ~/.bashrc to achieve a system update by just issuing just one command.</p>
<p>For zypper:</p>
<p>Edit your ~/.bashrc to include this line:<br />
alias pcupdate='sudo /usr/bin/zypper -n up --type=package'</p>
<p>Edit your /etc/sudoers files this way:</p>
<ol>
<li> Open a konsole (alt+f2 --&#62; konsole (in KDE))</li>
<li>su</li>
<li>visudo</li>
<li>Include the line:<br />
your_username ALL = (%root) NOPASSWD: /usr/bin/zypper -n up --type=package</li>
<li>Your /etc/sudoers should look similar to the example provided below.</li>
<li>done</li>
</ol>
<p>For smart:</p>
<p>Edit your ~/.bashrc to include this line:<br />
alias pcupdate='sudo smart upgrade --update -y'</p>
<p>Edit your /etc/sudoers files this way:</p>
<ol>
<li>Open a konsole (alt+f2 --&#62; konsole (in KDE))</li>
<li>su</li>
<li>visudo</li>
<li>Include the line:<br />
your_username        ALL = (%root) NOPASSWD: /usr/bin/smart upgrade --update -y</li>
<li>Your /etc/sudoers should look similar to the example provided below.</li>
<li>done</li>
</ol>
<p>From now on, you should be able to update the entire system to the newest available packages (not just the security updates) without using a password and with just one command. Note that you can also edit the /etc/sudoers file using yast.</p>
<p>This is what /etc/sudoers should look like:<!--more--></p>
<p># sudoers file.</p>
<p>#</p>
<p># This file MUST be edited with the 'visudo' command as root.</p>
<p>#</p>
<p># See the sudoers man page for the details on how to write a sudoers file.</p>
<p>#</p>
<p># Host alias specification</p>
<p># User alias specification</p>
<p># Cmnd alias specification</p>
<p># Defaults specification</p>
<p># Prevent environment variables from influencing programs in an</p>
<p># unexpected or harmful way (CVE-2005-2959, CVE-2005-4158, CVE-2006-0151)</p>
<p>Defaults	always_set_home</p>
<p>Defaults	env_reset</p>
<p>Defaults	env_keep = "LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS XDG_SESSION_COOKIE"</p>
<p># Comment out the preceding line and uncomment the following one if you need</p>
<p># to use special input methods. This may allow users to compromise  the root</p>
<p># account if they are allowed to run commands without authentication.</p>
<p>#Defaults env_keep = "LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS XDG_SESSION_COOKIE XMODIFIERS GTK_IM_MODULE QT_IM_MODULE QT_IM_SWITCHER"</p>
<p># In the default (unconfigured) configuration, sudo asks for the root password.</p>
<p># This allows use of an ordinary user account for administration of a freshly</p>
<p># installed system. When configuring sudo, delete the two</p>
<p># following lines:</p>
<p><strong>Defaults	targetpw</strong></p>
<p><strong>ALL	ALL = (ALL) ALL</strong></p>
<p><strong>fnmueller	ALL = (%root) NOPASSWD: /usr/bin/zypper -n up --type=package,/usr/bin/smart upgrade --update -y</strong></p>
<p># Runas alias specification</p>
<p># User privilege specification</p>
<p>root	ALL = (ALL) ALL</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Berbagi Wewenang dengan SUDO]]></title>
<link>http://gunawanjuanda.wordpress.com/2008/02/21/berbagi-wewenang-dengan-sudo-2/</link>
<pubDate>Thu, 21 Feb 2008 16:33:45 +0000</pubDate>
<dc:creator>gunawanjuanda</dc:creator>
<guid>http://gunawanjuanda.wordpress.com/2008/02/21/berbagi-wewenang-dengan-sudo-2/</guid>
<description><![CDATA[Kawan saya, seorang dosen, mengajar matakuliah pemrograman basis data. Adapun basis data yang diguna]]></description>
<content:encoded><![CDATA[<p align="justify">Kawan saya, seorang dosen, mengajar matakuliah pemrograman basis data. Adapun basis data yang digunakan adalah MySQL. Saat ini, MySQL ter-<i>install</i> pada <i>server</i> yang merupakan wewenang saya. Sebagai gambaran, <i>server </i>ini tidak didedikasikan khusus untuk MySQL saja, tetapi juga file server praktikum dan lain sebagainya.</p>
<div align="justify"></div>
<p align="justify">Sebagai dosen matakuliah ini, saya rasa sudah sepantasnya ia memiliki akses untuk paling tidak menyalakan dan mematikan <i>server</i>. Kebutuhkan ini terutama dirasakan saat mengadakan <i>quiz</i> atau ujian praktek. Untungnya, Ubuntu memiliki <b>sudo</b>, tools yang dapat digunakan untuk berbagi dan membatasi wewenang.</p>
<div align="justify"></div>
<p align="justify">Bagi para pengguna Ubuntu, khususnya mereka yang sering bekerja dengan terminal tentunya mengenal <b>sudo</b>. Perintah ini seringkali digunakan untuk mengeksekusi perintah lain yang membutuhkan otentifikasi sebagai administrator atau user lain.</p>
<div align="justify"></div>
<p align="justify">Wewenang untuk melakukan <b>sudo</b> terletak pada file /etc/sudoers. Tentunya untuk mengedit file ini sebelumnya kita juga harus memiliki wewenang melakukan <b>sudo</b> sebagai administrator.  Selanjutnya saya akan membahas sedikit mengenai <b>/etc/sudoers</b> yang saya edit untuk membagi wewenang pada kawan saya.</p>
<div align="justify"></div>
<p align="justify">Pertama-tama saya perlu menambahkan <i>user</i> agar kawan saya dapat melakukan login ke <i>server</i>.<i>Username </i>dan <i>groupname</i> yang saya berikan adalah <b>badat</b>.</p>
<div align="justify"></div>
<p align="justify">Selanjutnya, sayang membuka file <b>/etc/sudoers </b>dengan perintah</p>
<div align="justify">
<blockquote><p>sudo nano /etc/sudoers</p></blockquote>
</div>
<p align="justify">Berikut adalah isi dari file tersebut :</p>
<div align="justify">
<blockquote><p># /etc/sudoers<br />
#<br />
# This file MUST be edited with the 'visudo' command as root.<br />
#<br />
# See the man page for details on how to write a sudoers file.<br />
# Host alias specification</p>
<p># User alias specification<br />
<font color="#ff0000"> User_Alias DOSEN = badat</font><br />
# Host alias specification<br />
<font color="#ff0000"> Host_Alias INTERNAL = 10.10.10.0/255.255.255.0</font><br />
# Cmnd alias specification<br />
<font color="#ff0000"> Cmnd_Alias MYSQL = /etc/init.d/mysql, /usr/bin/mysql*<br />
Cmnd_Alias SAMBA = /etc/init.d/samba, /usr/sbin/smbd, /usr/sbin/nmbd</font><br />
# Defaults</p>
<p>Defaults        !lecture,tty_tickets,!fqdn</p>
<p># User privilege specification<br />
root    ALL=(ALL) ALL<br />
<font color="#ff0000"> badat INTERNAL=NOPASSWD: MYSQL,SAMBA</font></p>
<p># Members of the admin group may gain root privileges<br />
%admin ALL=(ALL) ALL</p></blockquote>
</div>
<p align="justify">Perhatikan, tulisan yang berwarna merah adalah bagian yang saya tambahkan pada file tersebut, sedangkan yang berwarna hitam adalah <i>default</i>.</p>
<p align="justify">Bagian <i><b>User alias spesification</b></i> digunakan untuk membuat <i>alias</i> untuk satu atau beberapa user. Contoh saya menunjukkan bahwa <i>user </i><b>badat</b> memiliki <i>alias</i>, yaitu <b>DOSEN</b>. Artinya, selanjutnya pada file ini, kata <b>DOSEN</b> akan mengacu pada <i>user</i> <b>badat</b>. Satu nama <i>alias</i> dapat menampung beberapa <i>user</i>, sehingga nama <i>alias </i>ini seolah-olah berperan sebagai nama <b>group</b>.</p>
<blockquote><p> User_Alias DOSEN = badat</p></blockquote>
<p>Berikutnya adalah bagian <b>host alias spesification</b>. Pada bagian ini, kita dapat menspesifikasikan dari host/komputer mana seseorang yang memiliki <i>remote akses </i>dapat melakukan<i> </i><b>sudo</b>. Saya memberikan kawan saya akses untuk melakukan <b>sudo</b> dari semua komputer yang terdapat dalam <i>internal network</i>, yaitu komputer dengan IP 10.10.10.* dan netmask 255.255.255.0. Jaringan internal ini saya beri nama <i>alias</i> <b>INTERNAL</b>.</p>
<blockquote><p> Host_Alias INTERNAL = 10.10.10.0/255.255.255.0</p></blockquote>
<p><b>Cmnd alias spesification</b> adalah bagian dimana kita mendefinisikan file-file mana saja yang dapat dieksekusi saat seorang user menggunakan <b>sudo</b>. Kepada file-file tersebut, kita juga memberikan nama <i>alias</i>. Sebagai contoh, karena ingin memberikan akses untuk men-<i>start</i> dan men-<i>shutdown</i> mysql, maka saya membuat baris berikut :</p>
<blockquote><p> Cmnd_Alias MYSQL = /etc/init.d/mysql, /usr/bin/mysql*</p></blockquote>
<p>Artinya, kawan saya dapat menjalankan file <b>/etc/init.d/mysql</b> dan file-file executable lain pada folder <b>/usr/bin</b> <b>yang berawalan mysql</b>, misalnya : mysqldump.</p>
<p><b>User privilege spesification</b> adalah bagian yang terpenting menurut saya. Di bagian ini, kita akan menggunakan semua spesifikasi yang telah kita tuliskan sebelumnya.</p>
<blockquote><p>root ALL=(ALL) ALL</p></blockquote>
<p>Kutipan di atas dapat diterjemahkan sebagai "<i>user</i> root dapat melakukan sudo di host manapun (kata ALL pertama), dan berperan sebagai <i>user</i> siapapun (kata ALL kedua, dalam kurung) untuk menjalankan perintah apapun (kata ALL ketiga). Contoh lain adalah sebagai berikut :</p>
<blockquote><p> badat INTERNAL=NOPASSWD: MYSQL,SAMBA</p></blockquote>
<p>Berarti <i>user </i><b>badat</b> dapat melakukan <b>sudo</b> di semua <i>host</i> dalam <i>network</i> internal (INTERNAL, 10.10.10.*/255.255.255.0), secara <i>default</i> berperan sebagai root (karena tidak didefinisikan setelah tanda =), tanpa memerlukan <i>password</i> (NOPASSWD), dan hanya dapat menjalankan perintah yang terdaftar pada <i>alias</i> MYSQL dan SAMBA.</p>
<p>Sekian <i>sharing</i> pengalaman saya dalam menggunakan <b>sudo</b>. Untuk lebih jelas dan lengkap mengenai <b>sudo</b>, silakan manfaatkan fasilitas <b>man</b>.</p>
<blockquote><p>man sudoers</p></blockquote>
]]></content:encoded>
</item>
<item>
<title><![CDATA[El poder de sudo]]></title>
<link>http://vat69.wordpress.com/2007/12/27/el-poder-de-sudo/</link>
<pubDate>Thu, 27 Dec 2007 00:56:39 +0000</pubDate>
<dc:creator>hielasangre</dc:creator>
<guid>http://vat69.wordpress.com/2007/12/27/el-poder-de-sudo/</guid>
<description><![CDATA[Si bien usando el comando su podemos cambiar al modo root, esta es una práctica peligrosa. Sobre to]]></description>
<content:encoded><![CDATA[<p><a href="http://img.photobucket.com/albums/v739/Hielasangre/software/sandwich.png" target="_blank"><img src="http://img.photobucket.com/albums/v739/Hielasangre/software/sandwich.png" border="0" alt="sudo" hspace="8" vspace="2" width="268" height="221" align="left" /></a>Si bien usando el comando <em><strong>su</strong></em> podemos cambiar al modo root, esta es una práctica peligrosa. Sobre todo en ambientes multiusuario, porque implicaría entregar la contraseña del usuario root a todos los que la necesiten (y me cago en la seguridad).</p>
<p>Sudo se basa en una lista de control (que se encuentra en el archivo <em><strong>/etc/sudoers</strong></em>) para permitir (o no) la ejecución a un determinado usuario de un comando que es propiedad de otro usuario, generalmente del administrador del sistema (root).</p>
<p>Consideremos aquí las tres partes que componen esta suite de seguridad:</p>
<ul>
<li><strong><span style="text-decoration:underline;">sudo</span>:</strong> es el comando con permisos <em><strong>SUID</strong></em> que los usuarios utilizan para ejecutar otros comandos que, por seguridad o por otros motivos, no se les permite correr directamente. Sudo (<em><strong>SU</strong>peruser <strong>DO</strong></em>) lo ejecuta un usuario normal y requiere que éste último se autentique escribiendo su contraseña antes de la ejecución del comando al que se invoca. (Esto se puede cambiar en el archivo de configuración sudoers, como veremos más adelante). Por defecto, luego de dicha ejecución, el usuario dispondrá de cinco minutos de gracia para volver a correr el comando sin necesidad de autenticarse nuevamente. Dos opciones interesantes son <em><strong>sudo -l </strong></em>(lista qué comandos podemos ejecutar con sudo) y <em><strong>sudo -e</strong></em> (nos permite editar archivos de texto que sólo tienen permisos para el root).</li>
<li><span style="text-decoration:underline;"><strong>visudo </strong></span>: es el comando que permite al administrador modificar el archivo /etc/sudoers. Si bien también se puede hacer con <em><strong>vi</strong></em>, es recomendable el uso de <em><strong>visudo</strong></em> ya que bloquea el archivo para su edición. Otra característica interesante de visudo es que antes de cerrar el archivo verifica que esté bien configurado y detecta los errores de sintaxis.</li>
<li><span style="text-decoration:underline;"><strong>sudoers (o /etc/sudoers)</strong></span>: es el archivo de configuración que le indica a sudo qué usuarios ejecutan cuáles comandos.</li>
</ul>
<div style="border-left:3px solid #666666;background:#bbbbbb none repeat scroll 0 50%;">
<h3><strong>Configuración</strong></h3>
</div>
<p>Como ya dijimos el archivo de configuración de sudo es /etc/sudoers.  Este se divide en tres secciones:</p>
<ol>
<li>Definiciones de Alias</li>
<li>Ajuste de las opciones por defecto</li>
<li>Reglas de acceso</li>
</ol>
<p><!--more--></p>
<h4><span style="text-decoration:underline;"> Definiciones de Alias</span></h4>
<p>La forma general de una definición de alias es:</p>
<p><strong>Tipo_Alias    NOMBRE_ALIAS = elemento1, elemento2, elemento3, ...</strong></p>
<p>El tipo de alias puede ser uno de los siguientes:</p>
<p><em><strong>Cmnd_Alias</strong></em>: para definir alias de comandos</p>
<p><em><strong>User_Alias:</strong></em> para definir alias de usuarios "normales"</p>
<p><em><strong> Runas_Alias: </strong></em>para definir alias de usuarios "privilegiados"</p>
<p><em><strong>Host_Alias:</strong></em> para definir alias de hosts</p>
<p>Nombre_Alias es el nombre que le daremos al alias. Su composición debe seguir las siguientes normas: debe ser una cadena compuesta exclusivamente por letras mayúsculas, números y guiones bajos; debe necesariamente comenzar con una letra mayúscula; es recomendable utilizar sólo letras mayúsculas.</p>
<p>El nombre de alias se extiende a un elemento o lista de elementos. Cada uno de estos puede, a su vez, ser un alias en una definición anterior (del mismo tipo, claro).</p>
<p><span style="text-decoration:underline;"><strong> Alias de usuarios</strong></span></p>
<p>Un ejemplo para la definición de una lista de usuarios sería:</p>
<table style="border:2px solid #666666;background:#bbbbbb none repeat scroll 0 50%;" border="0" align="center">
<tbody>
<tr>
<td align="center">User_List INVITADOS = asd53, delfin, %impresora, +robinsones, REDACTORES</td>
</tr>
</tbody>
</table>
<p>Lo que esta definición establece es lo siguiente: el alias INVITADOS comprende a los usuarios asd53 y delfin, a los usuarios del grupo (system-group, se distingue por el <strong>%</strong>) impresora, a los usuarios del grupo (net-group, se distingue por el <strong>+</strong>) robinsones y a los usuarios definidos en el alias REDACTORES.</p>
<p><span style="text-decoration:underline;"><strong> Alias de usuarios privilegiados</strong></span></p>
<p>Se utiliza Runas_List en vez de User_List y es muy similar al anterior, salvo que aquí además podemos utilizar un <strong>uid</strong> con el prefijo <strong>#</strong>, en la lista de elementos.</p>
<p><span style="text-decoration:underline;"><strong> Alias de hosts</strong></span></p>
<p>La sintaxis es similar a las anteriores, salvo que cada elemento de la lista puede ser un nombre de host, una dirección IP, un número de red (este se puede seguir con una barra y su máscara, de lo contrario sudo aplicará por defecto la máscara configurada en la interface de red), un nombre de grupo de red (precedido por el signo +), u otro alias de host.</p>
<p><span style="text-decoration:underline;"><strong> Alias de comandos</strong></span></p>
<p>Se utiliza Cmnd_List (o Cmnd_Alias, como en cualquiera de los casos anteriores). Cada uno de los elementos que esta lista puede contener puede ser un nombre de comando, un nombre de comando y sus argumentos, un nombre de comando seguido de wildcards (comodines), un directorio, el comando sudoedit, u otro alias definido anteriormente.</p>
<p>Cuando se especifica un nombre de comando en la lista de elementos, se debe escribir su ruta completa. Cuando junto con el comando se especifiquen los argumentos o wildcards, el usuario sólo podrá utilizar los argumentos especificados. Si se escribe guión bajo como argumento de comando, se indica que éste sólo puede ejecutarse sin argumentos.</p>
<p>Cuando en lugar de un comando se especifica un directorio, el usuario puede ejecutar cualquier binario que se encuentre en el directorio epecificado. Un directorio es un path, completo y válido, acabado en  <strong>/</strong>.</p>
<p>El comando especial  <strong>sudoedit</strong> se utiliza para permitir al usuario la ejecución de  <strong>sudo -e</strong>.  Como cualquier comando, puede tambien especificarse con argumentos.</p>
<table style="border:2px solid #666666;background:#bbbbbb none repeat scroll 0 50%;" border="0" align="center">
<tbody>
<tr>
<td align="center">Cmnd_List  AVANZADOS = /bin/kill, /bin/passwd, /bin/hostname, BASICOS , /usr/local/bin/</td>
</tr>
</tbody>
</table>
<p>La línea anterior especifica lo siguiente: el usuario podria ejecutar los comandos  <strong>kill</strong>, <strong>passwd</strong>,  <strong>hostname</strong>, todos los ejecutables contenidos en el directorio  <strong>/usr/local/bin/</strong> y los comandos correspondientes al alias  <strong>BASICOS.</strong></p>
<p><strong><span style="text-decoration:underline;">Definiendo alias en EBNF sería así</span>: </strong></p>
<p><strong>Alias ::=</strong> 'User_Alias'  User_Alias (':' User_Alias)* &#124;<br />
'Runas_Alias' Runas_Alias (':' Runas_Alias)* &#124;<br />
'Host_Alias'  Host_Alias (':' Host_Alias)* &#124;<br />
'Cmnd_Alias'  Cmnd_Alias (':' Cmnd_Alias)*</p>
<p><strong>User_Alias ::=</strong> NAME '=' User_List</p>
<p><strong>Runas_Alias ::=</strong> NAME '=' Runas_List</p>
<p><strong>Host_Alias ::=</strong> NAME '=' Host_List</p>
<p><strong>Cmnd_Alias ::=</strong> NAME '=' Cmnd_List</p>
<p><strong>NAME ::=</strong> [A-Z]([A-Z][0-9]_)*</p>
<p><strong>User_List ::=</strong> User &#124;<br />
User ',' User_List</p>
<p><strong>User ::=</strong> '!'* username &#124;<br />
'!'* '%'group &#124;<br />
'!'* '+'netgroup &#124;<br />
'!'* User_Alias</p>
<p><strong> Runas_List ::=</strong> Runas_User &#124;<br />
Runas_User ',' Runas_List</p>
<p><strong> Runas_User ::=</strong> '!'* username &#124;<br />
'!'* '#'uid &#124;<br />
'!'* '%'group &#124;<br />
'!'* +netgroup &#124;<br />
'!'* Runas_Alias</p>
<p><strong> Host_List ::=</strong> Host &#124;<br />
Host ',' Host_List</p>
<p><strong> Host ::=</strong> '!'* hostname &#124;<br />
'!'* ip_addr &#124;<br />
'!'* network(/netmask)? &#124;<br />
'!'* '+'netgroup &#124;<br />
'!'* Host_Alias</p>
<p><strong> Cmnd_List ::=</strong> Cmnd &#124;<br />
Cmnd ',' Cmnd_List</p>
<p><strong> commandname ::=</strong> filename &#124;<br />
filename args &#124;<br />
filename '""'</p>
<p><strong> Cmnd ::= </strong>'!'* commandname &#124;<br />
'!'* directory &#124;<br />
'!'* "sudoedit" &#124;<br />
'!'* Cmnd_Alias</p>
<h4><span style="text-decoration:underline;">Ajuste de las opciones por defecto</span></h4>
<p>Pueden modificarse ciertas opciones de configuración mediante una o más líneas  <strong>Defaults</strong> en el archivo  <strong>/etc/sudoers</strong>.</p>
<p>Podemos definir las opciones:</p>
<ol>
<li> globalmente</li>
<li>por usuario</li>
<li>por usuario privilegiado</li>
<li>por host</li>
</ol>
<p>La sintaxis para cada uno sería:</p>
<ol>
<li><strong>Defaults</strong> <em>lista_opciones</em></li>
<li><strong>Defaults:usuario</strong> <em>lista_opciones</em></li>
<li><strong>Defaults&#62;usuario_privilegiado</strong> <em>lista_opciones</em></li>
<li><strong>Defaults@host</strong> <em>lista_opciones</em></li>
</ol>
<p><em><br />
</em></p>
<p>Las listas de opciones están constituídas por un conjunto de opciones separadas por comas. Podemos considerar cuatro tipos de opciones: Booleanos, Enteros, Cadenas y Listas.</p>
<blockquote><p><span style="text-decoration:underline;"><strong>Booleanos</strong></span> : se activan con el nombre de la opción. Se desactivan con el signo <strong>! </strong>delante.</p>
<p>La línea siguiente:</p>
<p><strong>Defaults&#62;root !set_logname</strong></p>
<p>Desacttiva la opción  set_logname  para el usuario root.</p>
<p><span style="text-decoration:underline;"><strong>Enteros</strong></span> : toman la forma:  nombre_opcion = valor</p>
<p><span style="text-decoration:underline;"><strong>Cadenas</strong></span> : toman la forma:  nombre_opcion =  cadena</p>
<p><span style="text-decoration:underline;"><strong>Listas</strong></span> : toman la forma:  nombre_opcion = valor1,valor2,...</p>
<p>En las listas el operador <strong>=</strong> puede ser reemplazado por <strong>+= </strong>o <strong>-= </strong>, para añadir o quitar elementos.</p></blockquote>
<p>No es mi intención profundizar más en las opciones por defecto de las que se disponen, ya que el sudo no es complejo pero si completo y bastante flexible. Una lista de las opciones de configuración con una pequeña descripción puede hallarse <a title="Defaults" href="http://www.rpublica.net/sudo/defaults.html#defaults" target="_blank">aquí</a>.</p>
<h4><span style="text-decoration:underline;"> Reglas de acceso</span></h4>
<p>Mediante las reglas de acceso se define:</p>
<ul>
<li>Los usuarios a los que permitimos utilizar sudo</li>
<li>Los comandos que dichos usuarios podrán ejecutar</li>
<li>En calidad de qué usuarios privilegiados podrán ejecutarlos</li>
<li>En qué host podrán hacerlo</li>
</ul>
<p>La sintaxis básica es:</p>
<p><em><strong>usuario   host = (usuario_privilegiado)    comando</strong></em></p>
<p>Cada uno de los elementos anteriores puede ser un Alias o una lista de elementos.</p>
<p>El elemento  <em>usuario_privilegiado</em> es opcional. Por defecto se toma  <em>root</em> .<br />
Un ejemplo de regla de acceso con  <em>root</em> como  <em>usuario_privilegiado</em> seria:</p>
<p class="comandos"><em><strong>USUARIO    HOST = comando1, comando2,.....</strong></em></p>
<p>Cuando se especifique un comando siempre debe ponerse la ruta completa al ejecutable.  	(Cuando ejecutemos  <strong>sudo </strong> no es necesario, bastará con el nombre del ejecutable).</p>
<p class="comandos"><em><strong>USUARIO    HOST = /usr/bin/ls</strong></em></p>
<p>En ejemplo anterior, los usuarios de alias  <em>USUARIO</em>,  en las máquinas de alias  <em>HOST</em> podrian ejecutar, como  <em>root</em> el comando  <em><strong>ls</strong></em>.<em><strong><br />
</strong></em></p>
<p>Como se comentó anteriormente , debemos tener en cuenta que en lugar de ejecutables pueden configurarse rutas a directorios para indicar que cualquier binario de dicho directorio se incluye en la Regla de Acceso; bastará con finalizar la ruta con<strong> / </strong> y se entenderá como un directorio. Un ejemplo:</p>
<p class="comandos"><em><strong>USUARIO   HOST = (operador) /usr/local/bin/</strong></em></p>
<p>En este ejemplo los usuarios de alias  <em>USUARIO</em>,   en las máquinas de alias  <em>HOST</em> podrian ejecutar con los privilegios del usuario  <em>operador</em> los ejecutables que se hallen en el directorio   /usr/local/bin/.</p>
<p>Pueden especificarse mas de un  <em>usuario_privilegiado</em>.  En este caso, cada  <em>usuario_privilegiado</em> especificado toma efecto a todos los comandos especificados a partir de el. Veamos un eljemplo:</p>
<p class="comandos"><em><strong>USUARIO  HOST = (operador) comando1, comando2, (root) comado3, comando4</strong></em></p>
<p>En la anterior regla de acceso se autoriza a los usuarios de alias  <em>USUARIO</em>,  en las máquinas de alias  <em>HOST</em> ejecutar los comandos  <em>comando1</em> y  <em>comando2</em> como usuario  <em>operador</em> y los comandos  <em>comando3</em> y  <em>comando4</em> como usuario  <em>root.</em><br />
En este caso se obtendria el mismo resultado con la siguiente regla de acceso:</p>
<p class="comandos"><em><strong>USUARIO  HOST = comando3,comando4, (operador) comando1, comando2</strong></em></p>
<p><span style="text-decoration:underline;"><strong> Etiquetas de comando</strong></span></p>
<p>Mediante éstas etiquetas se pueden modificar  las condiciones en las que el usuario puede ejecutar los diversos comandos definidos. Un comando puede definirse con sero o más etiquetas asociadas a él.</p>
<p>En el caso de utilizar etiquetas de comando, la sintaxis podría ser:</p>
<p><em><strong>usuario host = (usuario_privilegiado)  ETIQUETA:comando, ...</strong></em></p>
<p>Se dispone de cuatro valores posibles para la etiqueta:</p>
<ul>
<li>NOPASSWD</li>
<li>PASSWD</li>
<li>EXEC</li>
<li>NOEXEC</li>
</ul>
<p>Una vez se ha asociado una etiqueta a un comando, los siguientes comandos de la lista de comandos 	heredan el valor de la etiqueta asociada, salvo que sea "anulada" por una etiqueta con valor opuesto.</p>
<p>Por defecto,  <strong>sudo</strong> requiere que el usuario se autentifique mediante su contraseña antes de ejecutar un comando. Esto puede modificarse mediante la etiqueta  NOPASSWD.</p>
<p>Al aplicar la etiqueta  NOPASSWD  a un comando de una lista, todos los comandos subsiguientes "heredarán" esta propiedad. Podemos desactivar la "herencia" con  PASSWD . Veamos esto con un ejemplo:</p>
<p class="comandos"><em><strong>jose1 hosto = (operador) NOPASSWD: /bin/kill, /bin/ls, /usr/bin/lpr</strong></em></p>
<p class="comandos">La anterior definición nos dice que el usuario  jose1,  en el host  hosto,  en calidad de usuario_privilegiado  operator,  puede ejecutar sin necesidad de autentificarse los comandos  /bin/kill,  /bin/ls,   y  /usr/bin/lpr.</p>
<p class="comandos">Si deseáramos que solo pudiera ejecutar  /bin/kill  sin necesidad de autentificarse, desactivariamos  NOPASSWD  para  /bin/ls  y  /usr/bin/lpr,  mediante  PASSWD  :</p>
<p class="comandos"><em><strong> jose1 hosto = (operador) NOPASSWD: /bin/kill, PASSWD: /bin/ls, /usr/bin/lpr</strong></em></p>
<p class="comandos">Si quisiéramos que  /bin/ls  fuera el único comando que pudiera ejecutarse sin autentificación, la sintaxis deberia ser:</p>
<p class="comandos"><em><strong>jose1 hosto = (operador) /bin/kill, NOPASSWD: /bin/ls, PASSWD: /usr/bin/lpr</strong></em></p>
<p class="comandos">Una vez  <strong>sudo</strong> ejecuta un perograma, dicho programa es libre de realizar cualquier operación que le sea propia, incluida la ejecución de otro programa. Esto puede plantear una cuestión de seguridad, ya que no es infrecuente que un programa permita shell escapes, lo que posibilita al usuario "puentear" las restricciones de  <strong>sudo</strong> .</p>
<p class="comandos">La funcionalidad  noexec  de  <strong>sudo</strong> puede utilizarse para prevenir que con un programa que se haya ejecutado através de  <strong>sudo</strong> pueda ejecutarse cualquier otro programa. Debe tenerse en cuenta, sin embargo,  que esto es sólo posible con ejecutables dinamicamente enlazados (dynamically-linked). Con ejecutables estaticamente enlazados ( statically-linked) no tiene efecto.</p>
<p class="comandos">En el siguiente ejemplo habilitamos al usuario  asd53 , sobre el host  host3  ejecurar como  root  los comandos  les  y  pine  , con  noexec  activado:</p>
<p class="comandos"><em><strong>asd53  host3 = NOEXEC : /usr/bin/less , /usr/bin/pine</strong></em></p>
<p class="comandos">
<div style="border-left:3px solid #666666;background:#bbbbbb none repeat scroll 0 50%;">
<h3><strong>Fuentes</strong></h3>
</div>
<p>Este documento no está completo ni mucho menos. De hecho, los últimos párrafos están casi textuales de fuente porque ya estaba hasta los huevos de escribir. El sudo es una herramienta muy completa. No es la panacea en lo que a seguridad se refiere, pero es su flexibilidad lo que me gusta. Para profundizar se puede consultar los siguientes enlaces:</p>
<ul>
<li>La <a title="sitio oficial" href="http://www.sudo.ws/sudo/sudo.html" target="_blank">página oficial</a> de <strong>SUDO</strong>. Allí se encuentra la especificación completa de la sintaxis del sudoers, así como el manual completo de toda la suite. Muy bueno. Idioma inglés.</li>
<li>En la <a title="rpublica" href="http://www.rpublica.net/sudo/indice.html#rotulo" target="_blank">página</a> dedicada al SUDO del sitio <a title="rpublica" href="http://www.rpublica.net/" target="_blank">rpublica.net</a>.</li>
<li>En el <a title="linuxtotal.com.mx" href="http://www.linuxtotal.com.mx/index.php?cont=info_admon_014" target="_blank">manual de sudo</a>, elaborado por el sitio <a title="linuxtotal.com.mx" href="http://www.linuxtotal.com.mx/index.php?cont=inic" target="_blank">linuxtotal.com.mx</a>.</li>
<li>Un ejemplo de un archivo sudoers completo se puede encontrar <a title="sudoers" href="http://sudo.rtin.bz/sudo/sample.sudoers" target="_blank">aquí</a>.</li>
<li>El dibujito lo ví en <a title="Entre tuxes y pepinos" href="http://tuxpepino.wordpress.com/" target="_blank">Entre Tuxes y Pepinos</a> y pertenece al sitio <a title="cómics" href="http://xkcd.com/" target="_blank">xkcd.com</a>.</li>
<li>Sintaxis de <a title="EBNF" href="http://www.garshol.priv.no/download/text/bnf.html" target="_blank">BNF y EBNF</a>.</li>
</ul>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Permisos superusuario (root) con sudo]]></title>
<link>http://gnubuntu.wordpress.com/2007/11/01/permisos-superusuario-root-con-sudo/</link>
<pubDate>Thu, 01 Nov 2007 01:48:59 +0000</pubDate>
<dc:creator>horuhe</dc:creator>
<guid>http://gnubuntu.wordpress.com/2007/11/01/permisos-superusuario-root-con-sudo/</guid>
<description><![CDATA[El que un usuario tenga privilegio de superusuario sería poner en peligro la integridad del sistema]]></description>
<content:encoded><![CDATA[<p>El que un usuario tenga privilegio de superusuario sería poner en peligro la integridad del sistema. Pero, en muchas ocasiones, se hace necesario que algunos usuarios tengan derechos de  superusuario. Para poder  darles privilegios de superusuarios a usuarios momentaneámente esta el comando <em>sudo</em>.<!--more--></p>
<p>Como superusuario introducimos la siguiente linea en el interprete de comandos:<br />
<code>echo "nombreusuario ALL=(ALL) ALL" &#62;&#62; /etc/sudoers</code></p>
<p>Con esto, hemos logrado que <em>nombredesuario</em> tenga todos los privilegios de root, así que cuidado, esto debilita fuertemente la seguridad del sistema si no se tiene cuidado y conocimientos.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Troubleshooting Sudo]]></title>
<link>http://arichuang.wordpress.com/2007/05/05/troubleshooting-sudo/</link>
<pubDate>Sat, 05 May 2007 10:59:11 +0000</pubDate>
<dc:creator>aric</dc:creator>
<guid>http://arichuang.wordpress.com/2007/05/05/troubleshooting-sudo/</guid>
<description><![CDATA[I ran into this problem today after deleting the admin group which I thought I created when I create]]></description>
<content:encoded><![CDATA[<p>I ran into this problem today after deleting the admin group which I thought I created when I created an "admin" user.</p>
<p>If your sudo is "broken," meaning that you can't use the sudo command to temporarily gain administrative privileges, there are two files you should be aware of:</p>
<p>two files to look into<br />
/etc/sudoers and /etc/group</p>
<p><strong>/etc/sudoers</strong></p>
<blockquote><p> # /etc/sudoers<br />
#<br />
# This file MUST be edited with the 'visudo' command as root.<br />
#<br />
# See the man page for details on how to write a sudoers file.<br />
#<br />
# Host alias specification<br />
# User alias specification<br />
# Cmnd alias specification<br />
# Defaults<br />
Defaults !lecture,tty_tickets,!fqdn<br />
# User privilege specification</p>
<p>root ALL=(ALL) ALL</p>
<p># Members of the admin group may gain root privileges<br />
%<strong><em>admin</em></strong> ALL=(ALL) ALL</p></blockquote>
<p><strong>/etc/group</strong></p>
<blockquote><p> root:x:0:<br />
daemon:x:1:<br />
bin:x:2:<br />
sys:x:3:<br />
adm:x:4:firstuser<br />
tty:x:5:<br />
disk:x:6:<br />
lp:x:7:cupsys<br />
mail:x:8:<br />
news:x:9:<br />
uucp:x:10:<br />
man:x:12:<br />
proxy:x:13:<br />
kmem:x:15:<br />
dialout:x:20:firstuser,cupsys<br />
fax:x:21:<br />
voice:x:22:<br />
cdrom:x:24:firstuser,haldaemon<br />
floppy:x:25:firstuser,haldaemon<br />
tape:x:26:<br />
sudo:x:27:<br />
audio:x:29:firstuser<br />
dip:x:30:firstuser<br />
www-data:x:33:<br />
backup:x:34:<br />
operator:x:37:<br />
list:x:38:<br />
irc:x:39:<br />
src:x:40:<br />
gnats:x:41:<br />
shadow:x:42:<br />
utmp:x:43:<br />
video:x:44:firstuser<br />
sasl:x:45:<br />
plugdev:x:46:firstuser,haldaemon<br />
staff:x:50:<br />
games:x:60:<br />
users:x:100:<br />
nogroup:x:65534:<br />
dhcp:x:101:<br />
syslog:x:102:<br />
klog:x:103:<br />
firstuser:x:1000:<br />
lpadmin:x:104:firstuser<br />
scanner:x:105:firstuser,cupsys<br />
<strong>admin:x:106:<em>firstuser</em></strong><br />
crontab:x:107:<br />
ssh:x:108:<br />
messagebus:x:109:<br />
haldaemon:x:110:<br />
slocate:x:111:</p></blockquote>
<p>Reboot your linux &#38; get into the <strong>"Recovery Mode"</strong>. Once you have logged in as Root . Make backup of your two files</p>
<blockquote><p> cp /etc/group /etc/group.old<br />
cp /etc/sudoers /etc/sudoers.old</p></blockquote>
<p>Edit the file that needs fixing. In my case, I added the "admin" group back to /etc/group "<em>admin:x:109:wow</em>"</p>
<blockquote><p> vim /etc/group<br />
vim /etc/sudoers</p></blockquote>
<p>When you're done, reboot, and you should be able to sudo again.</p>
]]></content:encoded>
</item>

</channel>
</rss>
