2017-10-23 1 views
0

내 sudo 암호를 입력해야하는 명령에서 스크립트를 만드는 옵션은 무엇이겠습니까?
Im는 fsimage를 내보내고 있으며 정기적으로이 작업을 수행하려고합니다. 그것은 내 accout에서 실행할 수 있지만 이상적으로, 나는 이러한 수출을하기 위해 전담하는 사용자를 만들고 싶습니다.
내가 루트 크론을 사용하여 멀리이sudo가 필요한 명령으로 Cron

전체 명령을 수행하는보다 안전한 방법을 사용하고자하는 것은 다음과 같습니다

sudo ssh czmorchr 'hdfs oiv -p Delimited -i $(ls -t /dfs/nn/current/fsimage_* | grep -v md5 | 
head -1) -o /dev/stdout 2>/dev/null' | grep -v "/.Trash/" |sed -e 's/\r/\\r/g' | awk 'BEGIN 
{ FS="\t"; OFS="\t" } $0 ! ~ /_impala_insert_staging/ && ($0 ~ /^\/user\/hive\/warehouse\/cz_prd/ || 
$0 ~ /^\/user\/hive\/warehouse\/cz_tst/) { split($1,a,"/"); db=a[5]; table=a[6]; gsub(".db$", "", table); } 
db && $10 ~ /^d/ {par=""; for(i=7;i<=length(a);i++) pa r=par"/"a[i] } db && $10 !~ /^d/ 
{ par=""; for(i=7;i<=length(a) - 1;i++) par=par"/"a[i]; file=a[length(a)] } NR > 1 { print db,table, par, file, $0 }' | 
hadoop fs -put -f - /user/hive/warehouse/cz_prd_mon_ma.db/hive_warehouse_files/fsim age.tsv 
+0

왜 sudo를 사용하여 ssh를 사용합니까? 기본적으로 ssh를 간단한 사용자로 사용할 수 있습니다 –

+2

비밀 번호가없는 sudo를 실행하고 싶다면 단순히 루트 cron에 넣는 것보다 어떻게 안전하다고 생각합니까? – 123

답변

0

setfacl 명령을 사용하여이 문제를 해결할 수있었습니다. (Context :) 대기 노드가 fsimages를 덤프해야하는 HDFS에서 다른 폴더를 설정했습니다. 그런 다음이 명령을 사용하고 나면 위의 스크립트를 sudo없이 crontab에서 실행할 수있었습니다.

setfacl -m u:hdfs:rwx /home/user_name/fsimage-dump/namenode 
0

암호를 입력하지 않고 sudo는 등의 일을하기 위해,이 안전하지 않은 방법,

echo ubuntu | sudo -S ls 

우분투 사용자 및 우분투 암호를 가진 ls 명령을 부여 여기 메신저있다. 알 수 있듯이 sudo에 대한 암호는 -S가 작동합니다.

여기에 사용자 sudoer를 으로 지정해야합니다. https://askubuntu.com/questions/7477/how-can-i-add-a-new-user-as-sudoer-using-the-command-line입니다.

+0

sudo를 사용하여 어딘가에 ssh를 사용하는 이유는 무엇입니까? –

+0

그가 필요하다면, 그는 뭔가를 chmood해야하지만, 여전히 해결책을주었습니다. 거기 ssh보다 더 많은 작업이 있습니다. 그는 파일을 ussing하고 있습니다, 나는 sudo가 깨끗한 옵션이 아니라는 것에 동의하며, 나는 permision을 부정하는 것을 찾는다. –

관련 문제