我写了这个脚本,基本上它的作用是放弃ram缓存。 我知道它很乱 - 所有的回声''你看到的只是让它更清洁的工作,我喜欢命令之间的一些空白。
#!/bin/bash
free -m && wait
echo ''; echo ''
while true; do
read -p "Vuoi liberare la RAM? [y,n]" domanda
case $domanda in
y|Y) echo ''; sync; sudo echo 3 > /proc/sys/vm/drop_caches; echo ''; free -m; echo ''; break ;;
n|N) echo ''; echo 'Sei tu il saggio Jack ;)'; echo ''; break ;;
*) echo ''; echo 'Come prego?'; echo '' ;;
esac
done
无论如何,脚本有效。但为了使它工作,我必须设置权限,如下所示:
sudo chown root.root <my script>
sudo chmod 4755 <my script>
正如我所说的那样有效。
我创建了一个子目录调用:Bin,在我的家里,复制了里面的脚本然后我在.profile
中添加了这一行:
export PATH="/home/jacklapinza/.bin:$PATH"
因此,新路径正常,但脚本不再起作用。我的意思是,如果我选择“不”,它就会起作用。但是,如果我按下&#39; y&#39;弹出错误:
permission denied.
我已在该文件上设置了相同的权限。
我做错了什么?
答案 0 :(得分:1)
我认为这里的问题是你的文件系统不支持setuid
标志。
您可能需要检查挂载选项:如果您使用的是ext4
,则可能会设置nosuid
选项。
无论如何,我不喜欢setuid
标志它太危险而且它没什么优势:让我们免于使用sudo?
我的建议是忽略它并使用sudo调用脚本。如果那不是一个选项,那么你应该检查你的挂载标志。