java项目在linux环境中赋予新建文件777权限
一、使用java file类的方法1. setExecutable设置可执行权限setExecutable(boolean executable)setExecutable(boolean executable, boolean ownerOnly)2. setReadable 设置可读权限3. setWritable 设置可写权限1. setReadable 设置可执行权限...
一、使用java file类的方法
1. setExecutable设置可执行权限
1) setExecutable(boolean executable)
查看源码:
public boolean setExecutable(boolean executable) {
return setExecutable(executable, true);
}
因此,只需要搞懂 setExecutable(boolean executable, boolean ownerOnly)就可以了
2) setExecutable(boolean executable, boolean ownerOnly)
查看源码:
public boolean setExecutable(boolean executable, boolean ownerOnly) {
SecurityManager security = System.getSecurityManager();
if (security != null) {
security.checkWrite(path);
}
if (isInvalid()) {
return false;
}
return fs.setPermission(this, FileSystem.ACCESS_EXECUTE, executable, ownerOnly);
}
参数:
- executable :设置访问权限,为true时允许执行的操作;false时不允许执行操作
- ownerOnly :设置权限控制对象, true–访问权限控制只针对文件的创建者,false–针对所有用户
因此 setExecutable(boolean executable) 为设置文件创建者的文件执行权限,setExecutable(boolean executable, boolean ownerOnly)为设置文件创建者或所有用户的文件执行权限
返回值:
- 如果操作成功此方法返回true,否则返回false。
2. setReadable 设置可读权限
1)setReadable(boolean readable)
查看源码:
public boolean setReadable(boolean readable) {
return setReadable(readable, true);
}
同理,只需要搞懂 setReadable(boolean readable, boolean ownerOnly) 即可
2)setReadable(boolean readable, boolean ownerOnly)
查看源码:
public boolean setReadable(boolean readable, boolean ownerOnly) {
SecurityManager security = System.getSecurityManager();
if (security != null) {
security.checkWrite(path);
}
if (isInvalid()) {
return false;
}
return fs.setPermission(this, FileSystem.ACCESS_READ, readable, ownerOnly);
}
参数:
- readable : 设置文件是否可读,为true文件可读,为false文件不可读
- ownerOnly :设置可读权限控制对象, true–可读权限控制只针对文件的创建者,false–针对所有用户
因此 setReadable(boolean readable) 为设置文件创建者的文件可读权限,setReadable(boolean readable, boolean ownerOnly)为设置文件创建者或所有用户的文件可读权限
返回值:
- 如果操作成功此方法返回true,否则返回false。
3. setWritable 设置可写权限
1)setWritable(boolean writable)
查看源码:
public boolean setWritable(boolean writable) {
return setWritable(writable, true);
}
同理,只需要搞懂 setWritable(boolean writable, boolean ownerOnly) 即可
2)setWritable(boolean writable, boolean ownerOnly)
查看源码:
public boolean setWritable(boolean writable, boolean ownerOnly) {
SecurityManager security = System.getSecurityManager();
if (security != null) {
security.checkWrite(path);
}
if (isInvalid()) {
return false;
}
return fs.setPermission(this, FileSystem.ACCESS_WRITE, writable, ownerOnly);
}
参数:
- writable: 设置文件是否可写,为true文件可写,为false文件不可写
- ownerOnly :设置可读权限控制对象, true–可读权限控制只针对文件的创建者,false–针对所有用户
因此 setWritable(boolean writable) 为设置文件创建者的文件可写权限,setWritable(boolean writable, boolean ownerOnly)为设置文件创建者或所有用户的文件可写权限
返回值:
- 如果操作成功此方法返回true,否则返回false。
4. 示例
try{
String dcmPath = "文件路径";
File file = new File(dcmPath);
//设置可执行权限
boolean exec= file.setExecutable(true,false);
//设置可读权限
boolean read= file.setReadable(true,false);
//设置可写权限
boolean write= file.setWritable(true,false);
// 如果是设置文件输出后的权限,则需要在OutputStream 的write方法后设置
}catch(Exception e){
log.error( ExceptionUtils.getStackTrace(e));
}
二、使用RunTime.getRuntime().exec() 调用服务器命令脚本
String dcmPath = "/home/root/test.txt"
Runtime runtime = Runtime.getRuntime();
// 执行linux命令 chmod 777 filepath 为文件添加777权限
runtime.exec(" chmod 777 "+ dcmPath );
注意事项:https://www.cnblogs.com/fclbky/p/6112180.html
更多推荐
所有评论(0)