如何执行在Linux上运行的应用程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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