数据
- 我希望在这台机器上的操作员用户能够挂载自己的cifs共享。
sudoers
文件已经包含了所有操作员的/bin/mount -t cifs //*/* /media/* -o username=*
命令。- 我希望用户通过一个脚本只需输入一次密码就能挂载共享,而不是两次。
- sudo密码和cifs密码是相同的。
我已经拥有的内容
这个脚本已经可以工作:
#!/bin/bash
sudo 'mount -t cifs //192.168.1.1/home /media/$USER/home -o username=$USER'
...但这要求用户需要两次输入相同的密码!
- 第一次用于
sudo
- 第二次用于挂载本身
这也可以起作用:
#!/bin/bash
echo -n Password:
read -s szPassword
echo $szPassword | sudo -S sh -c 'echo $szPassword | mount -t cifs //192.168.1.1/home /media/$USER/home -o username=$USER'
...但这将要求我允许所有操作员用户能够sudo sh
(严重的安全问题)
问题
如何在bash中挂载cifs共享¹,而不需要将sh
放入sudoers
文件中也不创建永久/临时文件???
注1:请不要使用python、perl、C、Go等语言?
注2:我知道可以通过sudoers
文件来删除密码,但我正在尝试加强安全性,而不是放松它,同时又不放弃便利性...
printf "%s\n" "$szPassword" "$szPassword" | sudo -S mount -t cifs / ...
这个命令怎么样? - muru