如何使用 JSch 和 SFTP 协议检查读取权限?

2023-12-03

我知道有getPermissions()方法,但不知道怎么用。如何使用 JSch 检查用户是否可以读取文件?


首先,您通常应该问一个功能性问题(您想要实现什么),以获得有用的答案。您要求实现/技术细节,因此我可能无用的技术答案:

SftpATTRS.getPermissions()返回 *nix 权限的数字表示:
https://en.wikipedia.org/wiki/File-system_permissions#Numeric_notation

它本身不足以确定当前用户是否有权读取该文件。此外,您还必须知道:谁是文件的所有者(getUId返回所有者 ID,但 SFTP 中没有 API 可以将其映射到/从用户名)以及文件的组是什么(getGId, 相同)。

因此,只有当每个人都有权限时,您才能确保用户可以读取该文件。通过标志的存在可以看出什么0004(其他类的读取权限)。但缺少该标志并不意味着用户无法读取该文件,例如如果用户是文件的所有者并且有标志0400(所有者类的读取权限)。

另请注意,当远程系统不是 *nix(例如,它是 Windows)时,getPermissions()无论如何,价值通常是无关紧要的。

重要但唯一可靠的方法是深入研究 JSch 源代码并提取新的 API 来打开文件进行阅读。然后您可以尝试打开该文件(您实际上不必读取任何内容)来判断用户是否有权这样做。

一般来说,尝试检测您是否具有操作权限是没有意义的。尝试一下操作,看看是否成功。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 JSch 和 SFTP 协议检查读取权限? 的相关文章

  • JavaFX 图像未在舞台中显示

    我尝试了很多次 尝试了很多方法 但都无法让自己的形象在舞台上如我所愿 我认为这可能与java寻找资源的路径有关 但我不确定 因为我刚刚开始使用视觉库 在本例中为JavaFX 这是我的目录结构 MyProject assets img myI
  • Jackson - 反序列化嵌套 JSON

    我有一个 JSON 字符串 其格式如下 response execution status ready report cache hit true created on 2013 07 29 08 42 42 fact cache erro
  • 防止 Spring Boot 注册 Spring Security 过滤器之一

    我想禁用安全链中的 Spring Security 过滤器之一 我已经看到了防止 Spring Boot 注册 servlet 过滤器 https stackoverflow com questions 28421966 prevent s
  • Java 正则表达式 - 字母数字,最多一个连字符,句点或下划线,七个字符长

    我是 Java 正则表达式工具的新手 尽管它们潜力巨大 但我很难完成这项任务 我想编写一个正则表达式来验证遵循以下语法的输入字符串 小写字母和数字的任意组合 仅一个下划线 一个破折号或一个句号 无其他特殊字符 最小长度为 5 我想出了以下解
  • RMI 中的引用传递问题? [复制]

    这个问题在这里已经有答案了 有人可以告诉我我错在哪里 为什么这个 RMI 聊天应用程序不起作用 目标是通过远程对象或序列化对象实现客户端 服务器和逻辑之间的解耦 import javax swing import java awt even
  • 请参阅 Java EE eclipse 调试中的 POST 参数

    我在调试 Java EE 方面没有经验 我更像是一个 javascript 人 我需要查看哪些 HTTP POST 参数到达服务器端 我在表单将其操作指向的 jsp 文件中放置了一个断点 现在我在调试变量窗口中找不到 POST 内容 他们在
  • java.lang.LinkageError:尝试重复的类定义

    为什么会发生错误以及如何修复它 02 13 02 pool 4 thread 2 WARN Exception in thread pool 4 thread 2 02 13 02 pool 4 thread 2 WARN java lan
  • 如何拦截 REST 端点以接收所有标头?

    我当前的代码是 Path login RequestScoped public class LoginResource GET SecurityChecked public Response getUser HeaderParam AUTH
  • 定期更新 SWT 会导致 GUI 冻结

    Problem 当 GUI 字段定期更新时 SWT 会冻结 我想要一个基于 SWT 的 GUI 其中文本字段的值会定期递增 最初我从单独的线程访问 textField 导致抛出异常 线程 Thread 0 org eclipse swt S
  • Java Microsoft Excel API [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Java:java.util.ConcurrentModificationException

    我正在制作 2D 目前正在研究用子弹射击 子弹是一个单独的类 所有项目符号都存储在称为项目符号的数组列表中 当它超出屏幕一侧 Exception in thread main java util ConcurrentModification
  • 如何将 arraylist 从 servlet 传递到 javascript?

    我通过在属性中设置数组列表并将其转发到 jsp 来从 servlet 传递数组列表 Servlet ArrayList
  • 如何在Java媒体框架中学习.wav持续时间?

    我正在尝试使用 java 媒体框架将 mov 文件与 wav 文件合并 因此我需要知道它们的持续时间 我怎样才能做到这一点 任何想法 将不胜感激 您可以使用以下方式了解声音文件的持续时间 即 VitalyVal 的第二种方式 import
  • 了解 Spark 中的 DAG

    问题是我有以下 DAG 我认为当需要洗牌时 火花将工作划分为不同的阶段 考虑阶段 0 和阶段 1 有些操作不需要洗牌 那么为什么 Spark 将它们分成不同的阶段呢 我认为跨分区的实际数据移动应该发生在第 2 阶段 因为这里我们需要cogr
  • 为什么我的代码会产生错误:该语句没有返回结果集[重复]

    这个问题在这里已经有答案了 我正在从 Microsoft SQL Server Studio 执行以下查询 该查询工作正常并显示结果 SELECT INTO temp table FROM md criteria join WHERE us
  • Java:由 HTTP 连接创建的等待连接线程存活时间很长

    我有一个服务器端代码 用于检查 SOAP 服务是否已启动 代码如下 String response while response length 0 try final URL url new URL DummySoapServiceURL
  • 为什么这个私人浮动字段变为零?

    我有一些奇怪的行为 我很难向自己解释 称为 textureScale 的浮点字段变为零 如果某些代码正在更改该值 则可以解释这一点 然而 我希望能够通过将其设置为 私有最终浮点 来导致构建失败 或者至少是运行时异常 那么无论更改该值都将失败
  • 摩尔斯电码 至 英语

    我现在的问题是让 摩尔斯电码转英语 正常工作 将英语转换为莫尔斯电码的第一部分工作正常 我知道以前已经有人问过这个问题 但我不知道我做错了什么 我知道我需要在某个地方进行拆分 但我只是不确定将其放在代码中的何处 现在 莫尔斯电码到英语的部分
  • 防止Java实例化的正确方法[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Java、Spring、Hibernate找不到org.springframework.orm.hibernate3.LocalSessionFactoryBean

    我正在尝试制作 spring hibernate ant 项目 目前我收到此错误 HTTP Status 500 type Exception report message description The server encountere

随机推荐

  • 是否可以嵌套 Angular2 应用程序

    假设我想构建一个可以插入第三方页面的 Angular2 应用程序 第三方页面可能已经使用 Angular2 可能有不同的版本 是否可以在第三方应用程序中引导我的 Angular 2 应用程序
  • Java 交叉编译 - 最新 JDK 的好处

    我维护一个 Java 应用程序 在分发它之前我总是使用 JDK 1 6 进行编译 因为这是我的应用程序所需的最低版本 我不使用任何更新的功能 我不认为在更高版本中编译它有什么意义 否则旧的 JRE 将无法运行它 即使用 Java 1 6 的
  • 变量的前后增量操作在 TC 和 gcc 上给出不同的输出[重复]

    这个问题在这里已经有答案了 这是我的简单代码 include
  • 如何从javascript同步调用indexeddb方法

    我有一种方法说method1在 javascript 中 有另一种方法说method2 call method2在 method2 调用之后返回 method1 中需要的一个值 var userObj first Key 1 value s
  • 尝试保存图像时出现异常

    启动 Java 应用程序时 我在尝试保存图像时遇到异常 然而 在 Eclipse 中 一切都工作正常 该应用程序是使用 fatjar 构建的 并且还选择了导出所需的库 jar imageio jar 和 ij jar 我尝试使用 Image
  • Java - 如何更改“本地”?事件监听器中的变量

    有一个简短的问题 我希望有人能回答 基本上我有一个字符串变量 需要根据组合框中的值进行更改 该组合框中附加了一个事件侦听器 但是 如果我将字符串定为最终的 那么它就无法更改 但如果我不将其定为最终的 那么 Eclipse 就会抱怨它不是最终
  • Alexa 是否/可以替换其为链接用户生成的 UserId?

    我们有一个利用 Alexa 技能的应用程序 其中包含用户详细信息的帐户链接 根据 Alexa 的帐户关联 文档 我们的技能是为帐户链接设置的 帐户链接又引用第三方 或者可能是内部 身份管理系统 IMS 进行用户身份验证 我们的应用程序 以及
  • R:当列数为素数时分割数据框

    我有一个data frame有 131 列 我需要将其分成大约 10 到 15 个变量的组 即按列拆分 而不是按行拆分 显然 由于 131 是素数 因此并非所有新数据帧的长度都可以相同 我在帖子中寻找答案 如何在R中将数据切成偶数块 在 R
  • 带步骤选项的 math.random 函数? [关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 一个自定义函数 它将返回一个随机数 并带有可用的步骤选项 如for环形 例子 for i 1 10 2 do print i end 你的意思是这样吗 function randomW
  • Spring Boot 与 Intellij IDE 的热插拔

    我有一个 Spring Boot 应用程序在 Intellij IDE 上运行良好 即我启动了具有委托给 SpringApplication run 的 main 方法的 Application 类 除了热插拔之外 一切都很好 当我更改源时
  • 为什么两种情况下的输出不同?

    即使变量已被覆盖 为什么在以下情况下输出不同 public class A int a 500 void get System out println a is this a public class B extends A int a 1
  • 强制 cpp_dec_float 向下舍入

    我在用 str n std ios base scientific 打印ccp dec floats 我注意到它四舍五入了 我在用cpp dec float对于会计 所以我需要向下舍入 如何才能做到这一点 它没有四舍五入 事实上 它是银行家
  • 带 if 语句的 auto 函数不会返回值

    我做了一个模板和一个auto比较 2 个值并返回最小的值的函数 这是我的代码 include
  • 使用 3d 数据和参数在 Scipy 中进行曲线拟合

    我正在努力在 scipy 中拟合 3d 分布函数 我有一个 numpy 数组 其中包含 x 和 y 仓中的计数 我试图将其拟合到相当复杂的 3 维分布函数中 该数据适合 26 个参数 这些参数描述了其两个组成群体的形状 我在这里了解到 当我
  • 如何绘制簇内簇内平方和图?

    我有一个 R 的聚类图 同时我想用 wss 图优化聚类的 肘部准则 但我不知道如何为给定的聚类绘制 wss 图 有人会帮助我吗 这是我的数据 Friendly lt c 0 467 0 175 0 004 0 025 0 083 0 004
  • 当我尝试使用异常时,为什么我的代码在 Qt Creator 中使用 -fno-exceptions 进行编译?

    在项目 pro 文件中我指定了 QMAKE CXXFLAGS fno exceptions 但我可以在我的应用程序中抛出异常 对此有什么想法吗 示例 这不应该起作用 但它起作用 include
  • 如何使用准备好的语句制作适当的 mysqli 扩展类?

    我正在尝试扩展 mysqli 类来创建一个帮助器类 该类将抽象出一些复杂性 我想要完成的主要事情之一是利用准备好的语句 我真的不知道从哪里开始 或者如何在一堂课中正确处理输入和输出 另一个问题是我在使用准备好的语句时无法将数据作为数组输出
  • 用表单搜索my​​sqli表并显示结果

    我正在搜索一个表格 其中的结果可能来自 3 个选项 cata catb 或 catc 中的任何一个 然后显示结果 但是我的错误警告不断弹出并且无法显示结果 我被困住了
  • 字符串到 int 的转换和字符串操作 MIPS

    对于我的家庭作业 我需要使用 MIPS 获取前面带有任意字母后跟数字 例如 x123 的输入 然后将数字加 5 然后打印出最终数字 从示例中输出将是 128 data entmsg asciiz Enter a string n ui1 s
  • 如何使用 JSch 和 SFTP 协议检查读取权限?

    我知道有getPermissions 方法 但不知道怎么用 如何使用 JSch 检查用户是否可以读取文件 首先 您通常应该问一个功能性问题 您想要实现什么 以获得有用的答案 您要求实现 技术细节 因此我可能无用的技术答案 SftpATTRS