我正在为Ubuntu平台下的Halcon13.0编写camera接口,接口名为hAcqxVision,由名为hAcqxVision.so的文件实现,该接口fill将调用厂商的名为libtycam.so的驱动程序,但调用libtycam.so时必须使用根权限,否则会报错。
然后我写了一个可执行的二进制文件,用根权限直接调用libtycam.so,它工作得很好。但是当使用HALCON和hAcqxVision.so时,它将失败,并且HALCON不能以根权限运行。
你能告诉我实现这一点的方法吗?谢谢。
发布于 2017-12-08 18:34:57
这是一个通用的答案,但在unix-es上,通常的方法是以root用户身份启动(如有必要,请使用suid位),然后删除程序中不需要root用户的部分的权限。看一下seteuid和保存的used id概念。
https://stackoverflow.com/questions/47712136
复制相似问题