我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Linux非root用户程序如何使用小于1024端口

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Linux非root用户程序如何使用小于1024端口

小编给大家分享一下Linux非root用户程序如何使用小于1024端口,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

***种方法:

SetUID

为用户的应用程序在执行位设置user ID能够使程序可以有root权限来运行,这个方法让程序能够像在root下运行有同样的效果,不过需要非常小心,这种方法同样会带来安全风险,特别是当要执行的程序本身存在安全风险。使用的方法是:

chown root.root /path/to/application #使用SetUID chmod u+s /path/to/application

我们可以看到在系统下,/usr/bin/passwd这种文件,就使用了SetUID,使得每个系统的用户都能用passwd来修改密码——这是要修改/etc/passwd的文件(而这个只有root有权限)。

既然要使用非root用户运行程序,目的就是要降低程序本身给系统带来的安全风险,因此,本方法使用的时候需要特别谨慎。

第二种方法:

CAP_NET_BIND_SERVICE

从2.1开始,Linux内核有了能力的概念,这使得普通用户也能够做只有超级用户才能完成的工作,这包括使用端口1

获取CAP_NET_BIND_SERVICE能力,即使服务程序运行在非root帐户下,也能够banding到低端口。使用的方法:

#设置CAP_NET_BIND_SERVICE setcap cap_net_bind_service =+ep /path/to/application

Note:

这个方法并不是所有Linux系统通适,内核在2.1之前的并没有提供,因此你需要检查要使用此方法所在系统是否支持(Linux must support capacity);

另外需要注意的是,如果要运行的程序文件是一个脚本,这个方法是没有办法正常工作的(Script won't work)。

第三种方法:

Port Forwarding

如果要运行的程序有权限监听其他端口,那么这个方法是可以使用的,首先让程序运行在非root帐户下,并绑定高于1024的端口,在确保能正常工作的时候,将低端口通过端口转发,将低端口转到高端口,从而实现非root运行的程序绑定低端口。要使用此方法可以使用下面的方式:

# Enable the IP FORWARD kernel parameter. sysctl -w net.ipv4.ip_forward=1   # Use iptables rules to redirect packets iptables -F -t nat iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to:8088

***步使用sysctl确保启用IP FORWARD功能(此功能在Red Hat/CentOS默认是被禁用的),注意,代码中使用的sysctl设置是临时性设置,重启之后将会被重置,如果要长久保存,需要在/etc/sysctl.conf文件内修改:

# Default value is 0, need change to 1. # net.ipv4.ip_forward = 0 net.ipv4.ip_forward = 1

然后从文件中加载新的配置

# load new sysctl.conf sysctl -p /etc/sysctl.conf   # or sysctl -p # default filename is /etc/sysctl.conf

第二步就是使用iptables的规则来实现端口转发到程序所在的端口,示例中我们要将80端口转发到8088。

此种方法能够比较好的达到我们的目的,我们的程序可以通过非root用户来运行,并能够对外提供低端口号的服务。

第四种方法:

RINETD2

这种方法使用的也是端口转发,此工具可以将本地端口映射到远程端口,但此功能对于我们当前的功能来说,有点鸡肋,毕竟我们新增了一个额外的程序,这将可能会增加我们系统的风险性。在此不做推荐。

以上是“Linux非root用户程序如何使用小于1024端口”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Linux非root用户程序如何使用小于1024端口

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Linux非root用户程序如何使用小于1024端口

小编给大家分享一下Linux非root用户程序如何使用小于1024端口,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!***种方法:SetUID为用户的应用程序在执
2023-06-16

如何使用 Podman 以非 root 用户身份运行 Linux 容器

本篇内容主要讲解“如何使用 Podman 以非 root 用户身份运行 Linux 容器”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用 Podman 以非 root 用户身份运行 Lin
2023-06-15

如何用python编写小程序探测linux端口占用情况

这篇文章给大家介绍如何用python编写小程序探测linux端口占用情况,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。今天要使用python写一个端口探测的小程序,以检测一些特定的服务端口有没有被占用,突然发现自己居然
2023-06-22

如何使用nodejs搭建微信小程序支付接口

这篇文章主要介绍“如何使用nodejs搭建微信小程序支付接口”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何使用nodejs搭建微信小程序支付接口”文章能帮助大家解决问题。支付流程一、向后端服务器
2023-07-04

如何使用微信小程序显示用户当前地理位置

今天小编给大家分享一下如何使用微信小程序显示用户当前地理位置的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。wx.getLoc
2023-07-02

微信小程序如何使用uni-app一键获取用户信息

本篇内容介绍了“微信小程序如何使用uni-app一键获取用户信息”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!用户不想输入账号密码,一键登录
2023-07-05

电脑如何使用dos命令查看端口被哪个程序占用

这篇文章给大家分享的是有关电脑如何使用dos命令查看端口被哪个程序占用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 具体操作步骤如下:1、按 Win + R 组合键,打开运行,并输入:cmd,然后确定或回车,打
2023-06-27

微信小程序中如何使用wx.onCopyUrl(function callback)监听用户点击复制链接

这篇“微信小程序中如何使用wx.onCopyUrl(function callback)监听用户点击复制链接”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“微信小程序中如何使用wx.onCopy
2023-06-26

如何在Linux终端中使用后台运行模式启动程序

这篇文章主要讲解了“如何在Linux终端中使用后台运行模式启动程序 ”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何在Linux终端中使用后台运行模式启动程序 ”吧!我们有很多可以在Lin
2023-06-13

如何使用nc命令检查Linux系统远程端口是否打开

小编给大家分享一下如何使用nc命令检查Linux系统远程端口是否打开,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!端口是与 Linux 操作系统上的应用或进程的通
2023-06-16

我们如何使用 mysqldump 客户端程序从数据库中备份特定表?

通过使用 mysql dump 客户端程序,我们可以将数据库中的特定表备份到扩展名为“.sql”的文件中。可以通过以下示例来理解 -示例在这个示例中,借助 mysql dump 客户端程序,我们从名为“student_info.sql”的文
2023-10-22

小程序开发中如何调用接口获取登录凭证进而换取用户登录态信息

这篇文章主要为大家展示了小程序开发中如何调用接口获取登录凭证进而换取用户登录态信息,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“小程序开发中如何调用接口获取登录凭证进而换取用户登录态信息”这篇文章
2023-06-26

编程热搜

目录