精华内容
下载资源
问答
  • 前言Java 修改文件权限这个应该是老生常谈的功能,但是最近发现以前写的代码有一点点安全隐患,所以把代码改成NIO的方式,下面会介绍2种修改文件,文件夹权限的方法。使用File类这个方式是以前最常见的方式,但是这...

    前言

    Java 修改文件权限这个应该是老生常谈的功能,但是最近发现以前写的代码有一点点安全隐患,所以把代码改成NIO的方式,下面会介绍2种修改文件,文件夹权限的方法。

    使用File类

    这个方式是以前最常见的方式,但是这个方式有点缺点在LINUX或者UNIX系统下,需要显示的指定权限为440,770等就显得不是那么好用了。

    File dirFile = new File(dirPath); dirFile.setReadable(true, false); dirFile.setExecutable(true, false); dirFile.setWritable(true, false);

    因此我们通常会采用一些workaround的方式修改文件夹权限,必须我需要在LINUX上设置权限为770

    Runtime runtime = getRuntime(); String command = "chmod 770 " + dirPath; try { Process process = runtime.exec(command); process.waitFor(); int existValue = process.exitValue(); if(existValue != 0){ logger.log(Level.SEVERE, "Change file permission failed."); } } catch (Exception e) { logger.log(Level.SEVERE, "Command execute failed.", e); }

    这种方式会有一个问题,当dirPath中包含空格或者分号的时候,不仅仅对功能有影响,对安全也是有隐患的。

    情况1: dirPath = /home/a aa.txt

    在LINUX系统中执行的命令是 chmod 770 /home/a aa.txt, 系统会认为修改/home/a 和aa.txt 的文件权限为770,修改文件权限失败

    情况2: 当dirPath = /home/aaa.txt;rm test.txt

    这时在LINUX系统中会执行2条指令:

    chmod 770 /home/omc/aaa.txt rm test.txt

    这时就会出现安全隐患。

    NIO方式

    private void changeFolderPermission(File dirFile) throws IOException { Set perms = new HashSet(); perms.add(PosixFilePermission.OWNER_READ); perms.add(PosixFilePermission.OWNER_WRITE); perms.add(PosixFilePermission.OWNER_EXECUTE); perms.add(PosixFilePermission.GROUP_READ); perms.add(PosixFilePermission.GROUP_WRITE); perms.add(PosixFilePermission.GROUP_EXECUTE); try { Path path = Paths.get(dirFile.getAbsolutePath()); Files.setPosixFilePermissions(path, perms); } catch (Exception e) { logger.log(Level.SEVERE, "Change folder " + dirFile.getAbsolutePath() + " permission failed.", e); } }

    从API 查询知道,NIO的这种方式原生支持LINUX和UNIX低层系统,但测试发现在Windows系统下面不区分文件所有者和其它似乎没有效果,这个和实用File是一致的。从底层代码发现,还是使用的File类

    另外可能会抛出UnsupportedOperationException IOException SecurityException

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对华域联盟的支持。

    展开全文
  • 前言Java 修改文件权限这个应该是老生常谈的功能,但是最近发现以前写的代码有一点点安全隐患,所以把代码改成NIO的方式,下面会介绍2种修改文件,文件夹权限的方法。使用File类这个方式是以前最常见的方式,但是这...

    前言

    Java 修改文件权限这个应该是老生常谈的功能,但是最近发现以前写的代码有一点点安全隐患,所以把代码改成NIO的方式,下面会介绍2种修改文件,文件夹权限的方法。

    使用File类

    这个方式是以前最常见的方式,但是这个方式有点缺点在LINUX或者UNIX系统下,需要显示的指定权限为440,770等就显得不是那么好用了。

    File dirFile = new File(dirPath);

    dirFile.setReadable(true, false);

    dirFile.setExecutable(true, false);

    dirFile.setWritable(true, false);

    因此我们通常会采用一些workaround的方式修改文件夹权限,必须我需要在LINUX上设置权限为770

    Runtime runtime = getRuntime();

    String command = "chmod 770 " + dirPath;

    try {

    Process process = runtime.exec(command);

    process.waitFor();

    int existValue = process.exitValue();

    if(existValue != 0){

    logger.log(Level.SEVERE, "Change file permission failed.");

    }

    } catch (Exception e) {

    logger.log(Level.SEVERE, "Command execute failed.", e);

    }

    这种方式会有一个问题,当dirPath中包含空格或者分号的时候,不仅仅对功能有影响,对安全也是有隐患的。

    情况1: dirPath = /home/a aa.txt

    在LINUX系统中执行的命令是 chmod 770 /home/a aa.txt, 系统会认为修改/home/a 和aa.txt 的文件权限为770,修改文件权限失败

    情况2: 当dirPath = /home/aaa.txt;rm test.txt

    这时在LINUX系统中会执行2条指令:

    chmod 770 /home/omc/aaa.txt

    rm test.txt

    这时就会出现安全隐患。

    NIO方式

    private void changeFolderPermission(File dirFile) throws IOException {

    Set perms = new HashSet();

    perms.add(PosixFilePermission.OWNER_READ);

    perms.add(PosixFilePermission.OWNER_WRITE);

    perms.add(PosixFilePermission.OWNER_EXECUTE);

    perms.add(PosixFilePermission.GROUP_READ);

    perms.add(PosixFilePermission.GROUP_WRITE);

    perms.add(PosixFilePermission.GROUP_EXECUTE);

    try {

    Path path = Paths.get(dirFile.getAbsolutePath());

    Files.setPosixFilePermissions(path, perms);

    } catch (Exception e) {

    logger.log(Level.SEVERE, "Change folder " + dirFile.getAbsolutePath() + " permission failed.", e);

    }

    }

    从API 查询知道,NIO的这种方式原生支持LINUX和UNIX低层系统,但测试发现在Windows系统下面不区分文件所有者和其它似乎没有效果,这个和实用File是一致的。从底层代码发现,还是使用的File类

    另外可能会抛出UnsupportedOperationException IOException SecurityException

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。

    展开全文
  • //设置可执行权限 file.setReadable(true);//设置可读权限 file.setWritable(true);//设置可写权限 没有效果,原因:没有考虑linux环境 方法2: Runtime.getRuntime().exec("chmod 777 -R

    在网上找到方法1:

     bool = file.mkdirs();
                file.setExecutable(true);//设置可执行权限
                file.setReadable(true);//设置可读权限
                file.setWritable(true);//设置可写权限

    没有效果,原因:没有考虑linux环境

    方法2:

                    Runtime.getRuntime().exec("chmod 777 -R "+path);
    

    path为你的文件夹全路径

    虽然不难,mark一下

    展开全文
  • perms = new HashSet();...//设置所有者的读取权限perms.add(PosixFilePermission.OWNER_WRITE);//设置所有者的写权限perms.add(PosixFilePermission.OWNER_EXECUTE);//设置所有者的执行权限perms.add(Pos...

    perms = new HashSet();

    perms.add(PosixFilePermission.OWNER_READ);//设置所有者的读取权限

    perms.add(PosixFilePermission.OWNER_WRITE);//设置所有者的写权限

    perms.add(PosixFilePermission.OWNER_EXECUTE);//设置所有者的执行权限

    perms.add(PosixFilePermission.GROUP_READ);//设置组的读取权限

    perms.add(PosixFilePermission.GROUP_EXECUTE);//设置组的读取权限

    perms.add(PosixFilePermission.OTHERS_READ);//设置其他的读取权限

    perms.add(PosixFilePermission.OTHERS_EXECUTE);//设置其他的读取权限

    try {

    //设置文件和文件夹的权限

    Path pathParent = Paths.get(file.getParentFile().getAbsolutePath());

    Path pathDest = Paths.get(file.getAbsolutePath());

    Files.setPosixFilePermissions(pathParent, perms);//修改文件夹路径的权限

    Files.setPosixFilePermissions(pathDest, perms);//修改图片文件的权限

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    展开全文
  • import java.io.File;...×只能给当前用户赋予对该文件的权限,调用createNewFile()方法默认的权限是644.5.×/6.public class FilePermission7.{8. public static void main( String[] args )9. {10. ...
  • * 增加权限,使路径可上传文件 */ public static void addChmod777(String filePath) throws IOException { if (!System.getProperty("os.name").startsWith("Win")) { String cmdGrant = "chmod 777 " + ...
  • 服务器配置环境是:CentOS5.0+...经历:我的php里新建一个文件夹php_datas的时候他的属性是755,所属用户组是daemon,所属用户是daemon,我通过vsftpd的一个账号test(所属用户组也是daemon)想上传一个文件到刚才用ph...
  • 服务器文件夹权限设置 内容精选换一换该任务指导用户使用Loader将数据从SFTP服务器导入到HDFS/OBS。创建或获取该任务中创建Loader作业的业务用户和密码。确保用户已授权访问作业执行时操作的HDFS/OBS目录和数据。...
  • 我在suse上面安装了vsftp,配置好ftp服务器,然后用java编写一个上传文件的应用,在java程序执行上传之前需要到ftp服务器上面去创建文件夹,如何配置ftp服务器能够让java程序一次创建多级目录?我现在java里面用的...
  • 服务器文件夹权限设置方法 内容精选换一换当出现如下几种日志时,说明当前用户对当前文件或文件夹没有操作权限。现象1:现象2:现象3:现象4:当前用户对当前文件或文件夹没有操作权限。采用对当前用户可以访问的...
  • 嗨,我有一个Java应用程序,它在远程共享文件夹上创建一个xml文件。如果我通过eclipse运行,它会创建xml文件而不会有任何问题。但是,如果我创建一个jar并尝试运行相同,它会抛出异常消息“访问被拒绝”。我可以在该...
  • 程序需要在本地创建文件/文件夹,但部署在linux,创建文件/文件夹涉及到权限问题,无法创建。 解决方案 方法一 将部署服务tomcat改为Tomcat7版本,问题即可解决 2.方法二 修改Tomcat的bin/catalina.sh文件 将...
  • ftp服务器共享文件夹权限设置 内容精选换一换在“云服务器列表”页,单击下拉按钮展开会话列表,查看会话连接状态,出现“关闭应用失败”的异常。将鼠标移动至“关闭应用失败”处,查看具体的失败原因,并根据表1...
  • 如何创建文件夹?最佳答案:准备条件:java实现ftp上传用到了commons-net-3.3.jar包首先建立ftphost连接public boolean connect(String http://www.cppcns.compath, String addr, int port, String username, String...
  • 概念:共享权限应用于通过网络连接到共享文件夹的用户。...如果同时为共享文件夹设置了共享权限和文件系统权限,当连接到共享文件夹时将使用限制较多的权限。实验环境:windows 2008 r2 、VMware work...
  • ftp服务器对文件夹设置权限 内容精选换一换Cloud-Init工具安装完成后,请参考本节操作配置Cloud-Init工具。已安装Cloud-Init工具。已为云服务器绑定弹性公网IP。已登录云服务器。云服务器的网卡属性为DHCP方式。包含...
  • 服务器共享文件夹权限设置 内容精选换一换分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。CephFS使用Ceph集群提供与POSIX兼容...
  • Java删除指定文件夹下的所有内容的方法(包括此文件夹)如下所示:// 删除文件夹private static void deleteDirectory(File file) {if (file.isFile()) {// 表示该文件不是文件夹file.delete();} else {// 首先得到...
  • 什么是777权限777权限指的是当前用户可以对...如何设置文件夹权限为777这个问题要分二种情况,一种是Linux操作系统、一种是Windows操作系统。1、Linux操作系统设置777权限的步骤:注:只需将所需修改文件权限的...
  • ftp 打开服务器文件夹权限设置 内容精选换一换VPC为弹性云服务器构建隔离的、用户自主配置和管理的虚拟网络环境,提升用户云中资源的安全性,简化用户的网络部署。使用弹性文件服务时,文件系统和云服务器归属于同一...
  • Java 修改文件权限这个应该是老生常谈的功能,但是最近发现以前写的代码有一点点安全隐患,所以把代码改成 NIO 的方式,下面会介绍 2 种修改文件,文件夹权限的方法。使用 File 类这个方式是以前最常见的方式,但是...
  • ftp服务器 创建文件夹权限设置 内容精选换一换请务必使用最新的补丁更新操作系统和相关软件(详情请参见系统要求(DSC)),以防漏洞和其他安全问题。为确保安全性,DSC会对其创建的文件和文件夹进行访问控制。要访问...
  • 查看服务器共享文件夹权限设置密码 内容精选换一换该任务指导用户使用Loader将数据从FTP服务器导入到HBase。创建或获取该任务中创建Loader作业的业务用户和密码。获取FTP服务器使用的用户和密码,且该用户具备FTP...
  • java创建文件夹之后,linux中root部署后,其他用户没有权限 进行操作。 Runtime.getRuntime().exec("chmod 777 -R " + path);
  • Posted by:jusescnPosted on:2006-05-12 13:14想在Ftp上创建文件夹,不知道怎么弄?下面只实现文件上传,无法上传文件夹????public class FTPUpload {private FtpClient ftpClient;public void connectServer...
  • 1. //Runtime.getRuntime().exec("chmod 777 /home/test3.txt"); ...//设置可执行权限 file.setReadable(true);//设置可读权限 file.setWritable(true);//设置可写权限 两种都可 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 132,963
精华内容 53,185
关键字:

java查看项目下文件夹内容设置权限

java 订阅