A teoria Linux por trás dos acessos e dos atalhos

Este artigo expõe a teoria de Linux envolvida em algumas ações e comandos rotineiros e muito frequentes, como logar como root ou fazer simples atalhos na área de trabalho.

[ Hits: 48.103 ]

Por: Alberto Federman Neto. em 14/09/2009 | Blog: http://www.angelfire.com/wa/brasbeto/


Introdução



Muitos de nós usamos comandos "su", "sudo" etc em terminais ou fazemos atalhos na Área de Trabalho, no Desktop, automaticamente, quase sem pensar!

Achei que seria interessante, principalmente aos iniciantes, saber quanta teoria existe por trás de um simples atalho, ou de um "su" ou "sudo".

Vejamos, então, alguns detalhes sobre esses comandos básicos muito utilizados.

Comando su

O su é um comando, originário do sistema operacional UNIX, depois transposto também para o Linux.

Ele significa, em Inglês, o que sua abreviatura mostra: "Switch User, isto é, "Substitua Usuário" ou "Troque Usuário".

Segundo alguns autores, em GNU (não em Unix, Linux) o termo seria "Substitute User" e não "Switch User", mas o significado é o mesmo.

Isto é, você, como usuário, vai trocar para outro usuário qualquer, por exemplo:

su gatapinguim

Onde "gatapinguim" é o nome do outro usuário.

Automaticamente ele também pode trocar o identificador (User ID), ou mesmo o grupo de trabalho onde o novo usuário vai atuar.

Alguns poderiam perguntar: "mas se eu uso só o 'su', ele sempre pede a senha do root, por quê?". Isso ocorre porque a opção padrão do "su" é para o root, ou seja:

su

Equivale a:

su root

Quando o "su" é usado de um terminal, de um konsole, dentro de um ambiente gráfico, somente esse terminal e os comandos que serão feitos posteriormente irão pra o root, o sistema continua como usuário comum (geralmente, mas nem sempre, pois isso depende da sua distro e da configuração).

Ao contrário, logando diretamente como root, do bash de comando (fora do X) ou da tela de login, todo o sistema e a sessão terão privilégios de root.

Percebeu intuitivamente, porque se usa "su"?

É preciso cuidado para logar o tempo todo como root, isso não é igual a usar "su". Logado como root o tempo todo você está no grupo root, não é um "root user", mas é um "system root", é diferente!

Ao contrário do Windows, que só tem executáveis e drivers, em Linux, como em UNIX, o sistema é controlado também por arquivos texto e por scripts (inclusive alguns periféricos, como o teclado) e por módulos de kernel.

O sistema precisa, para rodar, editar ou não automaticamente esses arquivos e, para isso, eles são montados na distro com as permissões adequadas.

Você sabia que quando loga na sua internet usando Networkmanager, se necessário, o sistema escreve automaticamente em /etc/resolv.conf?

Pois é, assim como "não escrever", tudo deve ser feito adequadamente e de modo automático. O sistema precisa saber onde escrever ou não.

Logado direto como root todas as permissões são abertas, o sistema pode escrever sozinho, onde quiser. Por isso recomenda-se que mesmo usuários experientes não trabalhem o tempo todo logado como root, é perigoso.

Pode parecer prático em um primeiro momento, mas isso pode danificar o sistema de um jeito que para resolver reinstalar dá menos trabalho. Se for seu Desktop, melhor, porque se for um servidor, você terá que tirá-lo do ar e a bronca do seu chefe é certa! rs

Vimos que pode logar como root no terminal, fazendo "su" e senha de root. Vamos ver outras opções de "su"?

Para juntar o su e já fazer o comando seguinte (o mesmo que faria depois que entrou com a senha) use a opção '-c", é como se fosse fazer "su" e o comando junto (é como se fosse um "su --command"). Ex.:

su -c "apt-get install amsn"

Entra com a senha root e já instala o aMSN, e você pode usar tanto as aspas simples, como as aspas inglesas. Outro exemplo:

su -c 'thunar /home/usuário/Desktop'

Abrirá o gerenciador de arquivos do XFCE, o Thunar, já em modo root, no diretório da Área de Trabalho.

Outro exemplo para acompanhar o que os outros usuários estão fazendo, o administrador Linux pode fazer:

cd /
$ su -c "tail /var/log/messages"


E entrar com a senha de root. Por padrão, sempre o comando "su" pedirá a senha do superusuário, por isso é bastante seguro. Entretanto, uma segurança adicional é "proibir" usuários comuns de executarem "su".

Para isso o root deve editar o arquivo /etc/pam.d/su, depois salvá-lo, dar permissão só ao root e escondê-lo ("hidden"), como no exemplo abaixo:

# If you want to restrict users begin allowed to su even more,
# create /etc/security/suauth.allow (or to that matter) that is only
# writable by root, and add users that are allowed to su to that
# file, one per line.
auth       required     pam_listfile.so item=ruser sense=allow onerr=fail file=/etc/security/suauth.allow

Aqui todos os usuários que forem listados em /etc/security/suauth.allow serão os únicos que executam "su".

Você viu que em Linux o root pode, se quiser, impedir que qualquer outra pessoa use o Linux, exceto ele (o root), não é legal?

Para mais detalhes sobre outras opções menos usadas de "su", veja:
    Próxima página

Páginas do artigo
   1. Introdução
   2. Comandos kdesu, gksu e sux
   3. Comando sudo
   4. Atalhos simples
   5. Atalhos bem configurados
   6. Fazendo atalhos pela linha de comando
   7. Exemplos complementares
Outros artigos deste autor

BOINC - Computação distribuída e aplicações científicas

Regulando o desktop para trabalhar em máxima performance

Como traduzir Software Livre - Um método fácil

Experimento: Transformando openSUSE 12.3 Tumbleweed em 13.2 Factory Milestone 0

Trabalhando com boot duplo ou múltiplo: estação para testes de sistemas operacionais

Leitura recomendada

Introdução ao Linux: Instalação do Xubuntu

Resumo LPI 102: Tópico 108 - Serviços Essenciais do Sistema

Instalação do CentOS 5.3

Linux - Só não usa quem não quer

Guia (nem tanto) Introdutório do Linux II

  
Comentários
[1] Comentário enviado por xerxeslins em 14/09/2009 - 11:55h

Aprendi algumas coisas com esse artigo. Gostei muito das informações, que são básicas, mas nem todos os usuários sabem, principalmente iniciantes como eu.

Parabéns!

[2] Comentário enviado por fêla em 14/09/2009 - 13:53h

Gostei muito do artigo, parabéns!

O autor utilizou de uma linguagem clara e muito bem articulada.

Vou indicar para outros colegas.

[3] Comentário enviado por xerxeslins em 14/09/2009 - 13:55h

Merece ir para a sessão destaque!

[4] Comentário enviado por removido em 14/09/2009 - 15:23h

Artigo muito interessante.

[5] Comentário enviado por pinduvoz em 14/09/2009 - 20:22h

Parabéns, Alberto.

Simples e direto, tal como deve ser um artigo sobre um tema que os usuários iniciantes precisam conhecer.

A mentalidade Windows, ou seja, eu só "presto" sendo o "administrador do sistema", não deve sobreviver no Linux. E seu artigo contribui para que ela não sobreviva.

[6] Comentário enviado por albfneto em 14/09/2009 - 21:20h

Bom , Pinduvoz, eu não comentei sobre isso. Isso até pode ser tema de uma dica ou artigo...
na realidade tem muitos linusers que tb pensam assim, querem logar como root!
olha se vc não vai atualizar seu sistema, instalr coisa etc... vc não precisa usar su nem sudo!
pq vou usar su ou sudo para ler o vol, ou pra navegar, ou pra conversar
no amsn? pq vou arriscar meu sistema?
Windows, o vírus e o malware o estragam o windows....

o linux?
o root pode estraga-lo, o root user, e o system root mais ainda.!..
o usuaŕio comum não... estraga nada!
e o estrago, principalmente do system root, pode ser feio!

quando eu comecei a usar Linux, eu logava como root no gnome do sabayon e do gentoo, até que detonei o Sabayon 6 vezes e o gentoo 8! eu brincava:
seis ESTALAÇÔES de Sabayon e 8 de Gentoo!
Pq linux também se aprende por tentativa e erro! srrsrsrsrs mas se vc precisou reformatar, fazer o que? até pegar o jeito... nunca mais loguei como root direto
Instalo o pacote e já fecho o terminal para matar o processo.

[7] Comentário enviado por gesousa em 15/09/2009 - 00:40h

@albfneto. Parabens pelo artigo.

@Pinduvoz "A mentalidade Windows, ou seja, eu só "presto" sendo o "administrador do sistema", não deve sobreviver no Linux. E seu artigo contribui para que ela não sobreviva."

André, as versões novas do Windows estão tentando imitar o linux no que tange o controle de acesso a usuários, ou você nunca ouviu falar do famigerado uac do vista ??? A grande verdade que ao liberar ou criar a mentalidade "administrador do sistema", ao usuário comum, o windows abriu ou melhor "escancarou" as portas para a instalação de trojan, e de todas a família de ***ware que existe na internet. Pelo simples fato que o usuário normal (leigo) pode ao clicar em um link da internet modificar um arquivo do sistema, sem um simples aviso...

Quando vejo estes semi-analfabetos, que vem do windows, pedir para desabilitar o sudo, lembro de quantas vezes, tive que reconfigurar os computadores de rede pelo simples fato de que alguem inadivertidamente, clicou em um link que não devia...

o Sudo, ou melhor o conceito de acl e estratificação de permissões do sistema linux, é uma ferramenta muito poderosa, que se bem usada pode resolver 90% dos problemas de uma rede.


[8] Comentário enviado por Lisandro em 15/09/2009 - 08:27h

Bem legal.

[9] Comentário enviado por pinduvoz em 15/09/2009 - 20:39h

@ gesousa

Sim, eu conheço o UAC, pois tenho uma máquina comprada com o Vista e outra com o RC do Seven instalado por mim, ambas com a configuração padrão desse recurso.

Mesmo no XP há programas que "imitam" o UAC, avisando sobre alterações no sistema. Um deles, se bem me lembro, é o SpyBot Search & Destroy.

Tenho também máquina com o XP e raramente tenho problemas, exatamente porque o usuário logado automaticamente (forçado) não é o administrador (ou um deles).

Note-se que apesar do UAC ser uma boa iniciativa, há inúmeros usuários que o desabilitam para não serem incomodados com mensagens de aviso. Eles abrem mão de um bom recurso porque estão acostumados com o "jeito" Windows XP de lidar com o sistema, ou seja, "você é o cara, pois é o administrador".

Em suma, não é preciso ser administrador para usar o sistema plenamente, até mesmo no Windows XP. E se a maioria dos usuários soubesse disso, teríamos menos malware sendo espalhado por aí.

[10] Comentário enviado por annakamilla em 04/10/2009 - 20:24h

o andre, no xp tem meios de habilitar permissões, só que na hora de instalar um programa tem jeito de burla-las.

eu mesmo ja consegui instalar um programa sem ser administrador numa máquina que só permite administradores.

é só não instalar ele no diretório onde fica os programas, crie uma pasta e instale naquela pasta.

mas acho que depende do usuário. já faz quase três anos que tenho essa máquina e era raro ter um vírus nela no xp tinha direitos de adm.

e no meu linux ja faz 8 meses que não formato por causa de cagadas.




[11] Comentário enviado por albfneto em 26/07/2010 - 23:41h

ADENDO AO ARTIGO...

1) Como colocar o tipo de sessão na Tela de Login:

Já me perguntaram esses dias, o que faço se não aparecer na tela de login,o outro ambiente gráfico que foi instalado. É simples, faça um arquivo (Atalho, Link Simbólico) com as seguintes linhas abaixo e salve-o como KDE4.desktop , na pasta /usr/share/xsessions.

Esta linhas, são as oficiais do Time do KDE. naturalmente modifique os comandos, nome etc... se for para GNOME ou outro ambiente gráfico, e remova os nomes e comentários que estão em outras línguas que não Português do Brasil.

[Desktop Entry]
Encoding=UTF-8
Type=XSession
Exec=/usr/bin/startkde
TryExec=/usr/bin/startkde
Name=KDE 4.4
Comment=The K Desktop Environment. A powerful Open Source graphical desktop environment
Comment[es]=El Entorno de Escritorio K, un potente entorno de escritorio gráfico realizado de código abierto
Comment[fr]=The K Desktop Environment. Un environnement de bureau graphique, puissant et Open Source
Comment[it]=L'ambiente desktop KDE. Un potente ambiente desktop grafico Open Source
Comment[pt]=O K Desktop Environment. Um ambiente gráfico open source poderoso
Comment[pt_BR]=Acrônimo para K Desktop Environment (ou Ambiente de Trabalho K). Um poderoso ambiente de trabalho gráfico de código aberto
Comment[uk]=The K Desktop Environment.

2) O que fazer se su, sudo, kdesu ou gksu,não funcionarem.

Veja aqui:

http://www.vivaolinux.com.br/dica/Resolvido-su-sudo-kdesu-e-gksu-nao-funcionam

Outra coisa que pode ser.

Certas Distros, como Mandriva, não consideram o uso de sudo seguro, por isso, "fecham" o sudo no Policykit

Isto faz com que ao usar: su e senha, ou sudo, ou kdesu, ou gksu, o aplicativo simplesmente não abra em modo Root!

Pode-se configurar, mas não querendo mexer na config da Distro, tem outro jeito.

Não use su, sudo, kdesu, e nem gksu. Ao invés disso, abra um terminal e use

$ su -

E pronto, o terminal é Root, e vc pode usar Kate, Kwrite etc...


[12] Comentário enviado por tatuiano em 11/05/2011 - 23:43h

e só agora achei esse artigo....
mesmo assim ta nos favoritos e nota 10.

[13] Comentário enviado por matiasalexsandro em 24/05/2012 - 11:52h

na primeira página em :

junto (é como se fosse um "su --command"). Ex.:

$ su -c "apt-get install amsn"

Entra com a senha root e já instala o aMSN, e você pode usar tanto as aspas simples, como as aspas inglesas. Outro exemplo:

$ su -c 'thunar /home/usuário/Desktop'

Abrirá o gerenciador de arquivos do XFCE, o Thunar, já em modo root, no diretório da Área de Trabalho.


poderia ser feito

$ sudo ; nautilus /home/usuario/Desktop ???

ou

$ sudo && nautilus /home/usuario/Desktop ???


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor HostGator.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Viva o Android

Tópicos

Top 10 do mês

Scripts