Запуск скрипта при логине от root/sudo на Gentoo/KDE
Есть проблема монтирования раздела ntfs после резкого выкобчения ноута или краха системы. Скрипт при логине в систему Plasma6 должен монтировать раздел если он не смонтирован.
if grep -qs '/MountedDisk' /proc/mounts;
then echo "MountedDisk is mounted.";
else
echo -e "MountedDisk is not mounted. \n Checking the partition and mounting it..."
ntfsfix --clear-dirty /dev/sdc1;
mount -t ntfs3 /dev/sdc1 /MountedDisk/;
fi
Файл скрипта расположен в /home/Username/.config/autostart/ и для настроек скриптов в автостарте в Plasma6 помечен как выполняющийся
.
Для того, что бы запускать ntfsfix и mount нужны права root/sudo -- как их дать скрипту или запускать его с теми привилегиями?
Ответы (1 шт):
У вас есть доступ к visudo?
Если да, то вы можете разрешить своему пользователю выполнять определённые команды без пароля:
Username ALL = NOPASSWD:/usr/bin/ntfsfix --clear-dirty /dev/sdc1
Username ALL = NOPASSWD:/usr/bin/mount -t ntfs3 /dev/sdc1 /MountedDisk/
А в скрипте вызывайте эти команды через sudo
if grep -qs '/MountedDisk' /proc/mounts;
then echo "MountedDisk is mounted.";
else
echo -e "MountedDisk is not mounted. \n Checking the partition and mounting it..."
sudo /usr/bin/ntfsfix --clear-dirty /dev/sdc1;
sudo /usr/bin/mount -t ntfs3 /dev/sdc1 /MountedDisk/;
fi
Дабы супостаты не могли атаковать вашу систему подменой путей, нужно в NOPASSDWD
указывать абсолютные пути к исполняемым файлам.