今天在配置hadoop到时候,发现无法修改hadoop-‐env.sh,即使使用命令:
sudo gedit hadoop-env.sh
也是无法修改。后来想想可能是我前面设置了hadoop文件目录权限到缘故,其命令:
sudo chown -R hadoop:hadoop hadoop-0.20.1/
因此使用查看文件权限命令:
ls -all
查看hadoop-env.sh文件到权限,得到结果如下:
-rw-rw-r-- 1 hadoop hadoop 2245 2010-12-09 00:15 hadoop-env.sh
第一个"-"表示这是一个文件,后面9个字符"rw-rw-r--" 则是权限信息,3个字母一组,这三个字母分别是rwx,-表示没有此项权限,,第一组rw- 表示所有者的权限,第二组rw- 表示和所有者同一工作组group的用户的权限,第三组r--表示和所有者不一个工作组的用户的权限;紧接着的1是连接数;2个hadoop分别是所有者和所有者所在工作组。
可以看到hadoop作为所有者的权限是rw-,可读可写不能执行;在hadoop工作组的其他用户的权限rw-,可读可写不能执行;其他工作组用户为r--,只读。
这也是为什么为使用管理员用户xuwei不能修改hadoop-env.sh文件到缘故了,因为xuwei用户没有在hadoop这个group里面。使用如下命令切换到hadoop用户。
su hadoop
切换到了hadoop用户下面使用
sudo gedit hadoop-env.sh
但是出现了" hadoop is not in the sudoers file"错误。
解决方法见上一篇博客
在成功解决上述问题以后,使用命令:
sudo chmod +x hadoop-env.sh
这样就能对这个文件进行编辑和修改了。
到此问题解决。
本文转自xwdreamer博客园博客,原文链接:http://www.cnblogs.com/xwdreamer/archive/2010/12/09/2297059.html,如需转载请自行联系原作者