Вопрос или проблема
Существует проблема автоматического монтирования раздела после неожиданного завершения работы. Скрипт запуска проверяет, смонтирован ли раздел ntfs, и монтирует его, если нет.
if grep -qs '/MountedDisk' /proc/mounts;
then echo "MountedDisk смонтирован.";
else
echo -e "MountedDisk не смонтирован. \n Проверка раздела и монтирование..."
ntfsfix --clear-dirty /dev/sdc1;
mount -t ntfs3 /dev/sdc1 /MountedDisk/;
fi
Файл со скриптом размещен в /home/Username/.config/autostart/ и в настройках автозапуска Plasma6 установлен как исполняемый.
Однако его можно запустить только от имени root — как сделать так, чтобы он запускался с правами root?
Установка Sudo на Gentoo
Я добавляю этот ответ по комментарию, как просил автор вопроса. Делая это, вы превратите вашу установку Gentoo в систему, похожую на Debian/Ubuntu, так как обе Debian и Ubuntu используют sudo
вместо фактической учетной записи root
для повышения безопасности системы.
emerge -av app-admin/sudo
su -
EDITOR="/bin/nano" visudo
- Найдите следующее:
##
## Спецификация прав пользователя
##
root ALL=(ALL) ALL
## Раскомментируйте, чтобы разрешить членам группы wheel выполнять любые команды
# %wheel ALL=(ALL) ALL
## То же самое без пароля
# %wheel ALL=(ALL) NOPASSWD: ALL
## Раскомментируйте, чтобы разрешить членам группы sudo выполнять любые команды
# %sudo ALL=(ALL) ALL
Хук post-install
для emerge создает группу wheel
по умолчанию, поэтому раскомментируйте строку выше, начинающуюся с %wheel
. Мое личное предпочтение — выбрать выполнение любой команды С ПАРОЛЕМ, но подойдет и любой другой вариант.
В качестве последнего шага нам нужно добавить нашего пользователя в группу wheel с помощью: useradd -aG wheel codegust
, где codegust предполагается как ваше имя пользователя. См. также: Gentoo Wiki: Sudo
Ответ или решение
Запуск скрипта при старте системы с правами root на Gentoo/KDE
Если ваша задача заключается в автоматическом монтировании NTFS-раздела после неожиданного завершения работы системы, то важно убедиться, что ваш скрипт выполняется с правами суперпользователя. В данном ответе мы подробно разберем, как настроить запуск вашего скрипта при старте системы с правами root на Gentoo с окружением рабочего стола KDE Plasma.
1. Правильное размещение скрипта
Сначала убедитесь, что ваш скрипт, который выполняет проверку и монтирование, корректно расположен в каталоге для автозапуска. Вы указали, что он находится в (/home/Username/.config/autostart/
). Проверьте, чтобы файл имел расширение .desktop
, так как именно файлы с таким расширением распознаются системой для автозапуска.
Пример содержания файла mount_disk.desktop
может выглядеть следующим образом:
[Desktop Entry]
Type=Application
Exec=sudo /path/to/your/script.sh
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name=Mount NTFS Partition
Замените /path/to/your/script.sh
на фактический путь к вашему скрипту.
2. Использование sudo
Чтобы вашему автозапускаемому скрипту были доступны права root, вы можете установить sudo
, если он у вас ещё не установлен.
Установка sudo
-
Откройте терминал.
-
Установите
sudo
, выполнив команду:emerge -av app-admin/sudo
-
Перейдите под учетную запись root:
su -
-
Откройте файл конфигурации
visudo
для редактирования настроекsudo
:EDITOR="/bin/nano" visudo
-
Найдите и раскомментируйте строку, связанную с группой
wheel
:%wheel ALL=(ALL) ALL
Лично я рекомендую оставить вариант с запросом пароля для обеспечения дополнительной безопасности.
-
Добавьте вашего пользователя в группу
wheel
, выполнив команду:usermod -aG wheel username
Замените
username
на ваш фактический логин.
3. Настройка скрипта
Теперь откройте ваш скрипт (например, script.sh
) и убедитесь, что он имеет необходимые права на выполнение и корректный синтаксис. Также убедитесь, что в начале скрипта находится шебанг (например, #!/bin/bash
).
#!/bin/bash
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
Не забудьте установить для вашего скрипта права на выполнение:
chmod +x /path/to/your/script.sh
4. Тестирование
Теперь можно протестировать его запуск. Перезагрузите систему, и скрипт должен выполниться с правами суперпользователя, автоматически проверяя и монтируя раздел, если это необходимо.
Заключение
Следуя данным шагам, вы сможете убедиться, что ваш скрипт работает успешно при старте системы с нужными правами. Это поможет решить вашу проблему с автоматическим монтированием NTFS-раздела после неожиданных перезагрузок системы. Если у вас возникнут дополнительные вопросы или потребуется уточнение, не стесняйтесь обращаться за помощью.