Java中获取SMB共享文件名和权限

2024-04-18

我想要连接到 SMB 服务器并浏览其文件,对于给定的路径,能够检索文件和文件夹的列表以及名称和权限。

我需要支持所有 SMB 方言,并且能够从我的代码中做到这一点。

代码大概如下:

smbClient.connect(serverInfo);
info = smbClient.getShare(shareName);
for(File file : info.getFiles) {
    List<permission> permissions = file.getPermissions();
    //do something
}

我尝试了一些选项,例如smbj https://github.com/hierynomus/smbj, impacket https://github.com/CoreSecurity/impacket, nmap https://nmap.org/, samba https://www.samba.org/samba/docs/current/man-html/smbclient.1.html但他们似乎都不能满足我的上述要求。

有没有办法使用 Java、Python 或任何我可以从 Java 代码调用的 Linux CLI 来实现上述目标?


我想它可以帮助你提高jcifs-ng。

**// Option 1 - SMB2 and SMB3:**
Properties prop = new Properties();
prop.put( "jcifs.smb.client.enableSMB2", "true");
prop.put( "jcifs.smb.client.disableSMB1", "false");
prop.put( "jcifs.traceResources", "true" );
Configuration config = new PropertyConfiguration(prop);
CIFSContext baseContext = new BaseContext(config);
CIFSContext contextWithCred = baseContext.withCredentials(new NtlmPasswordAuthentication(baseContext, domain, fileSystemInfo.getUsername(), fileSystemInfo.getPassword()));
SmbFile share = new SmbFile(fullPath.replace('\', '/'), contextWithCred);
if (!share.exists())
{
    share.mkdirs();
}
share.close();

// 选项 2 - SMB1 和 CIFS:

SingletonContext context = SingletonContext.getInstance();
CIFSContext testCtx = context.withCredentials(
    new NtlmPasswordAuthentication(
        context, domain, fileSystemInfo.getUsername(), fileSystemInfo.getPassword()
    )
);
SmbFile smbFile = new SmbFile(fullPath.replace('\', '/'), testCtx);
if (!smbFile.exists())
{
    smbFile.mkdirs();
}
smbFile.close();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java中获取SMB共享文件名和权限 的相关文章

随机推荐

  • 具有区域格式的 NSDateFormatter

    我使用此代码来处理来自 json feed 的日期字符串 NSDateFormatter formatter NSDateFormatter alloc init formatter setDateStyle NSDateFormatter
  • 如何让 gif 动画在 WPF 中工作?

    我应该使用什么控制类型 Image MediaElement etc 我无法得到这个问题的最流行的答案 上面由达里奥 正常工作 结果是奇怪的 断断续续的动画和奇怪的伪影 到目前为止我找到的最佳解决方案 https github com Xa
  • Hibernate:是否可以在二级缓存中保存瞬态字段?

    我需要跟踪持久实体的字段 该字段会经常更改 并且实际上并不是该实体的功能 而是某种计算 有时 用户希望查看该计算结果 但这种情况非常罕见 每月一次左右 因此 必须以某种方式保存此计算的结果 但我想避免每次更改时都将其保存在数据库中 因为这每
  • “找不到类‘android.support.v4.app.FragmentActivity’”错误

    我收到以下错误 gt 02 06 23 10 24 104 E dalvikvm 912 Could not find class gt android support v4 app FragmentActivity referenced
  • 如何使用SVM求精确率、召回率、准确率?

    重复计算 Precision Recall 和 F Score https stackoverflow com questions 16927964 how to calculate precision recall and f score
  • 在 Yii 的视图中我应该更喜欢使用 widget 还是 renderPartial?

    当我应该在视图文件中使用自定义小部件或 renderPartial 时 我很困惑 有时我使用 widget 有时我使用 renderPartial Widget You use widget当您的应用程序逻辑定义在单独的类文件并且逻辑在某种
  • 将 C 字符串数组传递给 Fortran (iso_c_binding)

    如何传递 C 字符串数组 char cstrings 到 Fortran 子程序 问题使用 iso c binding 的 fortran C 桥接器中的字符串数组 https stackoverflow com questions 968
  • 在 Windows 上使用 PHP 获取总可用系统内存

    使用 PHP 我想获取系统可用的总内存 而不仅仅是空闲或已用内存 在 Linux 上 这非常简单 你可以做 memory fopen proc meminfo 然后解析该文件 有人知道 Windows 的等效方法吗 我愿意接受任何建议 编辑
  • 通过 UIPanGestureRecognizer 传递点击

    我想检测整个屏幕上的滑动 但是 屏幕包含UIButtons 如果用户点击这些按钮之一 我希望触发 Touch Up Inside 事件 我创建了一个UIView在我的屏幕顶部 并添加了一个UIPanGestureRecognizer在其上检
  • Qt 线程阻止 UI 响应

    我想我可能误解了Qt线程中的几个概念 在我的窗口类中 它派生自 QWidget class Widget Q OBJECT public Widget Widget QObject parent 0 QObject parent moveT
  • XNA 数字锁定影响输入

    我有一个中断 在键盘按键上给我协调键 当数字锁打开时 按键会显示为 Numpad1 Numpad2 等 当数字锁关闭时 数字键盘键会变成 End Left Right Up PageLock 我不能让这种情况发生 因为我需要将这些键 左 右
  • 确定 iPhone 上的互联网可用性?

    我在 iPhone 应用程序中使用 NSURLConnection 如下所示 NSURLConnection conn NSURLConnection alloc initWithRequest request delegate self
  • 有没有办法简化 C# 中的反射委托代码?

    In this https stackoverflow com a 12867132 171121回应 我想出了以下辅助方法 可以被不同的人重用Task创建者将事件转换为任务完成源 Helper method static Task
  • PySpark,Win10 - 系统找不到指定的路径

    我之前将 PySpark 作为通过 pip 安装的 Python 包安装 最近我使用干净版本的 Python 卸载了它并下载了独立版本 在我的用户变量中 我创建了一个名为 SPARK HOME 的路径 值为 C spark 2 3 2 bi
  • 尝试在 iPhone 上调试应用程序时收到消息“已添加、修改或删除签名资源”

    在尝试在 iPhone 设备上调试使用 3 2 SDK 创建的版本时 我收到消息 已添加 修改或删除了签名资源 我可以清理 重建 然后安装 不会出现错误 但如果我尝试在不清理的情况下安装 则会显示错误 任何人都知道可能是什么原因造成的 我找
  • Jenkins/Apache 反向代理错误

    根据我的搜索 我遇到了一个似乎相当常见的问题 但是我已按照我遇到的所有说明和 或修复进行操作 但没有一个对我有用 所以我问这个希望有人可以引导我走向正确的方向 我在 OS X 10 11 2 上通过 Homebrew 安装了 Jenkins
  • 如何使用 ifstream 正确从文件中读取 unsigned int 变量?

    我的代码从文本文件中读取 unsigned int 变量Input File Name unsigned int Column Count Cols unsigned int Row Count Rows try ifstream inpu
  • 如何使用Jqplot在同一个堆积条形图中显示两组不同颜色的条形

    我想制作一个包含两组堆叠条形图的条形图 将它们组合在一起以比较两组堆叠条形图 应按以下方式显示 我经历过这个link http www jqplot com tests bar charts php 但它并没有帮助我绘制如上图所示的内容 我
  • 为按钮添加 UAC 防护罩并保留其背景图像?

    在 winforms 应用程序中使用 C 和 Net 4 0 是否可以将 UAC 屏蔽添加到按钮并保留按钮背景图像 如何 这就是我现在正在使用的 但它删除了图像 DllImport user32 dll public static exte
  • Java中获取SMB共享文件名和权限

    我想要连接到 SMB 服务器并浏览其文件 对于给定的路径 能够检索文件和文件夹的列表以及名称和权限 我需要支持所有 SMB 方言 并且能够从我的代码中做到这一点 代码大概如下 smbClient connect serverInfo inf