报错: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

相关文章

Python Jupyter Notebook导包报错问题及解决

《PythonJupyterNotebook导包报错问题及解决》在conda环境中安装包后,JupyterNotebook导入时出现ImportError,可能是由于包版本不对应或版本太高,解决方... 目录问题解决方法重新安装Jupyter NoteBook 更改Kernel总结问题在conda上安装了

Python安装时常见报错以及解决方案

《Python安装时常见报错以及解决方案》:本文主要介绍在安装Python、配置环境变量、使用pip以及运行Python脚本时常见的错误及其解决方案,文中介绍的非常详细,需要的朋友可以参考下... 目录一、安装 python 时常见报错及解决方案(一)安装包下载失败(二)权限不足二、配置环境变量时常见报错及

MySQL报错sql_mode=only_full_group_by的问题解决

《MySQL报错sql_mode=only_full_group_by的问题解决》本文主要介绍了MySQL报错sql_mode=only_full_group_by的问题解决,文中通过示例代码介绍的非... 目录报错信息DataGrip 报错还原Navicat 报错还原报错原因解决方案查看当前 sql mo

解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题

《解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题》文章详细描述了在使用lombok的@Data注解标注实体类时遇到编译无误但运行时报错的问题,分析... 目录问题分析问题解决方案步骤一步骤二步骤三总结问题使用lombok注解@Data标注实体类,编译时

linux报错INFO:task xxxxxx:634 blocked for more than 120 seconds.三种解决方式

《linux报错INFO:taskxxxxxx:634blockedformorethan120seconds.三种解决方式》文章描述了一个Linux最小系统运行时出现的“hung_ta... 目录1.问题描述2.解决办法2.1 缩小文件系统缓存大小2.2 修改系统IO调度策略2.3 取消120秒时间限制3

解决systemctl reload nginx重启Nginx服务报错:Job for nginx.service invalid问题

《解决systemctlreloadnginx重启Nginx服务报错:Jobfornginx.serviceinvalid问题》文章描述了通过`systemctlstatusnginx.se... 目录systemctl reload nginx重启Nginx服务报错:Job for nginx.javas

VMWare报错“指定的文件不是虚拟磁盘“或“The file specified is not a virtual disk”问题

《VMWare报错“指定的文件不是虚拟磁盘“或“Thefilespecifiedisnotavirtualdisk”问题》文章描述了如何修复VMware虚拟机中出现的“指定的文件不是虚拟... 目录VMWare报错“指定的文件不是虚拟磁盘“或“The file specified is not a virt

使用Vue.js报错:ReferenceError: “Vue is not defined“ 的原因与解决方案

《使用Vue.js报错:ReferenceError:“Vueisnotdefined“的原因与解决方案》在前端开发中,ReferenceError:Vueisnotdefined是一个常见... 目录一、错误描述二、错误成因分析三、解决方案1. 检查 vue.js 的引入方式2. 验证 npm 安装3.

PHP执行php.exe -v命令报错的解决方案

《PHP执行php.exe-v命令报错的解决方案》:本文主要介绍PHP执行php.exe-v命令报错的解决方案,文中通过图文讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下... 目录执行phpandroid.exe -v命令报错解决方案执行php.exe -v命令报错-PHP War

CentOS系统使用yum命令报错问题及解决

《CentOS系统使用yum命令报错问题及解决》文章主要讲述了在CentOS系统中使用yum命令时遇到的错误,并提供了个人解决方法,希望对大家有所帮助,并鼓励大家支持脚本之家... 目录Centos系统使用yum命令报错找到文件替换源文件为总结CentOS系统使用yum命令报错http://www.cppc