我想安装 BRO-IDS。
我运行了以下命令:
cd bro-2.2
./configure --prefix=/nsm/bro
make
make install
当我运行此命令时:
export PATH=/nsm/bro/bin:$PATH
不起作用。这样正确吗?我该如何运行此命令?
您还可以将 PATH=/opt/bro2/bin:$PATH 添加到主目录中的 ~/.profile 文件中,以使更改永久生效。
当我尝试这样做时出现此错误:
root@ubuntu:/home/eng-it/bro-2.2# ~/.profile
bash: /root/.profile: Permission denied
和这个:
root@ubuntu:/home/eng-it/bro-2.2# sudo su -c "echo 'PATH=/opt/bro2/bin:$PATH'>>/etc/profile
不起作用。它正确吗?
答案1
您的第一个命令export PATH=/nsm/bro/bin:$PATH
在理论上是有效的,尽管不建议将其添加到路径前面 - 您应该将其附加(添加到末尾)。
您是否检查过是否/nsm/bro/bin
存在并包含您想要运行的文件?
此外,该命令只会影响当前 shell 会话;PATH 在任何其他 shell 中都不会受到影响(因此当您打开新终端时,PATH 将不包括您的添加)。
root@ubuntu:/home/eng-it/bro-2.2# ~/.profile
bash: /root/.profile: Permission denied
发生这种情况是因为您尝试运行/root/.profile
不存在或没有执行权限的文件。
如果你是 root 用户,那么路径 ~/.profile 不会指向你的 .profile,因为~
扩展是针对当前用户进行的。切换到你的普通用户,然后执行
nano ~/.profile
然后添加您想要的行,保存并退出。
该命令似乎有效(尽管不建议)
root@ubuntu:/home/eng-it/bro-2.2# sudo su -c "echo 'PATH=/opt/bro2/bin:$PATH'>>/etc/profile"
sudo su -c
/nsm/bro
是多余的,因为您已经是 root 了(为什么您是 root?除非绝对必要,否则您应该避免这样做)。但是,由于您是根据前缀标志安装程序的./configure
,我不明白为什么添加/opt/bro2/bin
到 PATH 会有帮助。
即使该路径正确,您也需要注销并重新登录才能使更改生效.profile
。/etc/profile
要立即获取它们,您可以通过键入 来启动登录 shell bash -l
,或者您可以获取您编辑的文件source /etc/profile
然而,不建议添加东西/etc/profile
- 您应该在中创建一个文件/etc/profile.d
,或者在中为您的用户本地指定变量~/.profile
。
假设您要运行的文件实际上位于/nsm/bro/bin
,作为普通用户(非 root 用户),你可以这样做
echo 'PATH=$PATH:/nsm/bro/bin' >> ~/.profile
或者如果你真的想全局设置它
sudo bash -c 'echo 'PATH=$PATH:/nsm/bro/bin' > /etc/profile.d/path.sh'
然后注销并重新登录。