我开发我的Java应用程序,所以我可以在我的机器接口的数据包嗅探和转储结果滚动PCAP文件的网络监控解决方案。当从Java代码启动(使用sudo)tcpdump命令,我得到tcpdump: /path/to/app/log/GTP00: Permission denied

细节

该命令使用Runtime.getRuntime().exec(command)其中command是一个字符串值sudo tcpdump -i eth0 -w /path/to/app/log/GTP -W 50 -C 20 -n net 10.246.212.0/24 and ip执行

启动Java应用程序的用户是“为testUser”属于组“testGroup”。这允许用户须藤tcpdump的。

目标目录具有以下属性:

[testUser@node ~]$ ls -ld /path/to/app/log

drwxrwxr-x. 2 testUser testGroup 4096 Feb 4 15:40 /path/to/app/log

更多细节

启动命令行SUCCESFULLY创建指定文件夹中的文件PCAP命令。

[testUser@node ~]$ ls -l /path/to/app/log/GTP00

-rw-r--r--. 1 tcpdump tcpdump 1276 Feb 4 16:12 /path/to/app/log/GTP00

我已经开发了用于测试目的的简化Java应用程序

package execcommand;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.util.logging.Level;

import java.util.logging.Logger;

public class ExecCommand {

public static void main(String[] args) {

try {

String command;

String line;

String iface = "eth0";

String capturePointName = "GTP";

String pcapFilterExpression = "net 10.246.212.0/24 and ip";

int capturePointMaxNumberOfFilesKept = 50;

int capturePointMaxSizeOfFilesInMBytes = 20;

command = "sudo tcpdump -i " + iface + " -w /path/to/app/log/"

+ capturePointName + " -W " + capturePointMaxNumberOfFilesKept + " -C "

+ capturePointMaxSizeOfFilesInMBytes + " -n " + pcapFilterExpression;

Process process = Runtime.getRuntime().exec(command);

BufferedReader br = new BufferedReader(new InputStreamReader(process.getErrorStream()));

while ((line = br.readLine()) != null) {

System.err.println(line);

}

} catch (IOException ex) {

Logger.getLogger(ExecCommand.class.getName()).log(Level.SEVERE, null, ex);

}

}

}

这个测试计划,同一用户推出,成功创建指定的文件夹中PCAP文件。

[testUser@node ~]$ ls -l /path/to/app/log/GTP00

-rw-r--r--. 1 tcpdump tcpdump 1448 Feb 4 16:21 /path/to/app/log/GTP00

然后,我可以推断,这个问题以某种方式限制到我的Java应用程序。这是我的Java应用程序是如何启动:

exec java -Dknae_1 -Djavax.net.ssl.trustStorePassword= -Djavax.net.ssl.trustStore=/path/to/app/etc/certificates/truststore -Djavax.net.ssl.keyStorePassword= -Djavax.net.ssl.keyStore=/path/to/app/etc/certificates/keystore -d64 -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8887,suspend=y -XX:-UseLargePages -Xss7m -Xmx64m -cp /path/to/app/lib/knae.jar:/path/to/app/lib/xphere_baseentity.jar:/path/to/app/lib/mysql.jar:/path/to/app/lib/log4j-1.2.17.jar:/path/to/app/lib/tools.jar:/path/to/app/conf:/path/to/app/lib/pcap4j-core-1.7.5.jar:/path/to/app/lib/pcap4j-packetfactory-static-1.7.5.jar:/path/to/app/lib/jna-5.1.0.jar:/path/to/app/lib/slf4j-api-1.7.25.jar:/path/to/app/lib/slf4j-simple-1.7.25.jar com.app.package.knae.Knae knae_1

UPDATE

我能写/tmp内PCAP文件。我也试着给777个权限/path/to/app/log无济于事。这些都显示目录的attibutes:

[testUser@node ~]$ ls -ld /tmp

drwxrwxrwt. 10 root root 4096 Feb 6 10:13 /tmp

[testUser@node ~]$ ls -ld /path/to/app/log

drwxrwxrwx. 2 testUser testGroup 4096 Feb 6 09:25 /path/to/app/log

根据需要,我会提供任何其他信息。

为什么tcpdump的抱怨不能够写这个文件?

java. tcp. 权限,java - tcpdump的不能够写PCAP文件。没有权限 - SO中文参考 - www.soinside.com...相关推荐

  1. java csvreader使用,java - 构造函数csvreader(reader char)是不推荐使用的错误 - SO中文参考 - www.soinside.com...

    我想用servlet将文件CSV上传到MySQL,我有这样的代码,我的代码出错了. package ServToDb; import java.io.*; import java.sql.*; imp ...

  2. java自由布局名称_java - 找不到以下类:布局名称 - SO中文参考 - www.soinside.com

    我必须通过模板撰写屏幕.有4个简单文本字段,4个文本输入字段和7个不同的按钮.此时我没有触及按钮,因为当我尝试构建项目时,Android Studio会发出下一个警告: Missing classes ...

  3. java启动密码,java - 用户验证密码后如何启动java applet程序? - SO中文参考 - www.soinside.com...

    我正在尝试连接两个简单的java程序,一个密码登录程序,然后打开第二个程序(一个非常简单的PrintWriter程序). 我是一个大型菜鸟,所以尝试将二级程序添加到密码程序中.显然这没用.我看到很多关 ...

  4. java applog_java - 通过Logback登录到App Engine request_log - SO中文参考 - www.soinside.com

    我当前部署的当前Logback配置如下(您可以说我的构想已耗尽...): %-4relative [%thread] %-5level %logger{35} - %msg application.l ...

  5. 我的世界java无法连接服务器_java - 无法连接到Minecraft服务器 - SO中文参考 - www.soinside.com...

    当我尝试从此处使用Java从头开始制作的经过稍微修改的Minecraft客户端尝试连接到Minecraft服务器时,出现此错误:Minecraft原始客户端Java代码:Java sending ha ...

  6. Java点击按钮加一行数据_java - 单击按钮java时如何从txt文件绘制下一行? - SO中文参考 - www.soinside.com...

    单击按钮java时如何从txt文件绘制下一行? 问题描述 投票:0回答:1 import javax.swing.*; import java.awt.*; import java.awt.event ...

  7. java saop 中文乱码_java - 使用Java进行SOAP服务调用时出错 - SO中文参考 - www.soinside.com...

    我有HTTPS Web服务.我可以使用wsimport生成Java类,但是在调用服务时收到以下异常:com.sun.xml.internal.ws.client.ClientTransportExce ...

  8. linux查看文件安全权限,Linux系统下如何查看及修改文件读写权限

    查看文件权限的语句: 在终端输入: ls -l xxx.xxx (xxx.xxx是文件名) 那么就会出现相类似的信息,主要都是这些: -rw-rw-r-- 一共有10位数 其中: 最前面那个 - 代表 ...

  9. linux系统怎么查看权限设置密码,linux系统怎么查看及修改文件读写权限设置

    在linux中查看与修改文件权限我们都必须使用命令来操作,不能像windows一样点几下就好了,那么linux系统怎么查看及修改文件读写权限设置?接下来大家跟着学习啦小编一起来了解一下linux系统查 ...

最新文章

  1. 数据连接linux网络编程之TCP/IP基础(四):TCP连接的建立和断开、滑动窗口
  2. 深度学习模型压缩与加速综述
  3. Windows 2003 AD升级到 Windows 2008 AD
  4. python写web难受-pythonweb为什么不火-问答-阿里云开发者社区-阿里云
  5. 信息系统项目管理师:第5章:项目范围管理-重点汇总
  6. 一种压缩图片的方法---Machine learning 之 K-Means
  7. 用matlab生成ASK FSK PSK,通信原理课程设计(matlab实现ASK FSK PSK).doc
  8. 共享内存中使用指针_详解c++中字符指针数组的使用
  9. LNMP一键安装shell脚本
  10. Delphi-IOCP API代码的封装和流程分析
  11. Android自定义控件学习(六)-------使视图互动
  12. 做个插件MaterialSpinner笔记
  13. IIS与Apache同时使用80端口
  14. java泛型范围_Java泛型类型中的通配符参数在其范围内的正式条件是什么?
  15. 深入浅出统计学 笔记 总结 学习心得
  16. Windows7 简体中文旗舰版下载 (MSDN官方发布正式版原版镜像)
  17. oo结尾的单词发音规律
  18. MOSFET的特性曲线及特性方程
  19. Python3.5抓取代理IP并验证有效性
  20. mysql单节点扩展为主从复制_MySQL主从复制

热门文章

  1. java实验的总结_Java实验总结——初学(上)
  2. kubernetes资源--RC和RS
  3. 超越cookie - 使用DOM sessionStorage和localStorage来保存更多信
  4. FBI或被允许隐瞒解锁iPhone技术 不向苹果公开
  5. 2016 中国大数据技术大会 相关资料
  6. 一个软件测试员的工作与学习(二)
  7. oracle与sqlserver比较
  8. matlab使用histogram画直方图划分柱宽度不一致问题
  9. linux子网掩码和ip计算,子网掩码的计算 - winglok的个人页面 - OSCHINA - 中文开源技术交流社区...
  10. 数字游戏---巧妙解答