https://manuais.iessanclemente.net/index.php?title=Administrar_usuarios_e_grupos_en_Linux&feed=atom&action=historyAdministrar usuarios e grupos en Linux - Historial de revisiones2024-03-29T04:37:51ZHistorial de revisiones de esta página en el wikiMediaWiki 1.36.2https://manuais.iessanclemente.net/index.php?title=Administrar_usuarios_e_grupos_en_Linux&diff=62373&oldid=prevVieites: /* Configurar contas de usuario */2017-09-12T08:53:36Z<p><span dir="auto"><span class="autocomment">Configurar contas de usuario</span></span></p>
<p><b>Página nueva</b></p><div>Linux é un sistema multiusuario que se basea en contas, que son estruturas de datos e procedementos que se utilizan para identificar aos usuarios concretos dun ordenador. Saber administrar estas contas é un coñecemento básico pero importante.<br />
<br />
Moitas redes empregan bases de datos de contas de rede. Entre estes sistemas están NIS (''Network Information System'', Sistema de información da rede), unha actualización deste sistema chamada NIS+, LDAP (''Lightweight Directory Access Protocol'', Protocolo lixeiro de acceso a directorios), dominios de Kerberos, dominios de Windows NT 4.0 e dominios de Directorio Activo (AD).<br />
<br />
== Os nomes de usuario de Linux ==<br />
: '''Os nomes de usuario de Linux''' consisten en calquera combinación de letras maiúsculas e minúsculas, números e moitos símbolos de puntuación, incluíndo puntos e espazos. <br />
:: - Non obstante, algúns signos de puntuación, como os espazos, causan problemas en determinadas utilidades de Linux, polo que é preferible evitar o seu uso nos nomes de usuario. <br />
:: - Ademais, os nomes de usuario deben comezar por unha letra, polo que non será válido un nome de usuario como "69a", pero "a69" é correcto. <br />
:: - Aínda que os nomes de usuario poden costar de ata 32 caracteres, moitas utilidades truncan os nomes de usuario de mais de 8 caracteres ou similares ao mostralos, polo que é interesante limitar a lonxitude dos nomes a 8 caracteres.<br />
:: - Linux distingue entre maiúsculas e minúsculas nos nomes de usuario.<br />
<br />
{{Alerta|Os comandos ''w'' e ''whoami''|Temos estes dous comandos que nos indican: <br />
: - O comando [http://linuxcommand.org/man_pages/w1.html w] mostra que usuarios están conectados ou con sesión aberta. Se se especifica usuario, só mostra as conexións dese usuario.<br />
: - O comando [http://linuxcommand.org/man_pages/whoami1.html whoami] nos indica que usuario somos agora mesmo. }}<br />
<br />
== Os grupos en Linux ==<br />
É interesante agrupar aos usuarios mediante grupos para mellorar a productividade.<br />
: - Cada ficheiro dun sistema Linux está asociado a un grupo.<br />
: - Cada grupo pode ter dende ningún usuario ata tantos como teña o ordenador. Se un usuario pertence a un grupo ou a outro, agás o seu grupo por defecto ou primario, contrólase mediante o ficheiro '''''/etc/group'''''. Vexamos un exemplo:<br />
<source lang="bash"><br />
adm:x:4:patricia,juser<br />
cdrom:x:24:adri,patricia,juser<br />
lpadmin:x:106:patricia,juser<br />
admin:x:112:patricia,juser<br />
patricia:x:1000:<br />
</source><br />
:: Cada liña do ficheiro ten a seguinte estrutura:<br />
:: '''grupo:contrasinal:GID:usuario1,usuario2,...,usuarioN'''<br />
::* '''grupo''': nome do grupo<br />
::* '''contrasinal''': campo de contrasinal (neste exemplo cunha x indicando que as auténticas contrasinais están gardadas de forma encriptada no ficheiro '''/etc/gshadow''')<br />
::* '''GID''': identificador numérico do grupo<br />
::* '''listaUsuarios''': lista separada por comas dos usuario que teñen a ese grupo como grupo secundario.<br />
: - Ademais do descrito en '''''/etc/group''''', cada usuario posúe un grupo por defecto ou primario. O grupo primario do usuario defínese na configuración do usuario de '''''/etc/passwd''''' (o ficheiro que define as contas). <br />
<source lang="bash"><br />
javier:x:1000:1000::/home/javier:/bin/bash<br />
</source><br />
:: Como pode verse no exemplo anterior, para cada usuario almacénase a seguinte información:<br />
:: '''''login:x:UID:GID:descrición:directorioPersoal:Shell'''''<br />
:: Como no caso de '''/etc/group''' o '''x''' indica que as auténticas contrasinais están gardadas no ficheiro '''/etc/shadow'''.<br />
<source lang="bash"><br />
usuario:$6$kbzYVOsJ$84OVN7IApJLC/jw60jXZP/ierMeCqgK2X9iFYOXTNZokkzxC5i.z7MbBJP7QgT4mQV/Qg9z89CCorJ5Ef4/au1:15596:0:99999:7:::<br />
sshd:*:15604:0:99999:7:::<br />
</source><br />
:: Cada entrada no ficheiro '''/etc/shadow''' ten a seguinte estrutura:<br />
:: '''''nomeUsuario:contrasinal:ultimoCambio:min:max:aviso:inactividade:exp:reservado'''''<br />
::* '''nomeUsuario''': nome do usuario<br />
::* '''contrasinal''': contrasinal cifrada do usuario<br />
::* '''ultimoCambio''': data do último cambio do contrasinal (días dende o 1 de Xaneiro de 1970)<br />
::* '''min''': mínimo número de días que deben pasar para poder cambiar o contrasinal<br />
::* '''max''': número máximo de días que pode estar o usuario con ese contrasinal. Utilízase para obrigar ao usuario a que cambie o contrasinal<br />
::* '''aviso''': número de días que se avisará con antelación ao usuario de que o contrasinal vai caducar<br />
::* '''inactividade''': número de días antes de que se bloquee a conta se non cambiou o contrasinal<br />
::* '''exp''': data na que caduca a conta. Cóntase en días a partir do 1/1/1970. Se o campo está en branco, a conta non caduca nunca. Se caducou o superusuario ou administrador do sistema deberá activala<br />
::* '''reservado''': reservado para usos futuros<br />
{{Alerta|Contrasinal: |O contrasinal almacénase encriptado, polo que non garda parecido evidente có contrasinal real. Un asterisco (*) ou un signo de admiración (!) denota unha conta sen contrasinal (é dicir, unha conta que non permite o acceso, pois está bloqueada). Isto é habitual en contas que utiliza o propio sistema. }}<br />
: - Un usuario pode acceder a ficheiros que pertencen a outros grupos sempre que o usuario pertenza a dito grupo e que o acceso estea permitido polos permisos de acceso do grupo. Sen embargo, para executar programas ou crear ficheiros cun grupo distinto do primario, o usuario deberá executar o comando '''''newgrp''''' para cambiar a pertenencia ao grupo actual. Nese momento é cando o sistema lle pedirá ao usuario o contrasinal do grupo para poder pertencer a el.<br />
{{Alerta|Comando '''groups''': |Con este comando podemos ver os grupos aos que pertence un usuario, tanto o principal como os secundarios:<br />
: '''$ groups usuario'''.}}<br />
<br />
== Asociar UID e GID a usuarios e grupos ==<br />
: Linux define aos usuarios e grupos por números, aos que se refire como ID de usuario (UID) e ID de grupos (GID), respectivamente.<br />
:: - Linux segue o rastro dos usuarios e grupos por estes números, non polo seu nome. Linux emprega '''''/etc/passwd''''' ou '''''/etc/group'''''.<br />
<br />
{{Alerta|Comando ''id''|O comando [http://linuxcommand.org/man_pages/id1.html id] mostra a identidade do usuario (UID) e os grupos aos que pertence.}}<br />
<br />
:: - As distribucións de Linux reservan o primeiro centenar de ID de usuario e grupos (0-99) para o uso do sistema. O mais importante destes é o '''0''', que corresponde ao '''''root''''' (tanto o usuario como o grupo).<br />
:: - Mais alá do 100, as ID de usuario e grupo atópanse dispoñibles para os usuarios e grupos normais.<br />
:: - Cando se crean contas de usuario e de grupo o sistema localizará o seguinte número sen utilizar.<br />
:: - Cando se elimine unha conta, o número de ID de dita conta poderase reutilizar.<br />
:: - Normalmente o GID 100 é '''''users''''', o grupo por defecto para algunhas distribucións. <br />
:: - Poderíanse crear varios nomes de usuario que empreguen a mesma UID ou varios nomes de grupo que empreguen a mesma GID. Trataríase, en certo modo, de contas ou grupos distintos; teñen entradas diferentes en ''/etc/passwd'' ou ''/etc/group'', polo uqe poden ter distintos directorios ''home'', diferentes contrasinais, etc. Pero, como teñen o mesmo ID que outros usuarios ou grupos, serán tratados de idéntico xeito no referente aos permisos dos ficheiros.<br />
<br />
== Configurar contas de usuario ==<br />
Como administrador de Linux é necesario saber cómo engadir, modificar ou eliminar contas de usuario.<br />
=== Engadir usuarios ===<br />
Os usuarios pódense engadir mediante as utilidades [http://linuxcommand.org/man_pages/useradd8.html useradd] e [http://linux.about.com/od/commands/l/blcmdl8_adduser.htm adduser].<br />
* '''useradd''' - É a utilidade por defecto que ten Debian para engadir usuarios. A súa sintaxe básica é a seguinte:<br />
<source lang="bash"><br />
useradd [-c comentario] [-d dir-home] [-e data-expiración] [-f días-inactivo]<br />
[-g grupo-defecto] [-G grupo[,...]] [-m [-k dir-esqueleto] | -M]<br />
[-p contrasinal] [-s shell] [-u UID [-o]] [-r] [-n] nome-usuario<br />
</source><br />
* '''adduser''' - Engade usuarios e grupos ao sistema de acordo ás opcións da liña de ordes seleccinadas e á configuración existente no arquivo '''/etc/adduser.conf'''. Ofrece unha interfaz máis sinxela que '''useradd''', seleccionando un valor axeitado para o identificador de usuario (UID), crea un directorio personal ('''/home/USUARI@''') coa configuración predeterminada, executa un script personalizado e outras funcionalidades.<br />
<br />
:: - Na súa forma mais simple, pódese escribir só '''''useradd nome-usuario'''''. O resto dos parámetros utilízanse para modificar os valores por defecto do sistema, que se almacenan no ficheiro '''''/etc/login.defs'''''.<br />
:: - '''Vexamos un exemplo:''' "Temos un sistema no que se engadeu un disco duro montado como ''/home2''. Deséxase crear unha conta para unha usuaria chamada '''lara''' e colocar o seu directorio ''home'' nese disco. Tamén se desexa que '''lara''' sexa membro dos grupos ''proxecto1'' e ''proxecto4'', tendo ''proxecto4'' como grupo por defecto. A usuaria tamén quere que ''bash'' sexa a súa consola por defecto". O comando que crea a usuaria '''lara''' con eses parámetros é o seguinte:<br />
<source lang="bash"><br />
# Se non están creados os grupos:<br />
$ groupadd proxecto4<br />
$ groupadd proxecto1<br />
# Agora créase o usuario:<br />
$ useradd -d /home2/lara -m -g proxecto4 -G proxecto1,proxecto4 -s /bin/bash lara<br />
# Por último, configurámoslle un contrasinal por defecto:<br />
$ passwd lara<br />
</source><br />
<br />
: - Para automatizar o cambio de contrasinais é moito máis útil o comando '''chpasswd''':<br />
<source lang="bash"><br />
# Có comando mkpasswd ciframos o contrasinal a empregar<br />
$ mkpasswd<br />
# Password:blah<br />
# BVR2Pnr3ro5B2<br />
##<br />
# Agora executamos o comando chpasswd indicando que o contrasinal ven cifrado.<br />
# Pasámoslle o binomio usuario:contrasinal<br />
$ echo "lara:$(mkpasswd abc123..)" | chpasswd -e<br />
</source><br />
<br />
: Se ''mkpasswd'' non está instalado:<br />
<source lang="bash"><br />
$ apt-get install whois<br />
</source><br />
<br />
{{Alerta|Skeleton|É moi interesante o directorio "esqueleto", que por defecto é ''/etc/skel'', aínda que o podemos configurar onde nos interese coa opción ''-k''. Este directorio contén arquivos e directorios que serán copiados no directorio ''home'' dos usuarios creados coa ferramenta ''useradd''. Está claro que isto será así cando sexan empregadas as opcións ''-m'' (ou ''--create-home'').}}<br />
<br />
=== Modificar contas de usuario ===<br />
Moitas veces teremos que modificar certos parámetros dalgunha conta de usuario, poderémolo facer de varias maneiras: editando directamente ficheiros críticos como ''/etc/passwd'' ou ''/etc/shadow'' onde se almacenan de forma encriptada os contrasinais dos usuarios, modificar ficheiros de configuración específicos do usuario ou empregar utilidades do sistema como as que se empregan para crear contas.<br />
<br />
* '''Definir un contrasinal:'''<br />
:: - Ainda que '''''useradd''''' ofrece o parámetro '''-p''' para definir un contrasinal, esta ferramenta require un contrasinal pre-encriptado. <br />
:: - Por conseguinte, é mais fácil crear unha conta de forma desactivada (sen empregar '''-p''') e definir o contrasinal tras crear a conta. <br />
:: - Isto podémolo facer có comando [http://linuxcommand.org/man_pages/passwd1.html passwd] ou, como vimos antes, moito mellor có comando [http://linux.die.net/man/8/chpasswd chpasswd].<br />
:: - Os usuarios normais poden utilizar '''''passwd''''' para cambiar os seus contrasinais, pero moitos dos seus parámetros só os pode utilizar ''root''. En concreto, '''-l''', '''-u''','''-i''' e'''-d''' quedan fora do alcance dos usuarios normais. <br />
:: - Os contrasinais de Linux poden conter letras, números e signos de puntuación. Linux distingue entre maiúsculas e minúsculas nos contrasinais.<br />
<br />
* '''Empregar a utilidade ''usermod'':'''<br />
:: - O programa [http://linuxcommand.org/man_pages/usermod8.html usermod] é moi similar a ''useradd'' nas súas funcionalidades e parámetros, ainda que esta utilidade cambia unha conta existente en lugar de crear unha nova.<br />
:: - '''''usermod''''' permite a incorporación dun parámetro '''-m''' cando se utiliza con '''-d'''. O parámetro '''-d''', por si só, cambia o directorio ''home'' do usuario, pero non move ningún ficheiro. Se se agrega '''-m''', ''usermod'' moverá os ficheiros do usuario ao novo sitio.<br />
:: - Se cambiamos a UID dunha conta, esta acción non cambiará a UID almacenada cós ficheiros do usuario. Como consecuencia, o usuario pode deixar de ter acceso a estes ficheiros. Pódese actualizar manualmente as UID de todos os ficheiros empregando o comando [http://linuxcommand.org/man_pages/chown1.html chown]. En concreto, un comando como o seguinte, executado tras cambiar a UID da conta ''lara'', restaura o propietario correcto dos ficheiros do directorio ''home'' de ''lara'':<br />
<source lang="bash"><br />
# Configuramos o usuario "lara" có UID "2000"<br />
$ usermod -u 2000 lara<br />
# Cambiamos os permisos de acceso para os seus documentos<br />
$ chown -R lara /home2/lara<br />
</source><br />
<br />
* '''Empregar a utilidade ''chage'': '''<br />
:: - O comando [http://linuxcommand.org/man_pages/chage1.html chage] permítenos modificar os parámetros das contas relacionados coa expiración desta.<br />
:: - As contas de Linux se poden configurar para que expiren automáticamente se se cumple cualquera destas condicións:<br />
::: · O contrasinal non cambiou nun periodo de tempo específico.<br />
::: · A data do sistema sobrepasou o tempo predeterminado.<br />
:: - Estes parámetros contrólanse coa utilidade '''''chage''''', que posúe a seguinte sintaxe:<br />
<source lang="bash"><br />
chage [-l] [-m mindías] [-M maxdías] [-d últimodía] [-I díasinactivo] [-E fechaexpiración ] [-W díasaviso] nomeusuario<br />
</source><br />
:: - A opción '''-l''' fai que ''chage'' mostre a información do periodo de expiración da conta e do contrasinal dun usuario concreto.<br />
:: - No seguinte exemplo o ''password'' do usuario lara configúrase para que expire en 10 días dende o último cambio de contrasinal:<br />
<source lang="bash"><br />
$ chage -M 10 lara<br />
</source><br />
<br />
=== Eliminar contas ===<br />
Sobre o papel, borrar contas de usuario é fácil. Pode utilizar o comando [http://linuxcommand.org/man_pages/userdel8.html userdel] para realizar a función de eliminar as entradas do usuario de '''''/etc/passwd''''' e, se o sistema emprega contrasinais ocultas, '''''/etc/shadow'''''. O comando '''''userdel''''' só recibe tres parámetros cós que conseguiremos:<br />
: - '''Borrar ficheiros de usuario: ''' O parámetro '''-r''' fai que o sistema elimine todos os ficheiros da cola de correo do usuario e do seu directorio ''home''.<br />
: - '''Forzar o borrado: '''Pódese forzar o borrado da conta mentres un usuario está dentro do sistema empregando a opción '''-f''' xunto con '''-r'''.<br />
: - '''Obter axuda: ''' A opción '''-h''' resume as opcións de '''''userdel'''''.<br />
: Vexamos un exemplo no que se elimina a conta ''lara'':<br />
<source lang="bash"><br />
$ userdel -r lara<br />
</source><br />
: Có comando anterior tamén se eliminan todos os arquivos do usuario '''lara'''. Pero, se o usuario ten arquivos gardados por algún sitio do árbol de directorios podemos empregar o comando '''''find''''' có seu parámetro '''-uid''' (ou '''-user''', se empregamos '''''find''''' antes de borrar a conta). Por exemplo, se ''lara'' ten o UID 2000, pódese empregar o seguinte comando para localizar todos os seus ficheiros:<br />
<source lang="bash"><br />
$ find / -uid 2000<br />
</source><br />
<br />
== Configurar grupos ==<br />
Linux ofrece ferramentas de configuración de grupos moi semellantes ás das contas de usuario en moitos aspectos, pero sen esquecer que "un grupo non é unha conta de usuario".<br />
<br />
=== Engadir grupos ===<br />
Linux proporciona o comando [http://linuxcommand.org/man_pages/groupadd8.html groupadd] para engadir novos grupos. Esta utilidade é similar a '''''useradd''''' pero ten menos opcións.<br />
:A sintaxe de '''''groupadd''''' é a seguinte:<br />
<source lang="bash"><br />
groupadd [-g GID [-o]] [-r] [-f] nomegrupo<br />
</source><br />
: Na maioría dos casos, os grupos créanse sen especificar parámetros, excepto o propio nome do grupo:<br />
<source lang="bash"><br />
$ groupadd proxecto3<br />
</source><br />
<br />
=== Modificar a información do grupo ===<br />
: A información dos grupos, como a das contas de usuario, pódese modificar empregando utilidades ou ben directamente, editando o ficheiro de configuración '''''/etc/group'''''.<br />
<br />
* '''Uso de ''groupmod'' e ''usermod'''''<br />
: - O comando [http://linuxcommand.org/man_pages/groupmod8.html groupmod] modifica os parámetros dun grupo existente. A súa sintaxe é a seguinte:<br />
<source lang="bash"><br />
groupmod [-g GID [-o]] [-n nomenovogrupo] nomeantigogrupo<br />
</source> <br />
:: Có parámetro '''-o''' podemos configurarlle a un grupo un GID que xa pertence a outro grupo.<br />
: - Para engadir un usuario a un grupo empregaremos o comando [http://linuxcommand.org/man_pages/usermod8.html usermod] có seu parámetro '''-G'''.<br />
:: Por exemplo, o seguinte comando define a ''lara'' como membro dos grupos ''users'', ''proxecto1'' e ''proxecto4'' e a elimina de todos os demais grupos:<br />
<source lang="bash"><br />
$ usermod -G users,proxecto1,proxecto4 lara<br />
</source><br />
:: Pero, para cambiar o grupo por defecto dun usuario, empregamos o parámetro '''-g''':<br />
<source lang="bash"><br />
$ usermod -g proxecto2 lara<br />
</source><br />
: - Pódese saber a que grupos pertence actualmente un usuario có comando [http://linuxcommand.org/man_pages/groups1.html groups]:<br />
<source lang="bash"><br />
$ groups lara<br />
</source><br />
: - Para evitar a omisión accidental dun grupo, moitos administradores prefiren modificar o ficheiro '''''/etc/group''''' ou empregar o comando [http://linuxcommand.org/man_pages/gpasswd1.html gpasswd]. De calquera deses xeitos poderanse engadir usuarios a un grupo sen especificar a que grupos existentes pertence xa.<br />
<br />
* '''Uso de ''gpasswd'' '''<br />
: - O comando [http://linuxcommand.org/man_pages/gpasswd1.html gpasswd] é o equivalente a [http://linuxcommand.org/man_pages/passwd1.html passwd] para os grupos. <br />
: - O comando '''''gpasswd''''' tamén lle permite modificar outras características dos grupos e asignar administradores de grupos: usuarios que poden realizar nestes algunhas funcións administrativas propias dos grupos.<br />
: - A sintaxe básica deste comando é a seguinte:<br />
<source lang="bash"><br />
gpasswd [-a usuario] [-d usuario] [-R] [-r] [-A usuario[,...]] [-M usuario[,...]] grupo<br />
</source><br />
: - Engadimos administradores ao grupo có parámetro '''-A usuario'''.<br />
: - Engadimos usuarios ao grupo có parámetro '''-a usuario'''.<br />
: - Se executamos o comando sen mais parámetros que o nome do grupo, '''''gpasswd''''' cambia o contrasinal do grupo. Os contrasinais de grupo permiten controlar quen é membro do grupo, os membros dun grupo poden empregar [http://linuxcommand.org/man_pages/newgrp1.html newgrp] para cambiar o grupo ao que pertencen actualmente, poderán así cambiar de grupo temporalmente e en calquera momento introducindo o contrasinal configurado. Así e todo, '''''newgrp''''' non está correctamente implementado en todas as distribución.<br />
<br />
* '''Modificar directamente os ficheiros de configuración dos grupos:'''<br />
: - A información dos grupos almacénase fundamentalmente no ficheiro '''''/etc/group'''''. <br />
: - Nel teremos unha liña por grupo. Como xa vimos antes, unha liña típica deste ficheiro ten este aspecto:<br />
<source lang="bash"><br />
# Nome do grupo:Contrasinal oculta:GID:Lista de usuarios<br />
project1:x:501:lara,rafa,andrea,daniel<br />
</source><br />
: - Os usuarios tamén poden ser membros dun grupo en base á especificación de grupo primario do seu ficheiro '''''/etc/passwd'''''.<br />
: - Os sistemas con contrasinais ocultas utilizan outro ficheiro, '''''/etc/gshadow''''', para almacenar a información dos contrasinais ocultos dos grupos.<br />
<br />
=== Eliminar grupos ===<br />
* Os grupos se eliminan có comando [http://linuxcommand.org/man_pages/groupdel8.html groupdel], que recibe un único parámetro: o nome do grupo.<br />
:: Vexamos un exemplo no que eliminamos o grupo '''''proxecto3''''':<br />
<source lang="bash"><br />
$ groupdel proxecto3<br />
</source><br />
* Tamén se pode eliminar un grupo editando o ficheiro '''''/etc/group''''' (e '''''/etc/gshadow''''').<br />
:: Como ocorre ao borrar usuarios, o borrado de grupos pode deixar ficheiros orfos no ordenador có comando '''''find'''''. Vexamos un exemplo:<br />
<source lang="bash"><br />
$ find / -gid 503<br />
</source><br />
:: Despois de atopar algún arquivo que pertenza ao grupo borrado o normal é borrar os ficheiros ou asignarlles outro grupo empregando os comandos [http://linuxcommand.org/man_pages/chown1.html chown] ou [http://linuxcommand.org/man_pages/chgrp1.html chgrp].<br />
<br />
== Acceso dos usuarios con privilexios de ''root'' ==<br />
: Ademais de entrar no ''login'' do sistema como ''root'', hai dúas formas de ampliar os privilexios dun usuario e adquirir os de ''root''. <br />
: Para facer isto empregaremos os comandos [http://linuxcommand.org/man_pages/su1.html su] e [http://linuxcommand.org/man_pages/sudo8.html sudo].<br />
<br />
=== O comando ''su'' ===<br />
: O comando [http://linuxcommand.org/man_pages/su1.html su] fai que un usuario que se identificou coa súa propia conta poida cambiar o seu '''uid''' ao de ''root''. <br />
: Por suposto debe saber o ''password'' do ''root''.<br />
<br />
=== O comando ''sudo'' ===<br />
: O comando [http://www.sudo.ws/sudo/sudo.man.html sudo] permítenos executar un comando como outro usuario. Así, neste caso non é necesario coñecer o contrasinal de ''root'' para executar certos comandos de administración.<br />
: A relación de usuarios e comandos permitidos para eles deben de estar no ficheiro '''''/etc/sudoers''''' ([http://www.gratisoft.us/sudo/sudoers.man.html Axuda de sudoers]).<br />
: Por exemplo, para que o usuario '''lara''' poida facer ''shutdown'' do sistema debe existir unha entrada no ficheiro '''''sudoers''''' como:<br />
<source lang="bash"><br />
...<br />
# Cmnd alias specification<br />
Cmnd_Alias SHUTDOWN_CMDS = /sbin/shutdown, /sbin/halt, /sbin/reboot<br />
...<br />
%admin ALL = (ALL) ALL<br />
lara ALL=(ALL) NOPASSWD: SHUTDOWN_CMDS<br />
<br />
</source><br />
Logo "lara" poderá apagar o equipo empregando o comando:<br />
<source lang="bash"><br />
$ sudo shutdown -h now<br />
</source><br />
<br />
Ou reinicialo empregando o comando:<br />
<source lang="bash"><br />
$ sudo shutdown -r now<br />
</source><br />
<br />
{{Alerta|Axuda de ''visudo''|Para modificar o arquivo '''''sudoers''''' hai que empregar a utilidade [http://www.gratisoft.us/sudo/visudo.man.html visudo]. Simplemente con escribir '''''visudo''''' na liña de comandos o arquivo '''''sudoers''''' abrirase para editalo e configuralo.}}<br />
<br />
: En ubuntu, por defecto, todos os usuarios que pertencen ao grupo '''''admin''''' teñen permisos de ''root''.<br />
: A liña que indica iso no arquivo '''''sudoers''''' é a seguinte:<br />
<source lang="bash"><br />
# Members of de admin group may gain root privileges<br />
%admin ALL=(ALL) ALL<br />
</source><br />
Neste caso:<br />
* %admin: grupo que obtén os privilexios. Neste caso o grupo ''admin''.<br />
* ALL: en que equipos. Neste caso en todos.<br />
* (ALL): de que usuarios gaña os privilexios: Neste caso de todos. Este campo é opcional.<br />
* ALL: que comandos pode executar. Neste caso todos.<br />
<br />
Outras accións posibles có comando sudo son as seguintes:<br />
<source lang="bash"><br />
# Descubrir que comandos podemos executar empregando sudo:<br />
$ sudo -l<br />
# Descubrir pode executar un usuario calquera,<br />
# sempre e cando o fagamos dende root ou un usuario con ALL privilexios:<br />
$ sudo -l -U usuario<br />
# Para eliminar as nosas credenciales en sudo:<br />
$ sudo -k<br />
# A seguinte vez que empreguemos sudo nos pedirá outra vez o contrasinal.<br />
# Para executar a Shell como o usuario proba:<br />
$ sudo -u proba<br />
# Para executar a Shell como o usuario proba e ademais configurar este <br />
# tal e como o vería ese usuario (directorio, aparencia...):<br />
$ sudo -u proba -i<br />
# Para executar a Shell como o usuario root:<br />
$ sudo su<br />
# Para executar a Shell como o usuario root e ademais configurar este <br />
# tal e como o vería root (directorio, aparencia...):<br />
$ sudo su -<br />
</source><br />
<br />
<br />
{{Alerta|Sudo gráfico|Non se debe usar '''sudo''' para iniciar aplicacións gráficas como root. No seu lugar débese usar '''gksudo''' ('''kdesudo''' en Kubuntu). O comando '''gksudo''' establece o directorio HOME a /root. Isto evita que se creen ficheiros nos directorios dos usuarios onde o dono é o root.}}</div>Vieites