有时您可能希望使用在不同环境中未经过良好测试的应用程序,但您必须使用它们。在这种情况下,关注系统的安全性是正常的。在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. MySQL中drop,delete与truncate的区别

    drop直接删掉表 truncate删除表中数据,再插入时自增长id又从1开始 delete删除表中数据,可以加where字句. (1) DELETE语句执行删除的过程是每次从表中删除一行,并且同时将 ...

  2. 【EatBook】-NO.2.EatBook.2.JavaArchitecture.1.001-《修炼Java开发技术在架构中体验设计模式和算法之美》-

    1.0.0 Summary Tittle:[EatBook]-NO.2.EatBook.2.JavaArchitecture.1.001-<修炼Java开发技术在架构中体验设计模式和算法之美&g ...

  3. js快速排序算法解析

    数组的快速排序算法,和并归排序步骤基本类似. 都是先拆分,后合并.并归排序是:拆分容易,合并难. 快速排序是:拆分难,合并容易 要理解快速排序,首先要理解拆分逻辑 要素:找一个基准点,通过操作使得数列 ...

  4. JAVA_POI 操作Excel

    转自: http://rensanning.iteye.com/blog/1538591# Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API ...

  5. MySQL数据类型--与MySQL零距离接触2-8查看数据表

    SHOW COLUMNS FROM tb_name 写入列之后,需要写入行,也就是记录:INSERT 插入记录:INSERT [INTO]  tbl_name  [(col_name,...)]  V ...

  6. ida pro 使用

    交互式反汇编器专业版(Interactive Disassembler Professional),人们常称其为IDA Pro,或简称为IDA.是目前最棒的一个静态反编译软件,为众多0day世界的成员 ...

  7. 基于python+Testlink+Jenkins实现的接口自动化测试框架V3.0

    基于python+Testlink+Jenkins实现的接口自动化测试框架V3.0 目录 1. 开发环境2. 主要功能逻辑介绍3. 框架功能简介 4. 数据库的创建 5. 框架模块详细介绍6. Tes ...

  8. cocos2d JS 中的数组拼接与排序

    var arrA = [];//创建三个局部变量的新数组 var arrB = []; var arrC = []; var newCards = this.MyMahjong;//创建一个新的局部变 ...

  9. 28.json数组,select选择,input输出对应数据

    效果:选择对应的车类,下面的input会实时出现车价. html: <form action="" class="priceModelform1"> ...

  10. node.js初识02

    node.js相较于那些老的服务器语言,他的优势在于,节省了I/O的时间,主要的特点是单线程,非阻塞和事件驱动,其实三个说的是同一个事情,相较于多线程而言,单线程的特点是,使用的那一条线程的cpu的利 ...