我正在尝试清除正在运行的笔记本电脑上的缓存:
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