c++ - pcap_dump() 仅对用户降低权限

标签 c++ linux file-permissions pcap libpcap

我正在努力改进给定的代码(不知道是谁写的)

我正在使用 pcap_dump()#include <pcap.h>捕获文件并将其写入磁盘。 正在写入的文件对组和其他 (-rw-r--r--) 也具有读取权限

有没有办法将其更改为用户只读/写(-rw--------) 或者我必须做一个解决方法。 谢谢

最佳答案

新文件是使用当前 umask 的权限创建的。 umask 指定哪些权限是允许的,例如 umask 077表示不允许组/其他权限,022(默认)表示不允许组/其他写权限

您可以在运行程序之前在 shell 中设置它,即

umask 077
./pcap_program

你也可以在程序中这样设置:

 #include <sys/types.h>
 #include <sys/stat.h>

 void foo() {
     umask(0077);  
 }

注意:需要开头的 0 才能使数字成为八进制数。

这些都会将新文件的权限设置为 600 (= 0666 & ~0077),或 -rw--------

关于c++ - pcap_dump() 仅对用户降低权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42975663/

相关文章:

php - 以不同方式处理 WSDL 文件的独立服务器

linux - 在 Linux shell 控制台中显示漂亮的字符表

linux - 如何启动在启动方法中包含无限循环的 Linux 服务(Bash 脚本)

linux - 设置文件夹和文件权限

linux - 文件/目录权限尾随 + ( drwxr-xr-x+ )

c++ - Aix Visual Age C++ 从版本 8 移至版本 11 模板问题

c++ - 无法在动态链接库 HCNetSDK.dll 中找到程序入口点 NET_DVR_RealPlay_V40

linux - 使用文件夹权限 <= 750 的 WordPress

C++友元类和友元成员函数

c++ - 将 AT&T 语法转换为 Intel 语法 (ASM)