我有必须以user2身份运行的script.sh.但是,此脚本只能在我的应用程序中的user1下运行.
我想要运行以下命令:
su user2 -C script.sh
Run Code Online (Sandbox Code Playgroud)
但能够无密码运行.
我也希望这是非常严格的,因为在user1中只能在user2下运行script.sh而不是其他任何东西.
我试过用sudoers文件做这件事,经过几个小时的尝试后就无休止地混淆了.
如果有人可以提供一个如何实现这一点的明确示例(而不是像使用sudoers那样的通用),那将非常感激.
我想将MapReduce作业从java Web应用程序提交到远程Hadoop集群,但无法指定应该为哪个用户提交作业.我想配置和使用应该用于所有MapReduce作业的系统用户.
目前,我无法指定任何用户,无论hadoop作业在客户端系统当前登录用户的用户名下运行.这会导致消息出错
Permission denied: user=alice, access=WRITE, inode="staging":hduser:supergroup:rwxr-xr-x
Run Code Online (Sandbox Code Playgroud)
...其中"alice"是客户端计算机上的本地登录用户.
我试过了
UserGroupInformation实例的各种组合(代理和普通用户)和-Duser.name=hduser,更改USERenvar和作为硬编码System.setProperty("user.name", "hduser")调用.......无济于事 关于1)我承认不知道应该如何使用这些类.另请注意,更改Java System属性显然不是在Web应用程序中使用的真正解决方案.
是否有任何机构知道您如何指定Hadoop用于连接远程系统的用户?
PS/Hadoop使用默认配置,这意味着在连接到群集时不使用身份验证,并且Kerberos不用于与远程计算机通信.