允许所有命令,但无法清除缓存

允许所有命令,但无法清除缓存

我正在尝试清除正在运行的笔记本电脑上的缓存:

Operating System: Ubuntu 20.04 LTS
          Kernel: Linux 5.4.0-40-generic

但是,当我输入这些命令时,输出如下:

$ sudo sync; echo 1 > /proc/sys/vm/drop_caches
bash: /proc/sys/vm/drop_caches: Permission denied
$ sudo sync; echo 2 > /proc/sys/vm/drop_caches
bash: /proc/sys/vm/drop_caches: Permission denied
$ sudo sync; echo 3 > /proc/sys/vm/drop_caches
bash: /proc/sys/vm/drop_caches: Permission denied

但是,当我检查我的权限时,我得到了这个:

$ sudo -l
Matching Defaults entries for [MY USERNAME] on [COMPUTER NAME]:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User [MY USERNAME] may run the following commands on [COMPUTER NAME]:
    (ALL : ALL) ALL

看起来我可以运行所有命令。为什么会发生这种情况?有解决办法吗?

我也在 root 中复制了该问题。

答案1

您正在sync使用运行sudo,但不是 shell 的 重定向echo。请改为:

sudo sh -c 'sync; echo 1 > /proc/sys/vm/drop_caches'

或者

sudo sync; echo 1 | sudo tee /proc/sys/vm/drop_caches >/dev/null

相关内容