0

I wrote this script, basically what it does is to drop the ram caches. I know it's messy - all the "echo '' that you see are just a work around to make it cleaner, I like some blank lines between the commands.

#!/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

Anyway, the script works. But in order to make it works I had to set the permissions as it follow:

sudo chown root.root <my script>

sudo chmod 4755 <my script>

As I said it works. I created a sub-directory call: Bin, in my home, copied the script inside and then I added this line in my .profile:

export PATH="/home/jacklapinza/.bin:$PATH"

So, the new path works properly but the script doesn't work anymore. I mean, it works if I choose 'no' but if I press 'y' an error pops out:

permission denied. 

I've set the same permissions on the file.

What I'm doing wrong?

ichramm
  • 6,437
  • 19
  • 30
  • Just remove the sudo call from inside the file and get use to call your script using sudo. You can check if the script is running as root with `$(id -nu)`. – ichramm May 31 '16 at 15:05
  • FYI you normally shouldn't add your user directory before the normal path, use this instead: `export PATH="$PATH:/home/jacklapinza/.bin"` or `export PATH="$PATH:$HOME/.bin"` – Andreas Louv May 31 '16 at 15:31

1 Answers1

1

I think the problem here is that your filesystem does not support the setuid flag.

You may want to check your mount options: if you are using ext4, the nosuid option might be set.

Anyway, I don't like the setuid flag it is too dangerous and it offers little advantages: spare us from using sudo?

My recommendation is just ignore this and call the script using sudo. If that is not an option then you should check your mount flags.

ichramm
  • 6,437
  • 19
  • 30