Я написал этот скрипт, в основном, что он делает, это сбросить тайники. Я знаю, что это грязно - все «эхо„“, что вы видите только работа вокруг, чтобы сделать его чище, я, как некоторые пустые строки между командамиФайл Permission flag 'setuid' игнорируется
#!/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"
Итак, новый путь работает правильно, но скрипт больше не работает. Я имею в виду, это работает, если я выбираю «нет», но если нажать «у» ошибка выскакивает:
permission denied.
Я установил те же права доступа к файлу.
Что я делаю неправильно?
Просто удалите вызов sudo изнутри файла и получите возможность использовать ваш скрипт, используя sudo. Вы можете проверить, работает ли скрипт как root с '$ (id -nu)'. –
FYI вы обычно не должны добавлять свою пользовательскую директорию до нормального пути, используйте вместо этого: 'export PATH =" $ PATH: /home/jacklapinza/.bin "или' export PATH = "$ PATH: $ HOME /. bin "' – andlrc