Por que eu tenho que sudo para fazer qualquer coisa fora do meu diretório / home?

2

Acabei de instalar meu primeiro desktop Linux (Ubuntu 12.04 de 64 bits) e estou brincando com ele:

myUser@myMachine:~$ cd /opt/
myUser@myMachine:/opt$ mkdir lemmiwinks
mkdir: cannot create directory 'lemmiwinks': Permission denied
myUser@myMachine:/opt$

Isso funciona se eu tentar primeiro sudo como root:

myUser@myMachine:/opt$ sudo mkdir lemmiwinks
[sudo] password for myUser: 
myUser@myMachine:/opt$ ls
lemmiwinks
myUser@myMachine:/opt$ 

O que está acontecendo aqui? Por que preciso sudo para obter acesso a /opt (ou qualquer outro diretório que não seja /home/myUser ?

Como faço para criar e conceder permissões a novos usuários que podem acessar /opt ? Posso fazer isso por myUser também? Obrigado antecipadamente!

    
por pnongrata 13.04.2013 / 23:01

4 respostas

6

O diretório / opt é provavelmente de propriedade do root, que é o superusuário no sistema. No meu sistema linux ubuntu, que será muito parecido com o seu, é assim quando faço uma lista longa para / opt como um usuário não-root:

~ $ ls -l /|grep opt
drwxr-xr-x   8 root root  4096 Jan  6  2012 opt

As permissões do Linux têm, em geral, três categorias de permissões: para o proprietário, um grupo de outras pessoas que também têm permissões especiais para esse diretório / arquivo e, por último, todos os outros.

primeira seção da listagem acima de 'drwxr-xr-x' mostra as permissões, então a 'raiz raiz' mostra o dono (root) e o grupo (root), então um tamanho e data, seguido do nome (opt)

de que o drwxr-xr-x mostra primeiro o tipo de recurso, neste caso, 'd' para o diretório, em seguida, leia | escreva | execute (rwx) permissões para cada proprietário, grupo e outros nessa ordem. / p>

Portanto, neste caso, o proprietário (root) leu, escreveu e executou permissões em / opt, mas os membros do grupo (root) têm apenas permissões de leitura e execução, como os outros.

É que não há permissões de gravação para o grupo e outros (a parte r-xr-x) que impedem que você execute como 'myUser' de criar um novo diretório em / opt

/ opt geralmente é um lugar onde softwares de terceiros são instalados, por isso não está claro por que você gostaria que novos usuários pudessem gravar em / opt, pois poderiam, por exemplo, modificar outros softwares em /opt.

Todos os usuários podem, por padrão, receber permissões de r-x para todos em / opt, como mostrado, acessar / optar e ler, mas não gravar nele.

No entanto, se você realmente quiser que "novos usuários" possam escrever em / opt, você tem pelo menos duas opções:

  • você pode alterar as permissões de todos em / opt para rwx (não é aconselhável); ou
  • você pode alterar a propriedade do grupo de / opt para algo assim, diga "optgroup" e torne as permissões de grupo rwx (deixando todos os demais em r-x) e adicione seus novos usuários ao grupo "optgroup" que você criou;

Seja muito cauteloso sobre conceder permissões a novos usuários para lugares que eles não deveriam poder alterar.

Leia mais sobre as permissões de arquivos do Linux em http://www.tuxfiles.org/linuxhelp/filepermissions.html

    
por 14.04.2013 / 00:10
5

sudo é basicamente o mesmo que clicar em OK no Windows 7 ou no UAC do Vista. Você está concedendo a si mesmo sob demanda.

Para conceder a outros usuários acesso às pastas (editar, criar etc), basta fornecer o nível de acesso que você deseja ter, ou admin também. O terá que sudo também.

Você pode desativar o sudo, sempre executando como um usuário elevado, mas isso não é recomendado. Parte da segurança do Linux, OS X e Windows 6+ é que você nunca deve estar executando como administrador, quando você recebe um prompt de elevação, você deve saber que você solicitou a operação e depois aprovar ou negar em conformidade. Sem isso, você pode ter uma instalação de software estranha ou em execução sem sua permissão ou conhecimento explícito. Essa pode ser a forma de malware, um vírus ou apenas um plug-in para palavras ou seu navegador que você não deseja executar ou instalar. Além disso, uma vez que algo tenha encontrado uma maneira de executar em um sistema sem permissão expressa, alguns malwares podem usar essas informações de baixo nível para escalonar a si mesmo ou outro software. Hacking por engenharia social, por exemplo, pode começar nesse nível de acesso.

Além disso, o Windows é o mesmo, por padrão, você tem acesso total a% UserProfile% *, mas não a outro usuário ou à raiz de C: \ sem elevar e permitir a operação.

    
por 13.04.2013 / 23:10
2

Você tem que ser root (superusuário) para mexer com arquivos e pastas do sistema da mesma maneira que você tem que dar permissões administrativas para fazer o mesmo no Windows. sudo significa superuser do , mas você pode su usar o terminal (e todo programa iniciado a partir dele) como root, assim você não precisa digitar sudo antes de cada comando de alto nível. exit para voltar para myUser . Não tenho certeza sobre sua distro, mas no Debian também existe um terminal raiz, que, para seus propósitos e finalidades, tem o mesmo efeito de usar su .

É assim que as coisas funcionam. O Linux sempre foi feito para ser um sistema multiusuário, então você pode pensar nisso como uma conseqüência disso, mas também é para o seu próprio bem, já que usar uma conta root para fazer coisas do dia a dia pode end up mal .

    
por 13.04.2013 / 23:14
1

Alguma cor:

O sistema de arquivos /opt/ é geralmente usado para pacotes de terceiros. Um pacote completo está instalado em /opt/packagename ou o que for. Isso é um pouco diferente de, digamos, / usr ou / usr / local, onde vários arquivos são mesclados.

Então, por que /opt/ está bloqueado? Em geral, as áreas binárias compartilhadas são bloqueadas. Se eu odeio Bob, eu não quero instalar um pacote 'oficial' que apaga o seu diretório pessoal.

O outro motivo é o espaço em disco. Se eu sou um administrador de sistema, não quero ninguém instalando coisas que possam quebrar meu computador. Você confia em todos que podem escrever em /opt que não quebrarão outras coisas? Os usuários podem escrever muito e estourar a partição / opt? Ou até excluir acidentalmente outros arquivos e violar outros aplicativos?

Se você quiser dar às pessoas acesso a /opt , eu criaria um grupo UNIX, Idunno optadm ou qualquer outra coisa, e faria com que o grupo permanecesse no / opt, então fornecesse usuários específicos nesse grupo se você confiasse neles molhar muito. Além disso, certifique-se de que /opt esteja em sua própria partição. Você não quer que uma pessoa jogando em / opt faça com que você quebre outras partes do sistema porque eles estavam instalando algum jogo.

    
por 14.04.2013 / 07:07