Я только что получил новый macbook и установил node.js, используя официальный установщик.

По какой-то причине я могу запускать только node.js с использованием sudo node а не только node . Я дважды проверил $ PATH и там есть путь к узлу.

nikke at Nicks-MacBook-Pro in ~
$ node
-bash: node: command not found
nikke at Nicks-MacBook-Pro in ~
$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/Users/nikke/.rvm/bin
nikke at Nicks-MacBook-Pro in ~
$ /usr/local/bin/node -v
-bash: /usr/local/bin/node: Permission denied
nikke at Nicks-MacBook-Pro in ~
$ sudo /usr/local/bin/node -v
v0.10.12

У моего коллеги тот же компьютер, и он может нормально работать с узлом без необходимости использовать sudo. Это нормально? Что я мог сделать не так? Установщик ничего не сказал о необходимости делать sudo.

У меня также есть эта проблема с git, например, выполнение git commit также говорит, что Permission denied .

2 ответа2

1

Этот феномен состоит из двух частей: i> местоположение или ii> характер файла, может потребовать от вас входа в систему в качестве администратора, поскольку это может действовать как средство дестабилизации системы, или вы просто НЕ можете иметь требуемый разрешения на выполнение файла.

Что касается работы на компьютере коллеги, это может быть связано с изменением вышеупомянутых факторов.

Попробуйте изменить разрешение файла (для которого вам могут снова понадобиться права администратора). Если возможно, вы также можете попробовать выполнить его в отдельном месте. Sudo отлично справляется со своей работой, повышая свою позицию администратора ОС (который обладает необходимыми правами). Это одна из многих проверок безопасности, встроенных в операционную систему, для предотвращения случайного изменения / повреждения системы.

IMP: В выбранном вами месте находятся важные системные файлы, которые пользователь не имеет права редактировать.

Кроме того, ваш друг ранее входил в систему как суперпользователь, используя

су

??

Если это так, то он уже вошел в систему как суперпользователь и не должен входить снова. Привилегии пользователя root указаны символом # в конце приглашения вместо $.

0

Вероятно, потому, что программе /usr /local /bin /node запрещено запускать "обычные" пользователи. Вы, очевидно, должны быть пользователем root, чтобы запустить его. Вот почему sudo необходимо.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .