sudo:无法 mkdir /var/log/sudo-io/00/2A:设备上没有剩余空间

sudo:无法 mkdir /var/log/sudo-io/00/2A:设备上没有剩余空间

脚本开始抛出与无法初始化 I/O 插件 sudoers_io: (amazon linux) 相关的错误。

我无法删除一些日志,因为每次使用 sudo 命令时,它都无法记录我使用该命令的情况(我在这里猜测)。关于如何释放空间或删除/旋转日志有什么想法吗?

输出如下:

[ec2-user@ip-xx-xx-xx-xx log]$ sudo bash
sudo: unable to mkdir /var/log/sudo-io/00/2A: No space left on device
sudo: error initializing I/O plugin sudoers_io



[ec2-user@ip-xx-xx-xx-xx log]$ du -s * | sort -nr | head
du: cannot read directory ‘audit’: Permission denied
du: cannot read directory ‘sudo-io’: Permission denied
16092   secure
2188    secure-20180401
640 messages-20180325
640 messages-20180318
636 messages-20180401
636 messages-20180311
196 cloud-init.log
160 wtmp
132 messages
104 dracut.log

答案1

您显然已经在 sudo(ers) 中启用了完整的输出日志记录。

释放空间的最简单方法(可能是删除日志sudo)是记录为root或使用su,如果您的配置允许的话。

根据/var/log已满的程度,这些程序可能会成功,也可能不会成功。在最坏的情况下,以单一模式或从实时系统启动将允许您清理所有内容。

除非您有非常具体的需要记录如此多的sudo操作,否则我会编辑/etc/sudoers以更改日志记录设置。如此冗长的设置将再次快速耗尽可用空间。

答案2

您遇到的可能只是 sudoers 文件配置错误的症状。

如果您tail /var/log/sudo.log始终看到相同的命令,则应该添加 sudo options NOLOG_INPUT: NOLOG_OUTPUT:

例子:

user ALL = (root) NOPASSWD: NOLOG_INPUT: NOLOG_OUTPUT: /usr/bin/mycommand, /usr/bin/secondcommand

但是,如果您管理具有许多服务器的大规模设置,我建议还在 /etc/sudoers 文件中设置以下内容:

Defaults  maxseq=1000

警告:

  • 仅1.8.7或更高版本支持此设置
  • 这个选项在手册的“字符串”部分列出,这显然是错误的。这是您必须提供的整数值。

更多信息:

答案3

如果磁盘中有可用空间(您检查过吗df -h?),则最有可能的原因是 inode 问题。只需运行df -i以检查 inode 使用情况,例如检查此处的 var 分区...

[root@test-kompjuteras ~]# df -hi
Filesystem                   Inodes IUsed IFree IUse% Mounted on
/dev/mapper/VolGroup-lv_root   313K  9.5K  304K    4% /
tmpfs                          984K     1  984K    1% /dev/shm
/dev/sda1                      126K    44  125K    1% /boot
/dev/mapper/VolGroup-lv_var    250K  250K     0  100% /var

如果你在某个地方有 100% - 你将需要删除一些文件或将它们移动到其他分区或其他存储上。

相关内容