【问题标题】:Is possible to check rights to ioctl可以检查 ioctl 的权限
【发布时间】:2014-07-03 12:36:55
【问题描述】:

我正在为嵌入式设备编写网络配置系统,它使用 ioctl 调用。 在启动系统时,我需要检查未来调用的权限。 是否可以在不调用 ioctl 的情况下检查 ioctl(ID) 调用的足够权限或权限不足?

【问题讨论】:

    标签: c++ c linux ioctl


    【解决方案1】:

    我不知道这个答案是否符合您的要求,但您是否关注过能力?

    if (!CAP_IS_SUPPORTED(CAP_NET_ADMIN)){ 
         EXIT_FAIL("Capability CAP_NET_ADMIN is not supported\n");
    }
    

    摘自人:

    ... 
    CAP_NET_ADMIN
     Perform various network-related operations:     
       * interface configuration;
       * administration of IP firewall, masquerading, and accounting
       * modify routing tables;
       * bind to any address for transparent proxying;
       * set type-of-service (TOS)
       * clear driver statistics;
       * set promiscuous mode;
       * enabling multicasting;
    ...
    

    点击帮助

    【讨论】:

      【解决方案2】:

      这听起来确实是糟糕的设计,您不能检查“未来通话的权利”,因为某些事情可能会发生变化。毕竟是未来,所以真的很难预测,很多技术方案不尝试就更好了。

      如果您认为调用“应该”成功,但无论如何都失败了,那么您仍然需要处理它。所以你也可以处理权限失败,而不是提前尝试检查它。

      【讨论】:

      • 当然我应该检查 ioctls 的结果,但是一开始我想做自我诊断
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-26
      • 2013-10-21
      • 1970-01-01
      • 2016-07-22
      相关资源
      最近更新 更多