我正在尝试自动化我的 Ubuntu 14.04 启动过程以节省时间。我编写了一个 bash 脚本,用于在机器启动时打开我需要的所有浏览器选项卡。当我手动执行命令时,例如:
gnome-open https://askubuntu.com
或者
xdg-open http://askubuntu.com/
它运行正常并打开了 Google Chrome 浏览器窗口。
但是,每当我尝试在 bash 脚本中运行以下命令之一时:
#!/bin/bash
gnome-open http://askubuntu.com/
运行脚本时我收到错误消息:
sudo browserinit.sh
[0823/102740.514014:ERROR:nss_util.cc(94)] Failed to create /home/devel1/.pki/nssdb directory.
[0823/102740.514014:ERROR:nss_util.cc(94)] Failed to create /home/devel1/.pki/nssdb directory.
--2017-08-23 10:27:40-- https://clients2.google.com/cr/report
--2017-08-23 10:27:40-- https://clients2.google.com/cr/report
Resolving clients2.google.com (clients2.google.com)... Resolving clients2.google.com (clients2.google.com)... 74.125.133.102, 74.125.133.113, 74.125.133.138, ...
Connecting to clients2.google.com (clients2.google.com)|74.125.133.102|:443... 74.125.133.101, 74.125.133.102, 74.125.133.139, ...
Connecting to clients2.google.com (clients2.google.com)|74.125.133.101|:443... connected.
connected.
HTTP request sent, awaiting response... HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘/dev/fd/4’
Crash dump id: 2fba097c3e4a2189
0K 1.58M=0s
--2017-08-23 10:27:41-- https://clients2.google.com/cr/report
当我使用xdg-open
脚本时,它会恢复到 Firefox,但它没有我需要的一些功能。gnome-open
根本就什么都打开不了。
sudo gnome-open http://askubuntu.com
给出与 bash 脚本相同的错误。我已经检查过,/home/devel1/.pki/nssdb 目录已经存在,所以我不知道为什么 Google Chrome 会尝试再次创建它,或者为什么它只在以 sudo root 身份执行命令时才这样做。
任何帮助都非常感谢。目前,bash 脚本在没有 sudo 的情况下无法运行,尽管我可能如果有人能告诉我一种如何做的方法,我就能改变这些权限,这种方法肯定只会改变我本地电脑的权限并且只改变 devel1 用户的权限。
我目前没有这台机器的真正的超级用户根访问权限。
答案1
您使用完整路径或相对路径启动脚本。
完整路径适合您:
/home/devel1/.pki/browserinit.sh
相对取决于您想要开始的位置,假设您位于脚本的目录中:
./browserinit.sh
就像其他人说的,永远不要以 root 身份运行浏览器,因为这样会允许你打开的网站内运行的任何脚本随意更改你的整个文件系统。这很不安全。此外,它还会破坏你的主文件权限,这使得它们在没有 root 权限的情况下无法再访问,因为现在所有新创建的内容都将归 root 所有。
就像我在评论部分写的那样。只要您拥有“sudo”权限,您就拥有真正的 root 访问权限。