Запуск скрипта при логине от 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 шт):

Автор решения: Pak Uula

У вас есть доступ к 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 указывать абсолютные пути к исполняемым файлам.

→ Ссылка