有时您可能希望使用在不同环境中未经过良好测试的应用程序,但您必须使用它们。在这种情况下,关注系统的安全性是正常的。在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. 自动化工具之三:pywinauto

    Python自动化工具:pywinauto 一.pywinauto的安装 (1)安装命令 pip install -U pywinauto/pip3 install -U pywinauto (2)验 ...

  2. 004-mac上安装以及Nginx 配置文件nginx.conf详解

    1.mac上nginx安装 安装brew:go-001-环境部署,IDEA插件 安装nginx: brew search nginx brew install nginx 当然也可以编译安装 安装完以 ...

  3. golang 与 c语言 之间传递指针的规则提案

    https://go.googlesource.com/proposal/+/master/design/12416-cgo-pointers.md https://github.com/golang ...

  4. Python第三弹--------文件和异常

    文件读取: pi_digits.txt 3.1415926535 8979323846    2643383279 file_reader.py with open('pi_digits.txt') ...

  5. pip安装时遇到的问题集锦,持续更新!

    1.Python安装时出现Could not fetch URL https://pypi.python.org/simple/pool/: There was a problem confirmin ...

  6. zip()

    zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表. 如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以 ...

  7. android studio 编译sdk版降低报错解决方法

    解决办法如下: 步骤1:在gradle中修改 compile sdk 版本,比如 8. 步骤2:在gradle中删除v7包的依赖 步骤3:在manifest中修改theme,supportsRtl.t ...

  8. hadoop管理

    hadoop管理工具: 一,dfsadmin工具 dfsadmin 工具用途比较广,既可以查找HDFS状态信息,又可以在HDFS上执行管理操作,以hdfs dfsadmin形式调用,且需要超级用户权限 ...

  9. TP5数据库操作方法

    一.TP5数据库操作方法 1.name()方法作用 : 指定默认的数据表名(不含前缀)示例 : Db::name(‘weiba_post’);返回 : Db对象 2.setTable()方法作用 : ...

  10. 从0开始搭建vue+webpack脚手架(一)

    基于多数情况下都是使用vue-cli初始化项目, 却始终未去了解其原理.从零开始搭建,可以让自己更深层次的理解框架. 首先从最基本的npm 开始, 至于安装npm 和 node就不用再赘述了,那是前端 ...