为什么我收到权限被拒绝错误?

为什么我收到权限被拒绝错误?

我正在尝试创建符号链接,但权限被拒绝。我该如何找出原因?

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

答案1

正如我们在评论中讨论的那样:

您应该ln使用以下命令运行命令sudo

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

现在,如果由于 Capistrano 3(我不知道)而无法做到这一点,那么您必须授予您的deploy用户对文件夹的写权限/etc/nginx/sites-enabled

答案2

拥有使用 sudo 的权限并不会自动以 root 身份运行所有命令。这会消除直接使用 root 帐户的机器人的所有安全优势。

您需要通过 sudo 运行该命令,或者更改权限以便您的常规用户帐户可以在那里写入。

相关内容