我正在两台Win10机器上运行Win10,一台家庭和一台Pro。我的软件使用tftpd从网络对等端接收CSV。tftpd由init ()运行,行如下:
td:2345:respawn:/usr/sbin/tftpd -vvvvv -L -c -p -u Larry -U 000 -s /tmp
据我所知,没有xinetd运行,也没有xinetd或tftp配置文件。在Win10家庭系统上,这是我的开发系统,这是工作的。在Win10 Pro系统上失败。客户超时了。在/var/log/messages (Syslog)中没有条目。Windows应用程序日志显示“无法删除特权:不允许操作”
当我停止init并在shell中运行该命令行时,它可以工作,客户端可以在其中传输文件。但我的系统需要init的重生管理。这种模式是12年前在Cygwin32 on Win7上建立的。我的客户现在正在更新个人电脑,我们有这个故障。如果我现在正在开发,我会把这个功能放在一个raspi上,但这只是一个PC的改变。
有人能推荐一种配置,使Win10 Pro下的init下的tftpd执行更接近于用户shell中相同命令行的执行吗?
编辑1:我也试过suid。tftpd.exe是由用户帐户拥有的,而不是系统或任何cygwin为root用户所拥有的。Suid不以解决问题的方式设置权限。
编辑2:将cygdrop添加到inittab行没有帮助。
发布于 2022-05-27 17:37:24
我猜这将是另一个卷尾草。我在三天的磨难中没有找到好的答案。这个问题似乎涉及到Windows中的域用户与本地用户,以及Cygwin如何与Windows用户数据库交互,不管这是什么。最后,我在一个从用户登录开始的无限循环批处理文件中运行tftp服务器,但是很容易被人杀死顶级shell。在此过程中,我为Cygwin重新编译了tftpd-hpa,并注释掉了用户ID的更改--这在我的PC上有效,但客户的不起作用。如果他们对解决方案有问题,我可能会将其推迟到raspi。
https://stackoverflow.com/questions/72378904
复制相似问题