【问题标题】:How to change permissions to incoming file in linux using JAVA如何使用 JAVA 在 linux 中更改传入文件的权限
【发布时间】:2018-08-03 08:24:18
【问题描述】:

目标

我希望每当有人在 /opt/file/incoming 目录中上传文件(名称为 Accounts 0998.csv)时。它的权限更改为 chmod 664 即 rw-rw-r 我正在使用 linux。

我想自动化这个过程,所以我正在编写一个 java 程序,但它可以工作

package com.reader.file;

import java.io.File;
import java.io.IOException;

public class GrantPermission
{
    public static void main( String[] args )
    {
        try {

          File file = new File("/opt/file/Accounts 0998.csv");

         if(file.exists()){
             System.out.println("File exists.");

            //using PosixFilePermission to set file permissions 664

            Set<PosixFilePermission> perms = new 

            HashSet<PosixFilePermission>();

            //add owners permission
            perms.add(PosixFilePermission.OWNER_READ);
            perms.add(PosixFilePermission.OWNER_WRITE);

            //add group permissions
            perms.add(PosixFilePermission.GROUP_READ);
            perms.add(PosixFilePermission.GROUP_WRITE);

            //add others permissions
            perms.add(PosixFilePermission.OTHERS_READ);

            Files.setPosixFilePermissions(file.toPath(), perms);

            } catch (IOException e) {

                e.printStackTrace();
            }
         }
         else{
              System.out.println("File does not exists.");
         }

        } catch (IOException e) {
          e.printStackTrace();
        }
    }
}

其他信息

我正在使用 WSO2 ESB,它首先搜索一个文件,然后如果文件存在,那么我想更改它的权限(通过使用 Class mediator ie JAVA),然后将它移动到另一个目录,但我的目标将文件权限更改为 rw-rw-r

【问题讨论】:

  • “每当有人上传文件”:这是怎么做到的?默认文件权限取决于上传过程的umask设置。
  • 这是什么意思?上传过程的umask设置。在linux中,我有一个用户名“fileuploader”当我从fileuploader上传文件时,默认权限是rw-r-r,但我想要rw-rw-r并且我想自动化这个过程。
  • 我的意思是,比更正权限更好的是,确保在创建文件时正确设置它们。 askubuntu.com/questions/44542/…
  • 我不是在创建我正在上传文件。此链接是否仍然有效?
  • 我不明白您所说的“上传”是什么意思。某些进程必须通过网络接受文件并在磁盘上创建它。

标签: java linux wso2 wso2esb file-permissions


【解决方案1】:

如果您使用的是 java7 或更高版本,则可以使用 NIO.2。

见:

How do i programmatically change file permissions?

//if you need rw-rw-r  permissions 
public void setPermission(File file) throws IOException{
    Set<PosixFilePermission> perms = new HashSet<>();
    perms.add(PosixFilePermission.OWNER_READ);
    perms.add(PosixFilePermission.OWNER_WRITE);

    perms.add(PosixFilePermission.OTHERS_READ);
    perms.add(PosixFilePermission.OTHERS_WRITE);

    perms.add(PosixFilePermission.GROUP_READ);

    Files.setPosixFilePermissions(file.toPath(), perms);
}

【讨论】:

  • 你还是不见了Files.setPosixFilePermissions(file.toPath(), perms);
  • 我已经添加了
猜你喜欢
  • 1970-01-01
  • 2011-12-30
  • 1970-01-01
  • 2014-12-16
  • 2021-09-18
  • 2012-05-05
  • 2023-03-03
  • 2010-10-02
  • 1970-01-01
相关资源
最近更新 更多