Como verificar se está rodando como root? Não pedindo sudo

5

Eu sou um novo usuário do Ubuntu e ainda estou me acostumando com o sistema operacional. Eu tenho usado principalmente para testes locais de um site que estou desenvolvendo. Eu baixei a pilha LAMP para isso.

Quando baixei o Ubuntu pela primeira vez, sempre que eu editava os arquivos que estava desenvolvendo, eu precisava inserir sudo nano filename . Não era assim para arquivos no meu diretório pessoal, apenas para arquivos em que eu estava testando.

Quando entrei hoje, não precisei inserir sudo , consegui inserir nano filename e editar os arquivos. Não tenho certeza se de alguma forma eu desabilitei a necessidade de uma sudo senha, o que eu não gostaria de fazer.

Corri grep root /etc/passwd then grep root /etc/shadow , que negou acesso sem inserir sudo . Quando o fiz, root:! mostrou. Pelo que li, isso significa que a conta está desativada.

Não sei se isso significa que desativei a senha ou se a conta está bloqueada e tudo está em ordem.

Existe uma maneira de me certificar de que não estou executando como root e, se atualmente sou como desabilitá-lo, então estou executando apenas como administrador.

Além disso, por que a senha sudo parou de ser inserida para editar meus arquivos?

Obrigado pelas suas respostas, se a minha pergunta não for clara, informe-nos para que eu possa tentar esclarecer.

    
por Chris 20.11.2015 / 05:46

4 respostas

10

Se você estiver usando o bash (o padrão), seu prompt dirá se você está agindo como root. Se terminar em ' $ ', você está sendo executado como um usuário normal. Se terminar em ' # ', você está executando como root.

Além disso,

whoami

mostrará quem você é.

Se você puder editar de repente arquivos que costumavam exigir acesso ao sudo, minha primeira suspeita seria de que, de alguma forma, você conseguiu alterar as permissões em um arquivo. Se você digitar:

ls -l <filename>

e examine os resultados, as seções rwx mostram permissões.

-rw-rw-r--  1 user user     77338 Oct 21 17:59 filename.odt
|\ /\ /\ /
| |  |  +-- permissions for "other": every user on the system.
| |  +----- permissions for "group"
| +-------- permissions for "owner"
+---------- filetype (- is regular file)

Se você pertencer a um grupo que tenha permissões de gravação ou se "outro" tiver permissões de gravação, não será necessário o acesso do sudo para gravar no arquivo.

Você pode ler uma introdução às permissões do linux para obter mais detalhes sobre o arquivo permissões.

    
por goofdad 20.11.2015 / 06:11
4

Você só precisa usar o root para editar arquivos de propriedade do root ou de outros usuários. Qualquer arquivo que você crie ou possua pode ser editado por você sem usar o root .

Por exemplo execute os seguintes comandos

cd $HOME
touch test.txt
nano test.txt

Os comandos acima navegaram para o seu diretório pessoal (sua área pessoal), criaram um arquivo chamado test.txt e, em seguida, inseriram o arquivo usando um editor chamado nano.

Agora, se você tentar:

nano /etc/apt/sources.list

Você deve conseguir ver o arquivo, mas receber um aviso dizendo que não pode editar o arquivo.

Issoocorreporque,emboraoarquivonãosejadesuapropriedade,oarquivotemacessodeleituraparatodos.Issopodesermostradonafiguraabaixo:

ParavisualizarfacilmenteaspermissõesnoUbuntu,bastadigitar:

ll/path/to/parent/directory

oualternativamenteparaoutrossistemascomoodebian

ls-al/path/to/directory

Existemmuitostutoriaison-lineexcelentesparalersobrepermissõesdeusuário, como isso , que eu recomendo ler. Eu muitas vezes vejo pessoas fazendo coisas bobas como setar tudo em / var / www para 777 para fazer com que seu servidor funcione, porque eles não entendem as permissões do Linux e, portanto, seus servidores são menos seguros.

I am a new ubuntu user...

Boa sorte e bem vindo ao Linux! Espalhe a palavra.

    
por Programster 20.11.2015 / 06:02
3

Para mostrar detalhadamente "quem você é", você pode usar o comando id :

$ id
uid=1000(alphawolf) gid=1000(alphawolf) groups=1000(alphawolf),4(adm),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),107(netdev),113(lpadmin),128(sambashare),132(wireshark),2000(humans-bc-aw)

Como você pode ver, dependendo da sua conta, a saída pode ficar muito longa.

  • Ele não exibe apenas seu nome de usuário e ID " uid=1000(alphawolf) ",
  • , mas também o nome e o ID do seu grupo principal " gid=1000(alphawolf) "
  • e nomes e IDs de todos os outros grupos dos quais sua conta é membro. Essa lista, por padrão, contém apenas o grupo principal, se você for um usuário normal / restrito, e uma lista maior contendo pelo menos adm e sudo , se você for um usuário administrador.

    groups=1000(alphawolf),4(adm),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),107(netdev),113(lpadmin),128(sambashare),132(wireshark),2000(humans-bc-aw)
    

Agora, como podemos determinar nossas permissões em um arquivo com essas informações?

Pegamos a saída de ls -l /path/to/file-or-directory , como por exemplo:

$ ls -l /usr/bin/dumpcap
-rwxr-xr-- 1 root wireshark 85632 Aug 16 01:43 /usr/bin/dumpcap*

Este arquivo é um executável usado pelo Wireshark para capturar pacotes de rede com privilégios elevados. Eu escolhi por causa das diferentes permissões de proprietário e grupo.
Vamos ver os detalhes importantes:

  • Proprietário: root
    Este é o usuário que possui o arquivo.

  • Grupo: wireshark Este é o grupo de usuários ao qual este arquivo está atribuído.

  • Sequência de permissões: -rwxr-xr-- Essas são as permissões de arquivo para os membros , grupo e todos os outros, conforme descrito abaixo:

    - rwx r-x r--
    | \ / \ / \ /
    |  V   V   V
    |  |   |    \__ Other permissions: [r] 'r'ead access granted
    |  |   |                           [-] 'w'rite access denied
    |  |   |                           [-] e'x'ecuting denied
    |  |    \__ Group permissions: [r] 'r'ead access granted
    |  |                           [-] 'w'rite access denied
    |  |                           [x] e'x'ecuting granted
    |  \__ Owner permissions: [r] 'r'ead access granted
    |                         [w] 'w'rite access granted
    |                         [x] e'x'ecuting granted
    \__ File type: [-] normal file 
                       (alternatives: 'd'irectory, sym'l'ink,
                       'c'haracter device, 'b'lock device, ...)
    

Agora, o que meu usuário alphawolf com a saída id acima pode fazer com esse arquivo?

  • Eu sou não o usuário root que tem permissões r ead, w rite e e x ecute completas.
  • Mas Eu sou membro do grupo wireshark , portanto tenho as permissões definidas para o grupo do arquivo: Eu posso r ler o arquivo e e x ecute, mas não modificá-lo ( não w rite access).
  • Outros poderiam apenas r ler o arquivo, mas nem w rito a ele nem e x ecute.

Isso ajudará você a determinar suas permissões em diferentes arquivos do sistema.

    
por Byte Commander 20.11.2015 / 11:36
1

Na maioria dos shells isso é possível

if [ $USER = root ] ; then echo Im root; fi

Bash também suporta isso

if [ $UID = 0 ] ; then echo Im root; fi
    
por Kjeld Flarup 23.08.2018 / 22:44