linux 普通账户绑定1024以下端口
来源:互联网
时间:2026-02-26 13:07:35
作者:
系统大全为您提供
一、昨天收到一个开放需求: 能不能在这台机器单独开启一个普通的账户,需要的权限是可以绑定udp 53端口
这个帐号是给开发人员使用的
乍看这个需求,貌似很简单,但其实里面涉及一些技术问题(在Linux上普通用户无法绑定1024以下的端口),
当时为了不耽误开放工作,给了一台测试机的root,现在回过头来解决改问题。
二、google得知,基本有两种解决方法:
1、常用的就是使用sudo给予普通用户一定的权限,不过这跟给root有什么区别,还得维护sudo。
2、debian系统下有一个小程序authbind,允许程序不使用root权限来绑定系统1024以下的特权端口,
在程序启动时必须调用authbind,authbind会调用一些环境变量,来允许你的程序绑定在特权端口。
Ubuntu 12.04安装authbind
apt-get install authbind
怎样使用authbind呢?通过配置文件区域来使用了,默认的配置文件区域在/etc/authbind目录下,里面有三个目录:byport、byaddr、byuid。
假如我们有个test账号,想运行一个程序绑定80端口
在byport目录下建立80文件:/etc/authbind/byport/80,设置test账户有80文件的使用权限,如果80文件可以被test访问,则绑定就是成功的,否则绑定就是失败的。
具体操作:
chmod 755 /etc/authbind/port/80
chown test.test /etc/authbind/port/80
在你要启动的命令前加上authbind --deep命令即可。
我们也可以直接在地址上绑定端口,在byaddr下建立ip:port文件,测试方法如上。
也可以在byuid目录下建立uid文件,只要你的test账号可以访问,否则绑定失败。
三、centos实现
由于authbind是基于debian的,所以在yum上找不到源,google也没有找到对应的rpm;
从github中发现:https://www.herecours.com/d/file/efpub/2026/26-26/20260226125423568857
down下来,按照指示rpmbuild -v -bb --clean SPECS/authbind.spec出现两个问题:
1、路径错误
[root@stat authbind]# rpmbuild -v -bb --clean SPECS/authbind.spec
error: File /root/authbind/SOURCES/authbind_2.1.1.tar.gz: No such file or directory
2、没能生成build目录
[root@stat authbind]# rpmbuild -v -bb --clean SPECS/authbind.spec
Executing(%prep): /bin -e ar/tmp/rpm-tmp.6tbsn7
+ umask 022
+ cd /root/authbind/authbind/BUILD
ar/tmp/rpm-tmp.6tbsn7: line 26: cd: /root/authbind/authbind/BUILD: No such file or directory
error: Bad exit status from ar/tmp/rpm-tmp.6tbsn7 (%prep)
RPM build errors:
Bad exit status from ar/tmp/rpm-tmp.6tbsn7 (%prep)
对rpmbuild不熟,但发现SOURCES/authbind_2.1.1.tar.gz,解压后发现Makefile,直接安装成功!
[root@stat authbind-2.1.1]# make
cc -g -O2 -Wall -Wwrite-strings -Wpointer-arith -Wimplicit -Wnested-externs -Wmissing-prototypes -Wstrict-prototypes -DMAJOR_VER='"1"' -DMINOR_VER='"0"' -DLIBAUTHBIND='"/usr/localb/authbindbauthbind.so.1"' -DHELPER='"/usr/localb/authbind/helper"' -DCONFIGDIR='"/etc/authbind"' -D_GNU_SOURCE -c -o authbind.o authbind.c
cc -g authbind.o -o authbind
cc -g -O2 -Wall -Wwrite-strings -Wpointer-arith -Wimplicit -Wnested-externs -Wmissing-prototypes -Wstrict-prototypes -DMAJOR_VER='"1"' -DMINOR_VER='"0"' -DLIBAUTHBIND='"/usr/localb/authbindbauthbind.so.1"' -DHELPER='"/usr/localb/authbind/helper"' -DCONFIGDIR='"/etc/authbind"' -D_GNU_SOURCE -c -o helper.o helper.c
cc -g helper.o -o helper
cc -D_REENTRANT -g -O2 -Wall -Wwrite-strings -Wpointer-arith -Wimplicit -Wnested-externs -Wmissing-prototypes -Wstrict-prototypes -DMAJOR_VER='"1"' -DMINOR_VER='"0"' -DLIBAUTHBIND='"/usr/localb/authbindbauthbind.so.1"' -DHELPER='"/usr/localb/authbind/helper"' -DCONFIGDIR='"/etc/authbind"' -D_GNU_SOURCE -c -o libauthbind.o -fPIC libauthbind.c
ld -shared -soname libauthbind.so.1 -o libauthbind.so.1.0 libauthbind.o -ldl -lc
[root@stat authbind-2.1.1]#
[root@stat authbind-2.1.1]#
[root@stat authbind-2.1.1]# make install
install -o root -g root -m 755 -d /usr/localb/authbind /usr/local/man/man1 /usr/local/man/man8
install -o root -g root -m 755 -s authbind /usr/local/bin/.
install -o root -g root -m 644 libauthbind.so.1.0 /usr/localb/authbind/.
strip --strip-unneeded /usr/localb/authbindbauthbind.so.1.0
ln -sf libauthbind.so.1.0 /usr/localb/authbindbauthbind.so.1
install -o root -g root -m 755 -s helper /usr/localb/authbind/.
chmod u+s /usr/localb/authbind/helper
install -o root -g root -m 755 -d /etc/authbind
/etc/authbind/byport /etc/authbind/byaddr /etc/authbind/byuid
[root@stat authbind-2.1.1]# cd /etc/authbind/
[root@stat authbind]# ls
byaddr byport byuid
之后按照authbind --deep实现linux 普通账户绑定1024以下端口。
以上就是系统大全给大家介绍的如何使的方法都有一定的了解了吧,好了,如果大家还想了解更多的资讯,那就赶紧点击系统大全官网吧。
本文来自系统大全https://www.herecours.com/d/file/efpub/2026/26-26/20260226125423568858
编辑推荐:
- linux 普通账户绑定1024以下端口02-26
- 快速学会使用Git和远程代码库02-26
- linux下对一个文件设置多个组的权限(setfaclgetfac02-26
- linux打开端口《图》02-26
- ubuntu14 安装jdk1.702-26
- Linux常见目录详解图02-26
- linux下lftp连接ftp服务器上传下载命令02-26
- Linux系统管理员必备工具系列之vmstat02-26
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- linux打开端口《图》
linux打开端口《图》
26-02-26 - Linux常见目录详解图
Linux常见目录详解图
26-02-26 - linux设备驱动程序的编写
linux设备驱动程序的编写
26-02-26 - Linux下的网络配置命令
Linux下的网络配置命令
26-02-26 - VNC远程连接Linux系统设置
VNC远程连接Linux系统设置
26-02-26 - word分数怎么打
word分数怎么打
26-02-26 - word2007自动生成目录?
word2007自动生成目录?
26-02-26 - 如何自定义Office 2003用户界面?
如何自定义Office 2003用户界面?
26-02-26 - word页码从任意页开始
word页码从任意页开始
26-02-26 - word怎么设置页眉和页脚?
word怎么设置页眉和页脚?
26-02-26
