Erro do Bower: bower ESUDO Não pode ser executado com o sudo?

0

Estou no Ubuntu 17.04. Não tenho certeza se tenho o bower instalado ou não:

$ sudo npm install -g bower

/usr/bin/bower -> /usr/lib/node_modules/bower/bin/bower
/usr/lib
└── [email protected] 

Quando tento verificar e recebo erros:

$ bower -V
bower ESUDO         Cannot be run with sudo

Additional error details:                                                                                                                                                         
Since bower is a user command, there is no need to execute it with superuser permissions.
If you're having permission errors when using bower without sudo, please spend a few minutes learning more about how your system should work and make any necessary repairs.

http://www.joyent.com/blog/installing-node-and-npm
https://gist.github.com/isaacs/579814

You can however run a command with sudo using --allow-root option

Stack trace:
Error: Cannot be run with sudo
    at createError (/usr/lib/node_modules/bower/lib/util/createError.js:4:15)
    at rootCheck (/usr/lib/node_modules/bower/lib/util/rootCheck.js:26:24)
    at Object.<anonymous> (/usr/lib/node_modules/bower/lib/bin/bower.js:33:1)
    at Module._compile (module.js:571:32)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:488:32)
    at tryModuleLoad (module.js:447:12)
    at Function.Module._load (module.js:439:3)
    at Module.require (module.js:498:17)
    at require (internal/module.js:20:19)

Console trace:
Error
    at StandardRenderer.error (/usr/lib/node_modules/bower/lib/renderers/StandardRenderer.js:81:37)
    at rootCheck (/usr/lib/node_modules/bower/lib/util/rootCheck.js:26:18)
    at Object.<anonymous> (/usr/lib/node_modules/bower/lib/bin/bower.js:33:1)
    at Module._compile (module.js:571:32)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:488:32)
    at tryModuleLoad (module.js:447:12)
    at Function.Module._load (module.js:439:3)
    at Module.require (module.js:498:17)
    at require (internal/module.js:20:19)
System info:
Bower version: 1.8.0
Node version: 7.10.0
OS: Linux 4.9.15-x86_64-linode81 x64

Quando tento instalar pacotes com o meu programa, também recebo erros:

[localhost] local: bower install
bower ESUDO         Cannot be run with sudo

Additional error details:                                                                                                                                                         
Since bower is a user command, there is no need to execute it with superuser permissions.
If you're having permission errors when using bower without sudo, please spend a few minutes learning more about how your system should work and make any necessary repairs.

http://www.joyent.com/blog/installing-node-and-npm
https://gist.github.com/isaacs/579814

You can however run a command with sudo using --allow-root option

Fatal error: local() encountered an error (return code 1) while executing 'bower install'

Aborting.

Alguma idéia de como posso corrigir isso?

    
por laukok 18.05.2017 / 15:50

1 resposta

2

Parece que você está executando bower como root ou com sudo , o que você não deve fazer. Ele deve ser executado apenas com privilégios de usuário restritos e contém uma verificação de segurança para abortar se ele for executado com direitos de root.

Isso é implementado por razões de segurança, porque o bower baixará e executará código não confiável para fazer seu trabalho. Isso definitivamente não deve ser feito como root por vários motivos, especialmente em um servidor de produção.

Como a mensagem de erro sugeriu, há uma opção --allow-root para substituir a verificação de segurança e executá-la mesmo que você seja root.

No entanto, o caminho ideal e seguro a seguir seria criar uma conta de usuário separada com privilégios limitados e usá-la em vez de fazer tudo como root, o que não inclui apenas bower .

    
por Byte Commander 18.05.2017 / 16:28