ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

是否在sys / stat.h中定义了Mac系统完整性保护?

2019-11-08 04:50:33  阅读:224  来源: 互联网

标签:darwin c-3 linux macos


我已经在Internet上进行了一些搜寻,但还没有找到一种以编程方式确定给定文件是否已打开完整性检测的好方法.

我注意到,与我遇到的大多数Linux标头不同,Darwin不在/sys/stat.h中定义的stat结构中定义其st_mode位.看来,实现此目标的最佳方法是处理现有的sys / stat.h标头,但是,很明显为什么他们不愿意对此公开.有人进一步调查过吗?

编辑

根据Ken Thomases的建议,我的支票应如下所示.查看源代码中的注释似乎看起来应该可以,但是它仍在尝试输入目录,例如:
“ / Users /< USER> / Library / IdentityServices”
导致分段错误.仅供参考,我已经在有和没有预处理程序IFDEF语句的情况下对其进行了测试.

if(
  (entry->d_type == DT_DIR) 
    && ((fileStat.st_flags & SF_RESTRICTED) == 0)
    && (((fileStat.st_mode & 5) == 5)
      || (((fileStat.st_mode & 40) == 40)
        && (fileStat.st_gid == userHomeStat.st_uid))
      || (((fileStat.st_mode & 320) == 320)
        && (fileStat.st_uid == userHomeStat.st_uid))))
 {
   std::cout<< "Decending into --> " << fullPath.c_str() <<std::endl;
   packIndexFrom((fullPath).c_str());
 }  

编辑

https://developer.apple.com/library/archive/documentation/Security/Conceptual/System_Integrity_Protection_Guide/FileSystemProtections/FileSystemProtections.html#//apple_ref/doc/uid/TP40016462-CH2-SW1

我在Apple网站上找到了这个.似乎表明$HOME / Library区域(我正在挂断的区域)受到某种类型的限制,开发人员具有独占的r / w访问权限.
不幸的是不能解决我的问题.

编辑

Dans-MBP:tmp mreff555$cd ~/Library/IdentityServices/
Dans-MBP:IdentityServices mreff555$pwd
/Users/mreff555/Library/IdentityServices
Dans-MBP:IdentityServices mreff555$ls
ls: .: Operation not permitted
Dans-MBP:IdentityServices mreff555$

Dans-MBP:IdentityServices mreff555$ls -ldO ~/Library/IdentityServices
drwxr-xr-x  9 mreff555  staff  - 288 Apr 14 10:04 /Users/mreff555/Library/IdentityServices

解决方法:

有些标志与模式标志分开.您正在struct stat的st_flags字段中寻找SF_RESTRICTED标志.该标志实际上是在sys / stat.h中定义的.

模式标志(例如S_IRUSR)在sys / _types / _s_ifmt.h中定义,该文件间接包含在sys / stat.h中.

标签:darwin,c-3,linux,macos
来源: https://codeday.me/bug/20191108/2005666.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有