Permissions

為什麼我收到權限被拒絕錯誤?

  • April 11, 2014

我正在嘗試創建一個符號連結,但我的權限被拒絕。我怎麼知道為什麼?

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

正如我們在評論中討論的那樣:

您應該ln使用以下命令執行命令sudo

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

現在,如果由於 Capistrano 3(我不知道)而無法做到這一點,則您必須授予deploy使用者對文件夾的寫入權限/etc/nginx/sites-enabled

擁有使用 sudo 的權限不會自動以 root 身份執行所有命令。這將消除 bot 直接使用 root 帳戶的所有安全優勢。

您需要通過 sudo 執行命令,或更改權限,以便您的普通使用者帳戶可以在那裡寫入。

引用自:https://serverfault.com/questions/588462