文件权限标志 'setuid' 被忽略
File Permission flag 'setuid' is being ignored
我写了这个脚本,基本上它的作用是删除 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"
因此,新路径可以正常工作,但脚本不再有效。我的意思是,如果我选择 'no' 它会起作用,但如果我按 'y' 会弹出一个错误:
permission denied.
我已经对文件设置了相同的权限。
我做错了什么?
我认为这里的问题是您的文件系统不支持 setuid
标志。
您可能需要检查挂载选项:如果您使用的是 ext4
,则可能设置了 nosuid
选项。
无论如何,我不喜欢 setuid
标志,它太危险而且没有什么好处:让我们不要使用 sudo?
我的建议是忽略它并使用 sudo 调用脚本。如果这不是一个选项,那么您应该检查您的挂载标志。
我写了这个脚本,基本上它的作用是删除 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"
因此,新路径可以正常工作,但脚本不再有效。我的意思是,如果我选择 'no' 它会起作用,但如果我按 'y' 会弹出一个错误:
permission denied.
我已经对文件设置了相同的权限。
我做错了什么?
我认为这里的问题是您的文件系统不支持 setuid
标志。
您可能需要检查挂载选项:如果您使用的是 ext4
,则可能设置了 nosuid
选项。
无论如何,我不喜欢 setuid
标志,它太危险而且没有什么好处:让我们不要使用 sudo?
我的建议是忽略它并使用 sudo 调用脚本。如果这不是一个选项,那么您应该检查您的挂载标志。