You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VirtualBox中全新安装Ubuntu后遭遇权限错误(含sudo异常)

VirtualBox中全新安装Ubuntu后遭遇权限错误(含sudo异常)

看起来你碰到了Linux新手最闹心的权限问题,尤其是sudo这个核心提权工具出故障的情况——别慌,咱们一步步把它捋顺。

首先得明确问题根源:你看到的sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set错误,说明/usr/bin/sudo这个文件的所有者不是root(系统用户uid 0),或者缺少了关键的setuid权限位,导致普通用户没法通过它临时获取root权限。全新安装就出这问题,大概率是虚拟机安装过程中的小bug,或者磁盘挂载时的权限继承异常。

第一步:修复sudo的核心权限

因为现在sudo用不了,咱们得先绕过它直接获取root权限,操作如下:

  • 重启你的Ubuntu虚拟机,在启动到Ubuntu logo之前按住Shift键,进入GRUB启动菜单。
  • 选择Advanced options for Ubuntu,再选中带recovery mode标记的内核版本(一般是第一个)。
  • 在recovery模式的菜单里,选择root选项回车,进入root用户的命令行界面(此时系统盘是只读状态,先改成可写):
    mount -o remount,rw /
    
  • 修复sudo的所有者和权限:
    chown root:root /usr/bin/sudo
    chmod 4755 /usr/bin/sudo
    
    (解释下:4755里的第一个4就是setuid位,它能让普通用户执行sudo时临时获得root的权限)
  • 修复完成后,输入exit退出root模式,回到recovery菜单选resume正常启动系统。

启动后可以验证下:执行sudo ls -l /usr/bin/sudo,输出里应该能看到-rwsr-xr-x 1 root root,其中的s就代表setuid位已经生效了。

第二步:解决Node.js安装的权限问题

sudo修复后,咱们用更稳妥的方式安装Node.js,避免手动操作系统目录:

  • 优先用Ubuntu官方源安装(最稳定):
    sudo apt update && sudo apt install -y nodejs npm
    
  • 如果之后安装全局npm包时不想用sudo(避免权限冲突),可以把npm的全局安装目录改到你的用户目录:
    1. 创建专属全局目录:mkdir -p ~/.npm-global
    2. 配置npm使用这个目录:npm config set prefix '~/.npm-global'
    3. 把这个目录加到系统PATH里:打开~/.bashrc文件(用nano ~/.bashrc),末尾加一行export PATH=~/.npm-global/bin:$PATH,保存后执行source ~/.bashrc生效。
      这样以后执行npm install -g xxx就会把包安装到你的用户目录,完全不需要root权限。

给新手的小提醒

  • 尽量不要手动修改/usr、/bin这类系统核心目录的文件或权限,这些都是root专属的地盘,乱改很容易搞崩系统。
  • 遇到权限问题,优先用sudo(前提是它正常),或者选择把软件安装在自己的用户目录下(比如用nvm管理Node.js,也是个不错的选择)。

备注:内容来源于stack exchange,提问作者xarielah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 07:33:10