有时您可能希望使用在不同环境中未经过良好测试的应用程序,但您必须使用它们。在这种情况下,关注系统的安全性是正常的。在Linux中可以做的一件事是在沙箱中使用应用程序。

“沙盒”是在有限环境中运行应用程序的能力。这样,应用程序就可以提供运行所需的大量资源。由于名为Firejail的应用程序,您可以安全地在Linux中运行不受信任的应用程序。

Firejail是一个SUID(设置所有者用户ID)应用程序,它通过使用Linux命名空间和seccomp-bpf限制不受信任程序的运行环境来减少安全漏洞的暴露。

它使一个进程及其所有后代拥有自己的全局共享内核资源的秘密视图,例如网络堆栈,进程表,挂载表。

Firejail使用的一些功能:

  • Linux名称空间
  • 文件系统容器
  • 安全过滤器
  • 网络支持
  • 资源分配

有关Firejail功能的详细信息,请参阅官方页面。

如何在Linux中安装Firejail

可以使用git命令从项目的github页面下载最新的软件包来完成安装,如图所示。

linuxidc@linuxidc:~/www.linuxidc.com$ git clone https://github.com/netblue30/firejail.git
正克隆到 'firejail'...
remote: Enumerating objects: 23, done.
remote: Counting objects: 100% (23/23), done.
remote: Compressing objects: 100% (18/18), done.
remote: Total 38395 (delta 11), reused 11 (delta 5), pack-reused 38372
接收对象中: 100% (38395/38395), 9.82 MiB | 87.00 KiB/s, 完成.
处理 delta 中: 100% (30820/30820), 完成.
linuxidc@linuxidc:~/www.linuxidc.com$ cd firejail
linuxidc@linuxidc:~/www.linuxidc.com/firejail$ ./configure && make && sudo make install-strip
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o

如果您的系统上没有安装git,可以使用以下命令安装它:

$ sudo apt install git  [在 Debian/Ubuntu]
# yum install git [在 CentOS/RHEL]
# dnf install git [在 Fedora 22+]

安装firejail的另一种方法是下载与Linux发行版相关联的软件包,并使用其软件包管理器进行安装。 可以从项目的SourceForge页面下载文件。 下载文件后,可以使用以下命令安装:

$ sudo dpkg -i firejail_X.Y_1_amd64.deb   [在 Debian/Ubuntu]
$ sudo rpm -i firejail_X.Y-Z.x86_64.rpm [在 CentOS/RHEL/Fedora] 如何在Linux中使用Firejail运行应用程序

您现在可以使用firejail运行应用程序了。 这是通过启动终端并在您希望运行的命令之前添加firejail来实现的。

下面是一个例子:

$ firejail firefox    #启动 Firefox网络浏览器
$ firejail vlc # 启动 VLC 播放器 创建安全配置文件

Firejail包含许多针对不同应用程序的安全配置文件,它们存储在:

/etc/firejail

如果您从源代码构建项目,则可以在以下位置找到配置文件:

# path-to-firejail/etc/

如果您使用了rpm/deb软件包,则可以在以下位置找到安全配置文件:

/etc/firejail/

用户应将其配置文件放在以下目录中:

~/.config/firejail

如果要扩展现有安全配置文件,可以使用包含配置文件路径的include,然后添加行。 这应该是这样的:

$ cat ~/.config/firejail/vlc.profile

include /etc/firejail/vlc.profile
net none

如果您希望限制应用程序访问某个目录,您可以使用黑名单规则来实现这一目标。 例如,您可以将以下内容添加到安全配置文件中:

blacklist ${HOME}/Documents

实现相同结果的另一种方法是实际描述您希望限制的文件夹的完整路径:

blacklist /home/user/Documents

您可以通过许多不同的方式配置安全配置文件,例如禁止访问,允许只读访问等。如果您有兴趣构建自定义配置文件,可以查看以下firejail说明。

对于想要保护系统的安全用户来说,Firejail是一个很棒的工具。

如何在Linux中使用Firejail运行应用程序的更多相关文章

  1. 如何在Linux中tomcat下运行一个web项目

    如何在Linux中tomcat下运行一个web项目 然后启动Tomcat项目.运行的运行后会自动将war包解压. 如果页面报404,那么请查看tomcat日志文件,它一定是报错了....

  2. 如何在Linux中查看所有正在运行的进程

    如何在Linux中查看所有正在运行的进程 FROM:http://os.51cto.com/art/201101/244090.htm 进程是一个其中运行着一个或多个线程的地址空间和这些线程所需要的系 ...

  3. 如何在 Linux 中查看进程占用的端口号【转】

    对于 Linux 系统管理员来说,清楚某个服务是否正确地绑定或监听某个端口,是至关重要的.如果你需要处理端口相关的问题,这篇文章可能会对你有用. 端口是 Linux 系统上特定进程之间逻辑连接的标识, ...

  4. 如何在Linux中添加新的系统调用

    系统调用是应用程序和操作系统内核之间的功能接口.其主要目的是使得用户 可以使用操作系统提供的有关设备管理.输入/输入系统.文件系统和进程控制. 通信以及存储管理等方面的功能,而不必了解系统程序的内部结 ...

  5. (转)如何在Linux中统计一个进程的线程数

    如何在Linux中统计一个进程的线程数 原文:http://os.51cto.com/art/201509/491728.htm 我正在运行一个程序,它在运行时会派生出多个线程.我想知道程序在运行时会 ...

  6. 如何在Linux中使用sFTP上传或下载文件与文件夹

    如何在Linux中使用sFTP上传或下载文件与文件夹 sFTP(安全文件传输程序)是一种安全的交互式文件传输程序,其工作方式与 FTP(文件传输协议)类似. 然而,sFTP 比 FTP 更安全;它通过 ...

  7. 如何查看 Linux 中所有正在运行的服务

    有许多方法和工具可以查看 Linux 中所有正在运行的服务.大多数管理员会在 System V(SysV)初始化系统中使用 service service-name status 或 /etc/ini ...

  8. 如何在Linux中结合示例使用'cat'和'tac'命令

    上一篇我们讲到了cat的使用示例:https://www.cnblogs.com/WeiLian1024/p/11863057.html 本篇我们将继续延续Cat讲讲Tac 本文是我们讲讲Linux技 ...

  9. 如何在Linux中自动删除或清理/tmp文件夹内容?

    每个Linux系统都有一个名为的目录/tmp,该目录已挂载了单独的文件系统. 它具有称为tmpfs的特殊文件系统.这是一个虚拟文件系统,操作系统将在系统引导时自动挂载/tmp挂载点. 如果要根据应用程 ...

随机推荐

  1. Python中使用SMTP发送邮件以及POP收取邮件

    假设我们自己的电子邮件地址是from@163.com,对方的电子邮件地址是to@sina.com(这里的地址虚拟的),现在我们用Outlook或者Foxmail之类的软件写好邮件,填上对方的Email ...

  2. what's the python之python介绍

    其实这一篇文章的大部分都是啰嗦话,大部分在百度百科中都有详尽的叙述.既然决定学python了就要风雨兼程,你不用洞悉python到底是什么,你只要知道这是一门编程语言,跟Java.C++等语言一样都是 ...

  3. Mysql事件监控日志

    建立监控表: CREATE TABLE `t_event_history` ( id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, `dbname ...

  4. 339A

    #include <iostream> #include <string> #include <algorithm> using namespace std; #d ...

  5. MySQL数据库SQL修改数据规范

    start transaction; select id,rname,free_course_ph,cmp_id,free_date_limit_ph from ebk_students WHERE ...

  6. vim自动格式化

    ,gg 跳转到第一行 ,shift+v 转到可视模式 ,shift+g 全选 ,按下神奇的 = 你会惊奇的发现代码自动缩进了,呵呵,当然也可能是悲剧了.

  7. Ajax(django)

    Ajax AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX = 异步 JavaSc ...

  8. java 运行时异常与非运行时异常理解

    参考:https://blog.csdn.net/lan12334321234/article/details/70049446 所谓的异常就是阻止当前程序或方法继续执行的问题 java异常分为两种: ...

  9. Xshell连接不上虚拟机提示ssh服务器拒绝了密码,请再试一次

    1. 设置ubuntu的管理员root的密码 hughes@hughes-virtual:~$ sudo passwd (供xshell连接时使用) 2. 确保源文件和系统已更新 hughes@hug ...

  10. windows系统快捷键

    1.我的键盘:windows键的开启,需要按住FN键+windows键. 2.windows键 + E,表示打开我的电脑. 3.windows键 + R,打开windows的命令行窗口. 4.wind ...