heyang wang created ZEPPELIN-2436:
-------------------------------------
Summary: ZEPPELIN_IMPERSONATE_CMD doesn't support echo command
Key: ZEPPELIN-2436
URL: https://issues.apache.org/jira/browse/ZEPPELIN-2436
Project: Zeppelin
Issue Type: Bug
Components: Interpreters
Affects Versions: 0.7.1
Environment: Spark 2.0,livy 3.0,hadoop 2.7.2,centos 6,ldap
Reporter: heyang wang
I followed the doc on
https://zeppelin.apache.org/docs/0.7.0/manual/userimpersonation.html to enable
user impersontaion.
I did export ZEPPELIN_IMPERSONATE_CMD='sudo -H -u ${ZEPPELIN_IMPERSONATE_USER}
bash -c ' in zeppelin-env.sh.
However, since I am also using ldap, the user is of form [email protected] and
useradd can't add such user with the @ mark.
So I thought I could get only the username without the @ subfix using the
following command:
export ZEPPELIN_IMPERSONATE_CMD='echo ${ZEPPELIN_IMPERSONATE_USER} | cut -d \@
-f 1 |xargs -I {} sudo -H -u {} bash -c '
However this setting bring error like "sudo no such user {}".
The reason is because the following line of code in bin/interpreter.sh:
ZEPPELIN_IMPERSONATE_RUN_CMD=$(eval "echo ${ZEPPELIN_IMPERSONATE_CMD} ")
The eval echo before ZEPPELIN_IMPERSONATE_CMD actually execute the
ZEPPELIN_IMPERSONATE_CMD which cause the error.
My temporary workaround is change the above code to:
ZEPPELIN_IMPERSONATE_RUN_CMD=$ZEPPELIN_IMPERSONATE_CMD
It seems the "eval echo " is placed there for some checking. Is there a better
solution to support costume ZEPPELIN_IMPERSONATE_CMD?
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)