报错:Permission denied. user=dr.who is not the owner of inode=/tmp

2023-12-07 23:52

本文主要是介绍报错:Permission denied. user=dr.who is not the owner of inode=/tmp,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 用户名问题
  • 权限问题
  • 修改权限的正确做法

用户名问题

首先是为什么用户名是 dr.who,我可以在 core-default.xml 文件中可以查到 hadoop.http.staticuser.user 参数默认为 dr.who ,其解释为在静态网络过滤器上渲染内容时要作为过滤器的用户名。例如 HDFS 网络用户界面(用于浏览文件的用户)。链接:hadoop.apache.org/docs/r3.3.1/hadoop-project-dist/hadoop-common/core-default.xml

也就是说 dr.who 是静态访问的用户名

namevaluedescription
hadoop.http.staticuser.userdr.whoThe user name to filter as, on static web filters while rendering content. An example use is the HDFS web UI (user to be used for browsing files).

可以修改 core-site.xml 配置文件设置自己的用户名

<property><name>hadoop.http.staticuser.user</name><value>user</value>
</property>

权限问题

我可以在 hdfs-default.xml 文件中可以查到 dfs.permissions.enabled 参数默认为 true,其解释为如果为 true,则启用 HDFS 中的权限检查。如果为 false,则关闭权限检查,但所有其他行为不变。从一个参数值切换到另一个参数值不会改变文件或目录的模式、所有者或组。链接:hadoop.apache.org/docs/r2.7.7/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

namevaluedescription
dfs.permissions.enabledtrueIf “true”, enable permission checking in HDFS. If “false”, permission checking is turned off, but all other behavior is unchanged. Switching from one parameter value to the other does not change the mode, owner or group of files or directories.

也就是说我们把权限检查关掉就可以了,即在 hdfs-core.xml 中配置 dfs.permissions.enabled 参数值为 false

<property><name>dfs.permissions</name><value>false</value>
</property>

请注意,关闭权限检查可能会导致严重的安全和隐私问题,因为它允许任何用户访问、读取、写入或删除文件系统中的数据。因此,在生产环境中,通常不建议这样做。只有在特定的测试场景或者有特殊需求的情况下才可能需要临时关闭权限检查。

还有一种我们会使用 hadoop fs -chmod 777 /path/to/directory 命令会将指定目录的权限设置为所有者、组和其他用户都有读(r)、写(w)和执行(x)权限。在 Unix/Linux 文件系统中,这种权限模式通常被认为是“完全开放”的,因为它允许任何人访问、修改或执行该目录及其内容。

然而,在生产环境中,除非有特定需求,否则不建议对 HDFS 中的文件和目录使用 777 权限,因为这可能会导致安全问题和数据完整性问题。这样做意味着任何人都可以读取、修改或删除文件,包括可能的恶意用户或程序。

修改权限的正确做法

正确做法应该是:

  1. 设置用户和组

    • 你需要先创建一个或多个用户和组,以便为它们分配权限。
  2. 查看当前权限

    • 使用 hadoop fs -ls /path/to/file-or-directory 命令可以查看某个文件或目录的详细信息,包括所有者、组和其他相关信息。
  3. 修改权限

    • 使用 hadoop fs -chmod [-R] permissions path 命令可以改变文件或目录的权限。例如:

      hadoop fs -chmod 755 /path/to/directory
      
      • -R 参数表示递归地更改子目录和文件的权限。
      • 权限参数由三个八进制数字组成,分别代表所有者、组和其他用户的权限。每一位分别代表读(4)、写(2)和执行(1)。所以 755 表示所有者有读、写和执行权限,组和其他用户只有读和执行权限。
  4. 修改所有者和组

    • 使用 hadoop fs -chown [-R] owner[:group] path 命令可以改变文件或目录的所有者和/或组。例如:

      hadoop fs -chown user:group /path/to/file-or-directory
      
      • 如果只提供了所有者名称而没有提供组名,那么该文件或目录的组将被设置为所有者的主组。
  5. 修改组

    • 使用 hadoop fs -chgrp [-R] group path 命令可以单独改变文件或目录的组。例如:hadoop fs -chgrp new_group /path/to/file-or-directory

这篇关于报错:Permission denied. user=dr.who is not the owner of inode=/tmp的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/467777

相关文章

qt5cored.dll报错怎么解决? 电脑qt5cored.dll文件丢失修复技巧

《qt5cored.dll报错怎么解决?电脑qt5cored.dll文件丢失修复技巧》在进行软件安装或运行程序时,有时会遇到由于找不到qt5core.dll,无法继续执行代码,这个问题可能是由于该文... 遇到qt5cored.dll文件错误时,可能会导致基于 Qt 开发的应用程序无法正常运行或启动。这种错

MySQL启动报错:InnoDB表空间丢失问题及解决方法

《MySQL启动报错:InnoDB表空间丢失问题及解决方法》在启动MySQL时,遇到了InnoDB:Tablespace5975wasnotfound,该错误表明MySQL在启动过程中无法找到指定的s... 目录mysql 启动报错:InnoDB 表空间丢失问题及解决方法错误分析解决方案1. 启用 inno

解决Java异常报错:java.nio.channels.UnresolvedAddressException问题

《解决Java异常报错:java.nio.channels.UnresolvedAddressException问题》:本文主要介绍解决Java异常报错:java.nio.channels.Unr... 目录异常含义可能出现的场景1. 错误的 IP 地址格式2. DNS 解析失败3. 未初始化的地址对象解决

Python报错ModuleNotFoundError的10种解决方案

《Python报错ModuleNotFoundError的10种解决方案》在Python开发中,ModuleNotFoundError是最常见的运行时错误之一,通常由模块路径配置错误、依赖缺失或命名冲... 目录一、常见错误场景与原因分析二、10种解决方案与代码示例1. 检查并安装缺失模块2. 动态添加模块

idea报错java: 非法字符: ‘\ufeff‘的解决步骤以及说明

《idea报错java:非法字符:‘ufeff‘的解决步骤以及说明》:本文主要介绍idea报错java:非法字符:ufeff的解决步骤以及说明,文章详细解释了为什么在Java中会出现uf... 目录BOM是什么?1. BOM的作用2. 为什么会出现 \ufeff 错误?3. 如何解决 \ufeff 问题?最

解决Maven项目报错:failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.13.0的问题

《解决Maven项目报错:failedtoexecutegoalorg.apache.maven.plugins:maven-compiler-plugin:3.13.0的问题》这篇文章主要介... 目录Maven项目报错:failed to execute goal org.apache.maven.pl

电脑找不到mfc90u.dll文件怎么办? 系统报错mfc90u.dll丢失修复的5种方案

《电脑找不到mfc90u.dll文件怎么办?系统报错mfc90u.dll丢失修复的5种方案》在我们日常使用电脑的过程中,可能会遇到一些软件或系统错误,其中之一就是mfc90u.dll丢失,那么,mf... 在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包

电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案

《电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案》最近有不少兄弟反映,电脑突然弹出“mfc100u.dll已加载,但找不到入口点”的错误提示,导致一些程序无法正... 在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“找不到指定的模块”或“缺少某个DL

解决IDEA报错:编码GBK的不可映射字符问题

《解决IDEA报错:编码GBK的不可映射字符问题》:本文主要介绍解决IDEA报错:编码GBK的不可映射字符问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录IDEA报错:编码GBK的不可映射字符终端软件问题描述原因分析解决方案方法1:将命令改为方法2:右下jav

MyBatis模糊查询报错:ParserException: not supported.pos 问题解决

《MyBatis模糊查询报错:ParserException:notsupported.pos问题解决》本文主要介绍了MyBatis模糊查询报错:ParserException:notsuppo... 目录问题描述问题根源错误SQL解析逻辑深层原因分析三种解决方案方案一:使用CONCAT函数(推荐)方案二: