我就是那些不幸的人之一,没有阅读脚本的内容就以 su 的身份运行了脚本。
我尝试安装 Arduino。因此下载并解压了安装程序。我发现脚本调用install.sh
并arduino-linux-setup.sh
运行install.sh
然后运行arduino-linux-setup.sh
。install.sh
只是将必要的文件放在必要的目录中并创建 .desktop 文件。这是一个无害的脚本。
但是arduino-linux-setup.sh
删除了我的调制解调器管理器,甚至没有提示权限。输出如下(图像)。
arduino-linux-setup.sh脚本的输出:
它通过运行删除了调制解调器管理器,sudo apt-get -y remove modemmanager
输出也显示了以下行。
Created symlink /run/systemd/system/ModemManager.service -> /dev/null
我包括了下面的内容arduino-linux-setup.sh
。
refreshudev () {
echo ""
echo "Restarting udev"
echo ""
sudo udevadm control --reload-rules
sudo udevadm trigger
if [ -d /lib/systemd/ ]
then
sudo systemctl restart systemd-udevd
else
sudo service udev restart
fi
}
groupsfunc () {
echo "Add User to dialout,tty, uucp, plugdev groups"
sudo groupadd plugdev
sudo groupadd dialout
sudo usermod -a -G tty $1
sudo usermod -a -G dialout $1
sudo usermod -a -G uucp $1
sudo usermod -a -G plugdev $1
}
acmrules () {
echo "# Setting serial port rules"
cat <<EOF
KERNEL=="ttyUSB[0-9]*", TAG+="udev-acl", TAG+="uaccess", OWNER="$1"
KERNEL=="ttyACM[0-9]*", TAG+="udev-acl", TAG+="uaccess", OWNER="$1"
EOF
}
openocdrules () {
echo "# Adding Arduino M0/M0 Pro, Primo UDEV Rules for CMSIS-DAP port"
cat <<EOF
ACTION!="add|change", GOTO="openocd_rules_end"
SUBSYSTEM!="usb|tty|hidraw", GOTO="openocd_rules_end"
#Please keep this list sorted by VID:PID
#CMSIS-DAP compatible adapters
ATTRS{product}=="*CMSIS-DAP*", MODE="664", GROUP="plugdev"
LABEL="openocd_rules_end"
EOF
}
avrisprules () {
echo "# Adding AVRisp UDEV rules"
cat <<EOF
SUBSYSTEM!="usb_device", ACTION!="add", GOTO="avrisp_end"
# Atmel Corp. JTAG ICE mkII
ATTR{idVendor}=="03eb", ATTRS{idProduct}=="2103", MODE="660", GROUP="dialout"
# Atmel Corp. AVRISP mkII
ATTR{idVendor}=="03eb", ATTRS{idProduct}=="2104", MODE="660", GROUP="dialout"
# Atmel Corp. Dragon
ATTR{idVendor}=="03eb", ATTRS{idProduct}=="2107", MODE="660", GROUP="dialout"
LABEL="avrisp_end"
EOF
}
dfustm32rules () {
echo "# Adding STM32 bootloader mode UDEV rules"
cat <<EOF
# Example udev rules (usually placed in /etc/udev/rules.d)
# Makes STM32 DfuSe device writeable for the "plugdev" group
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE="664", GROUP="plugdev", TAG+="uaccess"
EOF
}
dfuarduino101rules (){
# Arduino 101 in DFU Mode"
cat <<EOF
SUBSYSTEM=="tty", ENV{ID_REVISION}=="8087", ENV{ID_MODEL_ID}=="0ab6", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_CANDIDATE}="0"
SUBSYSTEM=="usb", ATTR{idVendor}=="8087", ATTR{idProduct}=="0aba", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1"
EOF
}
removemm () {
# Removing modem manager
sudo apt-get -y remove modemmanager
}
if [ "$1" = "" ]
then
echo ""
echo "Run the script with command ./arduino-linux-setup.sh \$USER"
echo ""
else
[ `whoami` != $1 ] && echo "" && echo "The user name is not the right one, please double-check it !" && echo "" && exit 1
groupsfunc $1
removemm
acmrules $1 > /tmp/90-extraacl.rules
openocdrules > /tmp/98-openocd.rules
avrisprules > /tmp/avrisp.rules
dfustm32rules > /tmp/40-dfuse.rules
dfuarduino101rules > /tmp/99-arduino-101.rules
sudo mv /tmp/*.rules /etc/udev/rules.d/
refreshudev
echo "*********** Please Reboot your system ************"
fi
我的问题
运行脚本后,我无法使用我的加密狗。
我如何恢复 arduino 脚本对我的系统所做的操作并使我的 usb 加密狗再次工作。我重新安装了调制解调器管理器但它仍然不起作用。是否与创建的符号链接有关。目前我无法从笔记本电脑连接到互联网。
答案1
看起来这可以做到。
rm /etc/udev/rules.d/90-extraacl.rules
rm /etc/udev/rules.d/98-openocd.rules
rm /etc/udev/rules.d/avrisp.rules
rm /etc/udev/rules.d/40-dfuse.rules
rm /etc/udev/rules.d/99-arduino-101.rules
rm /run/systemd/system/ModemManager.service
那就试试这个。
systemctl enable ModemManager.service
要查看它是否重新创建了正确的链接,我应该看不到任何显示它删除了服务文件的内容,只是用/dev/null
指向符号链接应该从其开始的目录中的新链接覆盖了它。然后重新启动,希望它恢复正常。如果您不知道这一点,请编辑所有在前面以 sudo 运行的命令。