2

Я хотел бы прочитать небольшой текстовый файл, расположенный по адресу: /sys/kernel/debug/vgaswitcheroo/switch без прав root. Он содержит информацию о графических картах (выделенный ATI Radeon и интегрированный Intel HD3000). Я написал простой скрипт, отображающий нужную мне информацию, но он работает только с правами суперпользователя. Я уже пытался изменить права доступа к файлам и папкам, но при перезагрузке компьютера проблема остается. Можно ли навсегда изменить права доступа к этому файлу или владельца?

Зачем мне это? Чтобы связать этот скрипт с помощью сочетания клавиш и получить следующий диалог Ubuntu после нажатия комбинации клавиш:

образ

Что находится внутри файла switch ? Как я уже говорил, это простой текстовый файл со следующим содержимым:

0: ИГД:+: Pwr: 0000: 00: 02,0

1: DIS:: выключено: 0000: 01: 00.0

Мой скрипт status-radeon.sh

#!/bin/bash
CONTENT=`cat /sys/kernel/debug/vgaswitcheroo/switch | cut -d ':' -f 1-4 `
DISPLAY=:0 notify-send -t 4000 -i /home/Greg/Pictures/ati_radeon.png "GPU status" "$CONTENT"
echo "$CONTENT"

Мой контент /etc/sudoers.tmp , без комментариев, начинающихся с #. Это начинается с nano редактора, но я не думаю, что это актуально.

Defaults        env_reset                                             
Defaults        mail_badpass Defaults       
secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
root    ALL=(ALL:ALL) ALL 
Greg    ALL=(ALL:ALL)   ALL 
Greg    ALL= NOPASSWD: /home/Greg/Scripts/status-radeon.sh

2 ответа2

1

Изменение разрешений системных папок не очень хорошая идея. Почему бы вам просто не установить crontab для root, который копирует содержимое файла в другое место и читает ваш скрипт из этого?

$ sudo crontab -e

Добавьте такую строку:

 */5 * * * * cp /sys/kernel/debug/vgaswitcheroo/switch /home/YOUR_USER/switch

Теперь, каждый раз, когда вы перезагружаетесь, этот файл будет копироваться в ваш домашний каталог (не забудьте заменить YOUR_USER вашим реальным именем пользователя), и вы сможете получить к нему доступ.

1

Вы можете использовать sudo чтобы позволить некоторым пользователям (например, вам) запускать скрипт от имени пользователя root

$ visudo

а затем добавить

username  ALL= NOPASSWD: /path/to/your/script

Краткое введение в sudo: http://www.sudo.ws/sudo/intro.html

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .