如何执行在Linux上运行的应用程序

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

如何执行在Linux 上运行的应用程序关键字:Linux

先决条件

要充分理解本文,必须具备Windows 环境下桌面应用程序的工作经验,我认为读者对如何使

用Linux 桌面有一个基本的了解。使用一个运行的Linux 计算来机探讨本文的概念和示例是很有帮助的。

概述

有时候第一次在Linux 上运行一个应用程序需要一点额外工作。有些应用程序,比如服务器

服务,可能无法安装为服务,因此您需要从命令行启动这些应用程序。对于启动这些应用程序的用户帐户而言,需要在应用程序文件中设置执行许可标志(x) 。

运行用户空间应用程序

Linux 在内核空间或用户空间运行进程。用户空间是操作系统的区域,应用程序通常在此运行。简单地说,每个用户帐户有其自己的用户空间,应用程序在这个领域内运行。

默认情况下,只有root 用户有权访问内核空间。root 用户是Linux 中的超级用户,相当于Windows 中的管理员帐户。在root 用户帐户下运行应用程序可能会引起安全风险,是不可取的。

很多服务器服务需要root 权限启动服务。然而,服务启动后,root 帐户通常会将其移至服务帐户。严格地说,Linux 中的服务帐户才是标准的用户帐户。主要区别是服务帐户仅用于运行

一个服务,而不是为任何实际登录的用户准备的。

设置权限

您可以使用chmod 命令在一个文件中设置执行权限。在Linux 中,umask 设置通常用来防止下载的文件被执行,也有充分的理由相信,因为它有助于维护Linux 计算机的安全性。

大多数Linux 发行版具有一个值为022 的umask 设置,这意味着,默认情况下一个新文件权限设置为644.权限的数字表示形式采用读(4) 、写(2)、执行(1) 的格式。因此,默认权限

为644 的应用程序下载意味着文件所有者有读写权限,而组用户和其他用户只有读权限。

例如,为每个人赋予一个文件的执行权限,使用chmod a+x 命令。a 表示所有人,加号(+) 表示添加,而x 表示执行。同样地,如果应用程序是一个服务器服务,您应该确保只有授权帐户才有权执行此服务。

如果一个应用程序能够在标准用户帐户权限下运行,但只有特定组中的用户才需要使用它,您可以将该组所有者权限设置为可执行,然后将这些用户添加到该组中。

更具体地说,您可以在一个可执行文件中设置访问控制列表(ACL) 权限,赋予特定用户或组

权限来运行该应用程序。使用setfacl 实用工具设置ACL 权限。

对于这些需要以root 用户启动进程的应用程序,比如服务器服务,您有几个选择。总结了允许用户执行需要root 权限的服务器服务的各种选项。

选项描述

作为root 用户不推荐用于服务器服务。当用户已经知道root 密码而且应用程序泄露不是首要关注问题时,可用于应用程序。

SetUID 由于安全问题,不推荐使用。SetUID root 用户,执行一个文件。

sudo 很常用,并且被认为是一个

很好的实践。可能额外需要root 权

限的文件。该用户不需要知道

带有文件权限的标准用户帐户允许标准用户以另一个用户方式,比如

sudo 授予一个用户或组成员权限以执行root 密码。

在一个文件上为用户所有者、组所有者或其他人(所有人)

设置执行权限。这是授予那些不需要 root 权限来执行应用程序的用户的常用方法。

带有ACL 权限的标准用户帐户 使用较少,但是如果您不想授予一个用户 sudo 访问

或者更改文件的权限,这也是一个可行的解决方案。在一个文件上使用 setfacl 命令,您可

以授予一个特定用户或用户组执行该文件的权力。

从命令行运行

在管理Linux 服务器时,从命令行运行应用程序是一项基本的任务。很多应用程序使 用shell 脚本(类似于 Windows 批处理文件.bat)来启动应用程序并执行其他任务,比如设 置变量以及为其他

用户分配进程。例如,应用程序可能需要一个

Java ? (JVM)来执行。那样的话,shell 脚本可以设置适当的环境变量,然后执行 行

Java Archive (JAR)或类文件。这同样适用于使用 Perl 、Python 、甚至 (当然,C#编译的应用程序可以在 Linux 上运行)

从命令行或者 shell 提示符执行应用程序的一个常用方法是使用

./

Linux 中使用句号(。)和正斜杠(/),就意味着告诉环境您想要以可执行文件运行该文件。 例如,运

行一个名为

myapp 的可执行文件,您可以使用

./myapp 命令。同样地,您可以在

文件名之前加上语言环境,比如:

sh php p ytho n perl java

但更多情况下,套装应用程序使用 shell 脚本,以#!符号设置环境变量提供该语言的

运行时可执行路径,比如

#!/usr/bin/python.您也应该熟悉这种方法。

清单1使用catalina.sh 默认脚本通过./方法启动 Apache Tomcat 应用程序服务器。 然后,使用sh 方法启动服务器。因为默认端口是 8080,标准用户不需要对其进行特别修

改就可以启动该服务。

清单1.从命令行执行应用程序

(-/catsLina.gh start

Using

Using CAIAllNA_HC'iiE: / opt/ apache- toiucdt-, 0,2 6 Dsin7 CATALINa__TMPDIR : /opt /apache-tomcat-7.0.2S/temp

Uaingf CUkSSP^Hi / opt / apacfic -t MUMT :-? .0.26 /bin/JMC cstrap .jar;

/ opu/apache-t cnicau-7.0.26/bin/1 HIIC £L -]ulL,:ar

* ,/catalina-sh stop

$ 3h Catalina.sh atart

daliig : / Dpt/ ipaciit' toricAt' ■;. O'. 2 6

CJming CAIAlIKi^HOME: /opt/apacJie-CQEMt-7,[}□ 2€

Using CATALINA_TMPDTR: /opt /apache-tcmcat-7,0.26/temp

Using CI^SPAIH; /opt/aEMClie-toflijtat-?.0.2^/trn/bostatrap.jar:

Virtual Mach

ine Java 命令来运 命令。如果您在

Usg JIlE_EiOHE:

/uar

Using JEE_E-OME:

/uar

相关文档
最新文档