sudo、root 与最小权限

sudo 做了什么

sudo command 以被授权身份执行一个命令,通常是 root。root 几乎可以绕过文件权限,因此“权限问题加 sudo”可能把一个小错误升级为系统事故。

sudo -l
sudo -k

sudo -i 会进入 root 登录 Shell。它会弱化“每条高权限命令都显式可见”的提醒,不适合作为日常默认方式。

不要用 chmod 777 修问题

777 允许所有用户读、写、执行。正确做法是先查明:

ls -ld /srv/nloop
namei -l /srv/nloop/storage/file.zip
id

然后为运行服务的专用用户授予最小必要权限。递归执行 chmod -Rchown -R 前必须确认绝对路径、目录规模和符号链接边界。

服务用户边界

不要用 sudo npm installsudo yarn 去掩盖项目目录所有权问题。NVM 属于安装它的用户;混用 root 和普通用户会产生两套 Node.js、PM2 与缓存目录。

SSH 原则

生产服务器优先使用普通管理员账户 + sudo,禁用直接 root 登录之前,必须先在第二个会话验证新账户和密钥可用。