hadoop 2.6.0 安全问题--UserGroupInformation
2016-01-25 14:54
405 查看
UserGroupInformation可以使用任何你想拥有权限的用户来操作集群。
在UserGroupInformation的loginUserFromSubject方法如下,首先系统获到系统用户,然后再判断是否设置环境变量HADOOP_PROXY_USER,或者系统属性HADOOP_PROXY_USER,如果设置那么loginUser就为HADOOP_PROXY_USER,代码如下:
在UserGroupInformation的loginUserFromSubject方法如下,首先系统获到系统用户,然后再判断是否设置环境变量HADOOP_PROXY_USER,或者系统属性HADOOP_PROXY_USER,如果设置那么loginUser就为HADOOP_PROXY_USER,代码如下:
@InterfaceAudience.Public @InterfaceStability.Evolving public synchronized static void loginUserFromSubject(Subject subject) throws IOException { ensureInitialized(); try { if (subject == null) { subject = new Subject(); } LoginContext login = newLoginContext(authenticationMethod.getLoginAppName(), subject, new HadoopConfiguration()); login.login(); UserGroupInformation realUser = new UserGroupInformation(subject); realUser.setLogin(login); realUser.setAuthenticationMethod(authenticationMethod); realUser = new UserGroupInformation(login.getSubject()); // If the HADOOP_PROXY_USER environment variable or property // is specified, create a proxy user as the logged in user. String proxyUser = System.getenv(HADOOP_PROXY_USER); if (proxyUser == null) { proxyUser = System.getProperty(HADOOP_PROXY_USER); } loginUser = proxyUser == null ? realUser : createProxyUser(proxyUser, realUser); String fileLocation = System.getenv(HADOOP_TOKEN_FILE_LOCATION); if (fileLocation != null) { // Load the token storage file and put all of the tokens into the // user. Don't use the FileSystem API for reading since it has a lock // cycle (HADOOP-9212). Credentials cred = Credentials.readTokenStorageFile( new File(fileLocation), conf); loginUser.addCredentials(cred); } loginUser.spawnAutoRenewalThreadForUserCreds(); } catch (LoginException le) { LOG.debug("failure to login", le); throw new IOException("failure to login", le); } if (LOG.isDebugEnabled()) { LOG.debug("UGI loginUser:"+loginUser); } }
相关文章推荐
- linux 乱码问题解决
- opencv视频播放
- 你的架构是如何一步步腐化的?
- Linux c中一些常用函数总结(c语言中文网。。。)
- 周爱民:真正的架构师是没有title的(图灵访谈)
- 大型网站架构系列:分布式消息队列(一)
- 安装指南:Win10下安装CentOs7
- LVS +DR +keepalived高可用性web集群
- centos 7 更改网卡名,主机名,虚拟机添加网卡
- c3p0、dbcp和proxool比较 据说TOMCAT 7之后的 JDBC 性能更好
- OpenCV3使用SVM
- linux下 bash:command not found解决方法
- SHELL编程四剑客练习--awk
- 分布式Web服务器架构
- [Linux] 进程处理
- NopCommerce之事件通知
- linux: 几个常用makefile模板
- linux scp命令用法
- 国外优秀开源网站
- 查看linux静态库*.a中的函数和文件 拿appro 2a算法库开刀