http://www.zago.eti.br/sudo.txt FAQ, dicas e indicação de tutoriais relacionados ao sudo, sudo serve pra dar permissão a usuário comun executar programas com poderes de root, usuário comum executar programas exclusivos do root ou que requer poderes de root. Use CTRL+F para refinar a pesquisa. Linha de: **************** separa mensagens ou tópicos. ******************************************************** Zago http://www.zago.eti.br/menu.html FAQ e artigos sobre Linux *************************************************** http://www.conectiva.com.br/cpub/pt/incConectiva/suporte/pr/sistema.gerenc.sudo.html http://www.conectiva.com.br/cpub/pt/incConectiva/suporte/pr/sistema.gerenc.sudo.html#SISTEMA.GERENC.SUDO http://geocities.yahoo.com.br/cesarakg/sudo.html tutorial em portugues. *************************************************** GKSU Este aplicativo ou biblioteca, é uma boa opção pra chamar pacotes como outro usuário, ou usuário comum executar programas como root. http://www.nongnu.org/gksu/ http://people.debian.org/~kov/ http://beterraba.no-ip.org/gksu/?M=A *************************************************** para transformar em super usuário use $ su ou $ su - com - os comandos funciona como se tivesse logado como root. sem o sinal (-) não pega o path do root. ou $ su -c "nome_do_comando" após o comando será solicitada a senha de root. O uso do "su -" carrega o ambiente do usuário root que inclui suas variáveis, seu .bash_history, path e etcc. funciona como se tivesse efetuado o login inicial como root, quando executar "su" sem o "-" estas facilidades não são incluidas. veja mais sobre o sudo no manual: man sudoers Pacotes: [root@faqcl10 root]# man sudoers [root@faqcl10 root]# apt-cache search sudo sudo-doc - Documentação adicional sobre o sudo sudo - Permite que usuários específicos executem comandos como se fossem o root Pra instalar: apt-get install sudo *************************************************** Executar como root. Para usuario comum executar um comando ou programa como root, execute: chmod +s assim qualquer usuário do sistema executa o comando. *************************************************** > preciso executar atraver de um usuario nao root > o comando ncpmount Use o SUDO. Para dar permissão de superusuário a um user comum, entre numa shell de root e digite: # visudo Este programa abrirá uma interface VIM para editar o arquivo /etc/sudoers. Basta inserir a seguinte linha no mesmo: login_do_user ALL=(ALL) NOPASSWD:ALL Isso libera todos os comandos para o usuário. Se quiser apenas o npcmount, use: login_do_user NPC = NOPASSWD: /usr/bin/npcmount Me corrijam se essa segunda entrada estiver errada! Salve o arquivo :wq Saia da shell do root, efetue login como o usuário desejado e: $ sudo npcmount ... Note que a entrada sudo precederá o comando a ser executado com permissões de root pelo usuário. *************************************************** *************************************************** Segue alguma coisa mais ou menos... crie um arquivo /bin/ppp com permissão de execucao... #!/bin/sh /etc/sysconfig/network-scripts/ifup-ppp daemon ifcfg-ppp0& e o arquivo /etc/sudoers User_Alias USUARIOS=pedro, joao, manoel # Cmnd alias specification Cmnd_Alias PPP=/bin/ppp # User privilege specification root ALL=(ALL) ALL USUARIOS ALL=(ALL) NOPASSWD: PPP *************************************************** > Galera! Fiz o q vcs me dissseram! > Coloquei meus usuários no grupo tty (...) Acontece q eu preciso setar > o suid para o /usr/sbin/pppd (chmod u+s pppd), e consigo, porém após > algum tempo o arquivo pppd volta a suas permissões originais. Ai! vou te dar uma solução mais prática: use o "sudo" para chamar o programa que vai discar e estabelecer a conexão. Você não precisa ficar fazendo estas maluquices de criar um grupo, setar os direitos daquele grupo, dizer que o grupo pode rodar o programa e depois ter de arrumar pois ele misteriosamente mudou. Sinceramente te ensinaram a quebrar nozes com um teclado. :) O "sudo" serve para você executar programas como se fosse o root, como ele você não precisa contar pra todo mundo qual a conta do root (no caso do "su") e claro, só precisa dizer que os usuários só podem rodar os programas A, B ou C. Fora que se amanhã você precisar liberar mais um outro serviço para os usuários (sei lá! jogar Heretic) basta editar o /etc/sudoers e pronto! :) > Aconteceu uma coisa estranha comigo, estava conectado como user comum > e o modem desconectou sozinho e recebi a famosa msg: "O serviço pppd > terminou inesperadamente". Por que isso ocorre? como resolver esse > problema? *************************************************** > > Bom... sei que a pergunta e besta, mais... alguem poderia me dizer o que > significa dar permissao de "suid" a um arquivo e como posso fazer? Normalmente os programas são executados com a UID do usuário. Sempre que o programa for acessar um recurso do sistema, ele informa a UID do usuário e o sistema verifica se o usuário em questão tem permissão para acessar o recurso em questão. Entretanto, alguns programas que os usuários comuns utilizam necessitam de acessar alguns recursos para os quais é necessário ter nível de administrador (superusuário) para acessar o mesmo. Qual a solução? Uma delas é dar poderes de superusuário para todos os que precisam acessar o recurso em questão, mas isto é muito perigoso. A alternativa encontrada foi o SUID. Programas SUID (ou SGID), quando executados, recebem o UID não do usuário que chamou o programa, mas o UID do dono (owner) do programa. Desta forma, para um programa acessar um determinado recurso, tudo o que se precisa fazer é tornar o mesmo SUID e garantir que o mesmo seja de um usuário com poderes para acessar o recurso em questão (geralmente o superusuário). O problema maior dos arquivos SUID é que alguns desenvolvedores abusam do recurso sem necessidade alguma, gerando vulnerabilidades potenciais - boa parte dos 'exploits' para Unix consiste em causar um 'buffer overflow' ou 'buffer overrun' em um programa SUID, o que vai fazer com que o programa aborte e retorne um shell com poderes de superusuário... A propósito, SUID significa "Set User ID" e SGID "Set Group ID" (a não ser que eu esteja completamente enganado). Maiores informações você encontra na página man do chmod, e também na página info do mesmo. a informação do 'info' é que significa 'set user id'. Até porquê, um programa pode receber suid para outro usuário, que não o superusuário. Por exemplo, se eu conseguir rodar um programa seu com o bit suid, vou poder fazer o que você faz... *************************************************** > Bom... sei que a pergunta e besta, mais... alguem poderia me dizer o que > significa dar permissao de "suid" a um arquivo e como posso fazer? > > Andre de Sales Andrade Medeiros Dar permissão suid, significa que todo usuário que executar esse arquivo, estará executando com permissão de root. Como fazer? #chmod +s nome_do_arquivo *************************************************** : : Gostaria de saber se alguém pode me dizer resumidamente como : utilizar o sudo. Eu li as man pages mas não entendi como : funciona o arquivo sudoers (sintaxe, formato, etc) e também : se alguém puder me indicar alguma documentação "entendivel", : eu agradeço...Ah, um exemplo que eu queria fazer era usar o : sudo para permitir usuários de executar pppd. : Muito Obrigado. Olá Alex, O sudo serve para que voce permita que usuarios comuns executem algum comando permitido apenas para o root. É melhor do que usar o su, pois o usuário não precisa saber a senha do root. Voce deve editar o arquivo /etc/sudoers, para definir quais comandos serão permitidos para o usuario. Segue um exemplo do /etc/sudoers, para permitir ao usuário joao executar o shutdown: # sudoers file. # # This file MUST be edited with the 'visudo' command as root. # # See the man page for the details on how to write a sudoers file. # # Host alias specification # User alias specification # Cmnd alias specification Cmnd_Alias JOAO=/usr/bin/shutdown --> aqui defini o grupo de comandos JOAO. É importante definir o path completo. # User privilege specification joao ALL=JOAO --> usuario marcelo pode executar o grupo de comandos JOAO root ALL=(ALL) ALL --> root pode tudo Por esse exemplo, o usuario joao digita: sudo shutdown -h now entra com a senha de joao e executa o shutdown. ok? *************************************************** De: João Paulo Rojas Vidal Para: linux-br@bazar.conectiva.com.br Assunto: (linux-br) sudo com permissoes demais ! [SERIA FALHA ? ] Data: 05 Dec 2002 13:46:58 -0300 Oi gente! Eu criei uma conta para meu filho e deixei ele como "sudoer". Eu nao queria dizer a senha do root para ele, mas queria que ele pudesse instalar coisas, alterar arquivos de configuração dessas coisas, enfim. Voces acreditam que o danado executou #sudo su - obteve um shell de root sem saber a senha e veio todo contente tirar um sarro de mim? Então: tem jeito de fazer um "sudoer" com plenos poderes porem SEM poder rodar o "su". E tem jeito de fazer um "sudoer" que possa usar o vi como root, mas sem poder editar arquivos de determinado diretorio (por exemplo o "etc") ? *************************************************** Li no FAQ q se editar o arquivo "/etc/sudoers" colocando a seguinte linha: "USER" ALL=(ALL) NOPASSWD:ALL Isso liberaria todos os comandos para o usuário, certo? Bom com todos os comandos liberados, em termos de segurança externa, qual seria a diferença deste usuário p/ o root? De:  Jorge Godoy Para:  Denizard Terenzzo Cc:  linux-br@bazar2.conectiva.com.br Assunto:  Re: (linux-br)Sudo Data:  Sat, 20 Sep 2003 09:10:14 -0300 "Denizard Terenzzo" writes: > Bom com todos os comandos liberados, em termos de segurança externa, qual > seria a diferença deste usuário p/ o root? Exceto pelo log dos comandos e pela necessidade de usar o 'sudo', nenhuma. -- Godoy.     *************************************************** De:  Douglas Santos Para:  linux-br@bazar2.conectiva.com.br Assunto:  Re: (linux-br)dar sudo a usuario Data:  Sun, 20 Jun 2004 09:34:23 -0300 On Sat, 2004-06-19 at 14:31, Vagner Schoaba wrote: > como eu faco para que um determinado usario tem previlegios de ROOT (sudo). > Como habilito o sudo para este usuario? Edite o /etc/sudoers Pode-se fazer isso com o visudo. # Permite todos os usuarios do grupo wheel sem senha %wheel  ALL=(ALL)       NOPASSWD: ALL Basta agora adicionar o usuario no grupo wheel, e usar sudo + comando. Exemplo: sudo bash *************************************************** De: hamacker Para: Fernando Gesualdi Reiff , linux-br@bazar2.conectiva.com.br Assunto: Re: (linux-br)smb4-cl10 Data: Tue, 01 Feb 2005 13:42:18 -0200 Existe uma tendencia em algumas distros em acabar com o SUID/root em alguns aplicativos por questoes de segurança, então voce pode usar o sudo que é mais simples, menos doloroso e mais seguro e tambem voce poderá especificar que programa o usuario pode (ou nao pode) executar. #apt-get install sudo Se seu micro for pessoal, voce pode ate arriscar colocar no /etc/sudoers : usuario ALL=(ALL) NOPASSWD: ALL E vai executar o que quiser, ou se for especificamente para smbmount e seus utilitarios : usuario ALL=(ALL) NOPASSWD: /usr/bin/smbmount usuario ALL=(ALL) NOPASSWD: /usr/bin/smbmnt usuario ALL=(ALL) NOPASSWD: /usr/bin/smbqualcoisa1 usuario ALL=(ALL) NOPASSWD: /usr/bin/smbqualcoisa2 só que ao executar algo vai ter que colocar "sudo" na frente do comando : sudo smbmount //servidor/compartilhamento /mnt/pasta -o username=usuario []'s inte+ Fernando Gesualdi Reiff escreveu: > Com o CL10 e usando o smb4 não consigo montar uma estaçõa win como usuário. > No fedora e debian-br-cdd uso o mesmo tranquilo. > > Tem alguma configuração especial a fazer. *************************************************** ***************************************************