Awesome WM自定义菜单实现nas共享目录挂载
需求
我在使用awesome wm我想自定义一个menu项,点击菜单后要执行sudo mount -t cifs //192.168.31.144/nas /mnt/share
-o username=nasusername,password=naspasswd,rw,uid=1000,gid=1000,file_mode=0664,dir_mode=0775 这样的功能是否可以实现?
在 Awesome WM 中,你完全可以自定义菜单项来执行类似 sudo mount -t cifs ...
的命令,但直接使用 sudo
会有权限问题,因为 Awesome WM 的菜单是以你的用户权限运行的。
✅ 创建一个 免密码执行的脚本
- 编写一个 shell 脚本,如
/home/itkey/.soft/bin/mount-nas.sh
:
#!/bin/bash
# 挂载办公室的nas共享目录
mount -t cifs //192.168.31.144/nas /mnt/share \-o username=nasusername,password=naspasswd,rw,uid=1000,gid=1000,file_mode=0664,dir_mode=0775
- 给脚本可执行权限:
chmod +x /home/itkey/.soft/bin/mount-nas.sh
- 编辑 sudoers 文件,允许该脚本免密码执行(安全前提是你信任此脚本内容):
运行:
sudo visudo
添加:
yourusername ALL=(ALL) NOPASSWD: /home/itkey/.soft/bin/mount-nas.sh
把 yourusername 替换成你系统的用户名。
- 在 Awesome WM 配置中添加菜单项:
myawesomemenu = {{ "挂载NAS", function()awful.spawn("sudo /home/itkey/.soft/bin/mount-nas.sh")end }
}