Em breve, estarei realizando bastante trabalho em PHP e estou interessado em aprender o RoR; por isso, instalei o Linux Mint 12 no meu VirtualBox.
O aspecto mais frustrante do switch, até agora, foi lidar com as permissões do Linux. Parece que não posso fazer nada de útil (por exemplo, copiar o tarball do Symfony2 do meu diretório Downloads para a raiz do meu documento e extraí-lo) sem me apresentar como raiz via sudo.
Existe uma maneira fácil de dizer ao linux para me dar acesso irrestrito a determinados diretórios sem simplesmente abrir todas as suas permissões?
linux
permissions
sudo
Principais Produções
fonte
fonte
Respostas:
Duas opções me vêm à mente:
Possui o diretório que você deseja usando
chown
:(substitua seu_username pelo seu nome de usuário e diretório pelo diretório que você deseja.)
A outra coisa que você pode fazer é trabalhar como root desde que SAIBA O QUE ESTÁ FAZENDO . Para usar o root, faça:
e então você pode fazer qualquer coisa sem precisar digitar
sudo
antes de cada comando.fonte
De um modo geral, sempre trabalhe como seu próprio usuário, a menos que você esteja fazendo algo com impacto em todo o sistema.
Se houver arquivos que você deseja colocar em seu servidor da web, trabalhe como seu próprio usuário e use-o
sudo
para soltar os arquivos na área de serviço da web do seu sistema de arquivos. Normalmente, isso seria executado por um script de instalação e você executaria algo comosudo -u webmaster install-webserver-files
, ou melhorsudo -u webmaster git update
(ou o sistema de controle de versão de sua escolha).Se você estiver trabalhando em um servidor de desenvolvimento e desejar que seus arquivos sejam acessíveis instantaneamente, crie um diretório na área de servidores da Web e torne-o de propriedade ou pelo menos gravável por você. Após essa operação única (
sudo chown …
ousudo -u webmaster setfacl …
), você não precisará de privilégios elevados para as operações diárias.Às vezes, é conveniente permitir que vários usuários gravem em um diretório ou tenham permissões diferentes para vários usuários que não sejam o proprietário ou para vários grupos. As listas de controle de acesso oferecem essa capacidade. Consulte Problemas de permissões para o diretório compartilhado em um servidor ou um problema de permissão de script de backup .
fonte
Sim, faça o login como root, que fornece controle de acesso de superusuário.
Mesmo conceito no Windows, você pode fazer login no seu terminal usando o administrador.
fonte
Sempre foi minha ideologia que, como usuário, você possa fazer o que quiser no Linux e para todo o resto, sempre existe
sudo
.sudo
permite executar poucas coisas como outros usuários, na maioria dos casos comoroot
para administração do sistema.sudo
tem sido um recurso de maior vantagem delegar algumas das minhas tarefas e privilégios de rotina como usuário (raiz) a outros e ajudar a gerenciar melhor meu tempo e outros sem elevar os privilégios para além do necessário. Ao mesmo tempo, é minha confiança neles que mantém suas entradas presentes nosudoers
arquivo de configuração. Não tenho certeza se isso pode estar relacionado, mas o que posso dizer é que, o sudo oferece uma melhor perspectiva de segurança de quem tudo e o que eles podem fazer com seus privilégios confiáveis. Mesmo que algo dê errado, eles permanecem responsáveis. (Eu sempre posso fazer algumas coisas furtivas com informações de log de sudoers para encontrar os culpados também). Meus funcionários sempre expressaram sua preocupação comigo por terem que digitar sudo para tudo o que queriam fazer com privilégios elevados no ambiente Linux. Aqui também encontrei a mesma pergunta.Para ver as soluções e minha busca para encontrar as alternativas, me deparei com Controles de Acesso Baseado em Recursos,
RBAC
mas em uma outra aventuraSolaris
com ferramentas comopfexec
etc. Essa abordagem é mais melhor porque isso manteria os privilégios dos usuários já elevados e confiaria na consciência e atenção do que os administradores de sistemas gostariam de fazer com seus privilégios.Considerando as soluções disponíveis do RBAC e suas implementações no mundo Linux, me deparei com
SELinux http://www.ibm.com/developerworks/linux/library/l-rbac-selinux/
grsecurity http://en.wikipedia.org/wiki/Grsecurity
e, embora existam outras implementações, eu as consideraria na ordem superior da lista. A implementação do RBAC é muito trabalhosa em uma organização, especialmente quando há muitos usuários. O RBAC soaria uma solução maior em ambientes homogêneos. No entanto, quando existem instalações heterogêneas do Unix na rede e o banco de dados do usuário é comum, isso talvez falhe. Como o SELinux não é escalável / implementado no Solaris, as ferramentas RBAC / pfexec não são implementadas no Linux. Existem abordagens diferentes para fazer uma única coisa. Por exemplo: http://blogs.oracle.com/darren/entry/opensolaris_rbac_vs_sudo_howto
Instalações diferentes em toda a rede podem não suportar essa abordagem (no entanto, o openrbac pode ser considerado uma abordagem de implementação comum), pois o sudoers é uma abordagem de host único ou não é capaz de configuração centralizada na rede / domínio.
/etc/sudoers
precisa ser sincronizado sempre que houver uma alteração. No entanto, há um requisito de base de conhecimento ao operar o arquivo sudoers, é necessário entender o idioma da política da configuração do sudoers para não cometer erros e permitir concessões. O RBAC pode oferecer uma abordagem centralizada até certo ponto, enquanto os perfis de segurança podem ser comuns, adicionar / remover um usuário da função concedida pode ser feito em um único local (que é o local onde as informações do usuário / senha / grupo são armazenadas para o domínio como LDAP, NIS ou AD). Isso também implicitamente exigiria a compreensão dos comandos necessários para operar no banco de dados RBAC, como smexec, smmultiuser, sendo poucos.O Sudo pode oferecer uma abordagem mais multiplataforma aqui, ainda que funcione em todas as plataformas similares ao Unix, que oferecem os recursos setuid. Ambos são bem
sudo
-RBAC
sucedidos em conceder aos usuários não-root alguns privilégios que podem ser feitos sem fornecer aroot
senha em si. O Sudo pode oferecer uma abordagem mais refinada / granular nos argumentos da linha de comando que podem ser usados durante a execução dos comandos e restringir-se exclusivamente a qual comando com argumentos pode ser executado com privilégios elevados. Embora o RBAC possa restringir o uso até os comandos ou binários instalados, mas não tem controle sobre os argumentos da linha de comando. A auditoria é muito melhor e integrada ao ambiente RBAC, enquantosudo
, depende da configuração e também das restrições de segurança adotadas (como não conceder o shell e, em particular, os hosts podem fazer login nos outros hosts sem problemas). Essas são apenas algumas das diferenças que eu poderia citar e, pessoalmente, tenho uma tendência a usar o sudo que o RBAC, embora com as limitações mencionadas eu possa vir a implementar algumas soluções alternativas. Até que todos os problemas sejam resolvidos pelo RBAC para melhor vantagem do sudo, não acho que o sudo vá embora, pois é simples.fonte
Eu mostraria a raiz do documento em que você está trabalhando, para que você tenha acesso total a ela.
Para evitar ter que digitar sudo toda vez que você instala uma Gem, siga este artigo aqui: http://forums.site5.com/showthread.php?t=11954
Também recomendo instalar o RVM para gerenciar versões do Ruby e Rails. http://beginrescueend.com/
Isso tornará sua vida muito mais fácil quando você encontrar o host em que deseja implantar seu aplicativo usando versões diferentes das que você desenvolveu.
fonte
Execute o comando
Agora você poderá executar comandos como usuário root. Seja cuidadoso! Qualquer comando executado será como usuário root. Você pode atrapalhar seriamente as coisas se não for cuidadoso.
Ou você altera as permissões do diretório para permitir que seu usuário salve e edite arquivos.
fonte
sudo -s
?sudo -i
como isso simula como shell de login. Pode estar um pouco mais próximo de um login raiz local nativo do que executar o bash ou outro shell via sudo.su
? Qual é essa obsessão pelo sudo? Você não precisa do sudo. Sempre.su
se a senha root for desconhecida. adicionar um usuário aos sudoers e execuçãosudo su
permite ao usuário fazer uso de sua senha de usuário existente e conhecido para escalarEdite o arquivo / etc / passwd e conceda permissões de root ao usuário "yourUserName" alterando os IDs de Usuário e Grupo para UID 0 e GID 0:
yourUserName: 0: 0 :: / home / yourUserName: / bin / sh
fonte
Conforme indicado por outras respostas, a solução mais limpa é alterar a propriedade dos arquivos e diretórios aos quais você precisa acessar. Como alternativa, você pode criar um novo grupo dedicado, alterar a propriedade do grupo dos arquivos e diretórios para esse grupo e definir a permissão de gravação de grupo para esses arquivos e diretórios. Por fim, defina o bit SGID nos diretórios para que, se você criar um novo arquivo, ele herdará a propriedade do grupo no diretório que contém (ou seja, o grupo dedicado).
fonte
usuário @ servidor: ~ $
senha sudo passwd root [sudo] para o usuário:
Digite a nova senha UNIX:
Digite novamente a nova senha UNIX:
passwd: senha atualizada com sucesso
usuário @ servidor: ~ $ su
Senha:
root @ servidor: / home / user #
Esse "#" prompt não é uma coisa bonita?
Eu uso o "sudo" apenas uma vez para obter a capacidade de
usuário @ servidor: ~ $ su
Senha:
root @ servidor: / home / user #
pela vida do servidor.
Para torná-lo seguro novamente,
root @ servidor: / home / usuário # exit
sair
usuário @ servidor: ~ $
Os administradores de sistemas vêm fazendo isso há anos quando o "sudo" não fazia parte da tendência de mollycoddling.
Quando você faz isso, é sua responsabilidade tomar cuidado, não minha.
Ian
fonte
sudo -s
. Trabalho feito