我有一个以非根模式运行的Java应用程序。
我的应用将创建一个TFTP服务器(使用apache commons tftp)。TFTP服务器绑定到端口69(默认TFTP端口)。当从IDE运行应用程序时,由于IDE是以根用户身份运行的,所以一切正常。但如果应用程序是从其他用户运行的,我会收到错误消息
java.net.BindException: Permission denied
很明显,对于非root用户,我不能打开端口。是否有解决此问题的方法?
发布于 2012-04-25 15:51:50
来解决这个问题。您可以使用setuid()
和setfid()
系统调用。这样,您就可以临时提升权限,然后将权限重新恢复为用户权限。
发布于 2018-10-09 04:11:18
在我的例子中,这个问题发生在Solaris11操作系统上。我为用户添加了使用1024以下端口的权限。
https://stackoverflow.com/questions/9819407
复制相似问题