我想读取位于以下位置的小文本文件:/sys/kernel/debug/vgaswitcheroo/switch
没有root 权限。它包含有关显卡(专用 ATI Radeon 和集成 Intel HD3000)的信息。我编写了一个简单的脚本来显示我需要的信息,但它只在 root 权限下有效。我已经尝试更改文件和文件夹权限,但当我重新启动计算机时,问题仍然存在。是否可以永久更改该文件权限或所有者?
我为什么需要这个?要将该脚本与键盘快捷键绑定,并在按下组合键后获得以下 Ubuntu“对话框”:
文件里面是什么switch
?正如我之前所说,它只是简单的文本文件,包含以下内容:
0:IGD:+:功率: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
editor 开头,但我认为它不相关。
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
答案1
更改系统文件夹的权限并不是一个好主意。为什么不为 root 设置一个 crontab,将文件的内容复制到其他地方,然后让脚本从那里读取?
$ sudo crontab -e
添加如下一行:
*/5 * * * * cp /sys/kernel/debug/vgaswitcheroo/switch /home/YOUR_USER/switch
现在,每次您重新启动时,该文件将被复制到您的主目录(记得替换YOUR_USER
为您的实际用户名),您可以在那里访问它。
答案2
你可以使用sudo
允许某些用户(例如你)以 root 身份运行脚本
$ visudo
然后添加
username ALL= NOPASSWD: /path/to/your/script
简要介绍sudo
:http://www.sudo.ws/sudo/intro.html