Ubuntu 20.04.6下权限、sudo故障及磁盘空间异常问题求助
Ubuntu 20.04.6下权限、sudo故障及磁盘空间异常问题求助
看起来你遇到了一连串连锁麻烦——从R包安装的权限报错,误改系统权限导致sudo彻底失效,再到CUPS日志疯狂膨胀占满小分区,还有4T大分区莫名没挂载的问题。别慌,咱们一步步拆解解决:
1. 先修复sudo权限故障(最紧急,没sudo啥都干不了)
你现在sudo用不了,核心原因是之前的chmod -R把/usr/lib/sudo/sudoers.so的权限改坏了——这个文件要求只能被root读写,其他用户不能有写权限。因为正常模式下用不了sudo,咱们得进recovery模式操作:
- 重启电脑,在GRUB菜单选择「Advanced options for Ubuntu」,然后选带「recovery mode」的内核条目
- 进入recovery菜单后,选择「root」选项,按提示回车进入root shell(此时系统是只读挂载,先改成可写:
mount -o remount,rw /) - 执行命令修复关键权限:
chmod 0440 /usr/lib/sudo/sudoers.so chmod 0755 /usr/lib/sudo - 输入
exit退出root shell,选择「resume」回到正常系统,现在sudo应该能正常使用了
2. 彻底干掉CUPS日志占盘的元凶
那个13G的error_log是磁盘爆满的罪魁祸首,而且它会自动生成,不能只删一次就完事:
- 先停掉CUPS服务,防止日志继续写入:
sudo systemctl stop cups - 删除超大日志文件:
sudo rm /var/log/cups/error_log - 配置日志轮转防止再次膨胀:
编辑CUPS配置文件:sudo nano /etc/cups/cupsd.conf,找到ErrorLog相关行,改成用系统日志(自动轮转):
或者手动触发一次日志轮转:ErrorLog syslogsudo logrotate -f /etc/logrotate.d/cups - 重启CUPS服务:
sudo systemctl start cups
3. 挂载你的4T大分区
先找到这个分区的设备名,执行lsblk或sudo fdisk -l,它会显示类似/dev/sdaX的格式(X是数字):
- 创建挂载点:
sudo mkdir /mnt/bigstorage - 临时挂载测试:
sudo mount /dev/sdaX /mnt/bigstorage(把X换成实际的分区号) - 设置永久挂载(重启后自动生效):编辑
/etc/fstab文件:sudo nano /etc/fstab,添加一行:
(如果你的分区是NTFS格式,把/dev/sdaX /mnt/bigstorage ext4 defaults 0 2ext4换成ntfs-3g) - 执行
sudo mount -a测试配置,没有报错就成功了
4. 正确解决R包安装的权限问题(别再乱改系统目录权限了!)
之前乱改/usr/lib/R/site-library的权限是触发后续问题的源头,正确的做法有两种:
- 用户本地库方案:打开R后运行
.libPaths(c("/home/你的用户名/R/library", .libPaths())),之后安装的包会默认放到你的用户目录下,完全不需要sudo - 系统级安装方案:如果确实需要安装到系统目录,直接用
sudo R进入R环境,再执行install.packages("包名"),这样不会破坏系统目录的默认权限
备注:内容来源于stack exchange,提问作者Deb
相关产品推荐
相关产品推荐

