Назад | Перейти на главную страницу

Почему я получаю сообщение об ошибке в разрешении?

Я пытаюсь создать символическую ссылку, но мне отказывают в разрешении. Как мне сказать почему?

ln -nfs /home/deploy/foo/shared/config/nginx.conf /etc/nginx/sites-enabled/foo
ln: failed to create symbolic link `/etc/nginx/sites-enabled/foo': Permission denied

Это содержание моего visudo файл:

# This file is managed by Chef.
# Do NOT modify this file directly.

Defaults      !lecture,tty_tickets,!fqdn

# User privilege specification
root          ALL=(ALL) ALL

deploy ALL=(ALL) ALL

# Members of the group 'sysadmin' may gain root privileges
%sysadmin ALL=(ALL) ALL
# Members of the group 'sysadmins' may gain root privileges
%sysadmins ALL=(ALL) ALL

Я вошел в систему как пользователь с именем deploy, я внутри sysadmins группа.

whoami
deploy

cat /etc/group
deploy:x:1000:
sysadmin:x:2300:deploy

Разрешение на использование sudo не приводит к автоматическому запуску всех ваших команд от имени пользователя root. Это устранило бы все преимущества безопасности, которые дает бот, напрямую использующий учетную запись root.

Вам нужно запустить команду через sudo или изменить разрешения, чтобы ваша учетная запись обычного пользователя могла писать туда.

Как мы обсуждали в комментариях:

Вы должны запустить свой ln команда с использованием sudo :

sudo ln -nfs /home/deploy/foo/shared/config/nginx.conf /etc/nginx/sites-enabled/foo

Теперь, если это невозможно из-за Capistrano 3 (чего я не знаю), вы должны deploy права пользователя на запись в папку /etc/nginx/sites-enabled.