2011-06-28 54 views
-2

您好我有一个C程序,我从服务器上scp'd回到我的客户机。我的客户端机器运行的是一个ubuntu shell,等等等等不重要..用linux命令将文件类型更改为C可执行文件

操作系统当前将C可执行文件视为纯文件。我该如何改变这一点。

注意:我的许多操作系统外壳功能已被剥离...所以请随时发布多个解决方案。注意2:没有办法将scp或cp文件保存为可执行文件(由于我的设置非常特殊)。

非常感谢。

+1

/lib/ld-linux.so.2 your.executable – osgx

+2

没有“C可执行文件”这样的东西。只有可执行文件。确保您的桌面和服务器与兼容系统(用于相关库)的架构相同(适用于二进制文件)。 –

回答

2

chmod +x ./file应该给它。任何类型的Unix应该有一些chmod

+1

或添加.exe如果您的运行窗口 –

+0

chmod已被删除。 – Rell3oT

+1

@ Rell3oT:你必须在chroot或监狱之类的东西里面。这很不寻常。 –

1

Unix/Linux不知道任何“filetype可执行文件”。你的意思是,像cnicutar回答,+的标志。

此标志标志着您的二进制as exectuable。这个标志只是一个文件权限,被称为执行,你需要它来运行二进制文件。

如果在scp之后没有剩下+ x标记,系统管理员可能已将标记noexec设置为文件系统,以防止运行任何不可信的软件。

+1

如果他可以运行cp或scp,有一个'ld-linux.so.2'。请问ld-linux.so.2在'noexec' fs上启动一个文件? – osgx

+1

我从来没有见过只有一个文件系统的系统,而不是如果我给用户shell帐户。 –

+1

不,ld-linux.so.2不会从noexec fs文件中加载文本段。但是如果Rell3oT没有noexec? – osgx

相关问题