小编3bd*_*lla的帖子

在没有root特权的情况下更改Linux中的网络设置

我正在谈论的设置是IP,子网掩码和默认网关(设置和获取)。为了设置所有这些设置,我使用了该ioctl函数以及诸如SIOCSIFADDR和等选项SIOCSIFNETMASK。为了获得IP和掩码,我使用相同的方法,但具有类似的选项SIOCGIFADDR。为了获得默认网关,我解析了文件/proc/net/route并读取了接口的相应默认网关地址。

这整个过程非常完美,但是具有root特权。有什么方法可以在不授予root用户的情况下更改这些设置?这是我无法解决的要求。像这样的问题来更改所有权可以通过将代码放在单独的可执行文件中并将该可执行文件的所有权更改为root,然后从主应用程序调用它来解决问题。

我只想知道是否可以在不授予该应用程序根访问权限的情况下更改此类设置。

c linux privileges network-programming root

3
推荐指数
1
解决办法
2718
查看次数

VS2017安装程序项目输出不会替换当前安装

我有一个标准的 Windows 窗体应用程序,正在使用 VS2017 安装项目进行部署。使用“文件系统”打开安装项目时,我将以下内容添加到应用程序文件夹中:

  1. win 表单应用程序的主要输出。
  2. EPPlus库的 dll。
  3. 一些Excel文件。

安装项目提供了.msi很好的输出包。问题是,当我.msi在构建安装项目(当然是在构建源项目之后)后运行输出并运行应用程序时,我看不到我的更新,甚至C:\Program Files ....目录上的文件也没有修改。我尝试更改产品代码并增加版本,但它不起作用。我的问题是:

  1. 除了删除并重新安装程序之外,还有什么办法可以使安装程序包真正更新软件的安装吗?
  2. 无论我如何更新软件,如何避免#1中的问题?
  3. 原因是什么以及如何避免此错误“已安装此产品的另一个版本”?我不确定我做了什么才让它弹出。
  4. 如果我希望源代码的某些部分位于单独的 dll 中,是否与添加类库项目并将其输出添加到安装项目一样简单?

非常感谢。

setup-project visual-studio-setup-proje visual-studio-2017

0
推荐指数
1
解决办法
3019
查看次数