问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何使用root用户运行J版Ceph

发布网友 发布时间:2022-04-23 05:22

我来回答

1个回答

热心网友 时间:2023-10-16 05:58

在Linux下,默认端口1024下的程序是要在root下才能使用的,在其他用户下,如果尝试使用将会报错。在有的时候,我们可能考虑程序运行在root帐户下,可能会给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);

2. 另外需要注意的是,如果要运行的程序文件是一个脚本,这个方法是没有办法正常工作的(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

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

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
怎样备份iPhone的照片? 奇迹的战士怎样加点? 奇迹私服战士8W点的怎么加点PK厉害 房屋装修建材的选购家装建材种类有哪些 家装建材都包含什么 家装应该买什么东西 劓刑简介 电信手机停机保号怎么办理? 定胆定胆方法 3d定胆方法有哪些? ceph写分片失败 ios怎么下荒野行动(要详细过程) ceph osd down怎么启动 ceph centos7 集群怎么重启 梦见鱼塘放水结果水倒流回来了,而且很大一下装满整个鱼塘,水没有漫堤... 荒野行动的正版在哪里下载? 昨晚梦见河里涨水了,水特别的满,好像再差一滴水就能溢出来似的 梦到河里涨水了是什么预兆? 梦见下雨河水灌满倒流,然后又下降顺流了 做梦梦到河水是什么意思? 梦见河水一会顺流,一会倒流,最后又顺流是什么意思? 梦见大洪水倒流 梦见一家人出去玩,忽然看见河水在倒流,马上就发洪水了,不过我们都站在了高处 刚才做梦梦到河水倒流,然后又顺流,接着涨水了 刚才做梦梦到河水倒流,接着又顺流,最后涨水, 怎么解释河水倒流? 梦见河水倒流会发生什么事? 刚才做梦梦到河水倒流,然后顺流 接着涨水。 腌鸭蛋怎么做 鸭蛋怎么腌制? 荒野行动从下载到安装要多少内存?安装后要多少? Ceph分布式存储是怎么防止脑裂的? 为什么安装荒野行动是显示安装失败 proxmox 可以部署ceph吗 荒野行动pc版 下载不了 孤岛危机2剧情 安装荒野行动PC版总是出现这种情况为什么? openstack怎么查计算节点的vm接口ip地址 为什么荒野行动PC版下载后安装失败?说找不到一个什么软件 如下图 ceph怎么重启集群 centos7 集群修改ceph.conf之后要怎么生效 借点钱上征信吗 借点钱贷款上不上征信 凡普信,好分期,现金贷,借点钱,手机贷,你我贷,达飞云贷,来分期,想问问各位高人。,这些都上征信吗 请问 借点钱APP上征信吗 需要借点钱,朋友给推荐了拍拍贷,但是不知道拍拍贷上不上征信,有没有大神给解解? 网上小额贷款上征信吗? 拍拍贷上不上征信啊?需要借点钱周转,但是又不想影响到自己的征信。 想在拍拍贷上借点钱,请问大家拍拍贷上征信吗? 拍拍贷上不上征信?打算借点钱花花,个人征信可能不太好。