안녕하세요.
pass 란 파일에 암호를 적어놓고
프로그램에서 다음과 같은 명령을 사용했습니다.
system("su < pass");
그런데 다음과 같은 메세지가 나오네요.
standard in must be a tty
어떻게 하면 자동으로 암호를 입력할수 있나요?
패스워드를 파일에 적고..입력하시려하다니.. 그런 위험한 방법을....;;; 프로그램 상에서 루트의 권한이 필요하실때는.. setuid 나 sudo 쪽으로 접근해야 맞는 방향이 아닐까 싶네요..;
Emerging the World!
제가 데몬 프로그램을 만들고 있습니다.
이 녀석이 어떤 사용자 계정에 접속 후에 사용자 계정에 있는 쉘 스크립트를 실행 해야하거든요. 그런데 이 쉘스크립트가 실행할때 환경변수(set 명령)을 이용하기때문에 위와 같은 작업을 하려고 합니다.
다른 좋은 방법있으면 고수님들의 조언을 부탁드립니다.
OTL 즐!!!! (좌절 금지!!!)
제가 데몬 프로그램을 만들고 있습니다. 이 녀석이 어떤 사용자 계정에 접속 후에 사용자 계정에 있는 쉘 스크립트를 실행 해야하거든요.
이 녀석이 어떤 사용자 계정에 접속 후에 사용자 계정에 있는 쉘 스크립트를 실행 해야하거든요.
사용자 계정에 스크립트를 밖으로 빼는게 어떤지요.
ssh 랑 ssh-agent를 잘 사용하시면 될듯 하네요. su 랑은 좀 다르지만 비슷한 효과가.
screen + vim + ctags 좋아요~
그런데요. script를 빼낼수가 없는 이유가 각 계정마다 script가 있고 각각의 script는 각각 다른 동작을 하게 되어 있습니다.
그리고 제가 작업중이 서버에는 ssh가 설치되어 있지 않습니다. ㅜ.ㅜ
그래서 질문인데요.
어떤 프로그램을 system이나 execve같은 것으로 실행할 때
프로그램의 소유자를 root가 아닌 특정 id로 지정해서 실행이 가능한가요?
ps 명령을 내렸을때 소유자가 root가 아닌 특정id가 되면 됩니다.
setuid 함수를 이용하세요.
그리고 프로그램의 seuid bit (chmod +s..) 도 확인해보시고요.
man setuid man chmod
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
패스워드를 파일에 적고..입력하시려하다니..그런 위험한 방법을....
패스워드를 파일에 적고..입력하시려하다니..
그런 위험한 방법을....;;;
프로그램 상에서 루트의 권한이 필요하실때는..
setuid 나 sudo 쪽으로 접근해야 맞는 방향이 아닐까 싶네요..;
Emerging the World!
^^ 그런건 아니고요.
제가 데몬 프로그램을 만들고 있습니다.
이 녀석이 어떤 사용자 계정에 접속 후에 사용자 계정에 있는 쉘 스크립트를 실행 해야하거든요. 그런데 이 쉘스크립트가 실행할때 환경변수(set 명령)을 이용하기때문에 위와 같은 작업을 하려고 합니다.
다른 좋은 방법있으면 고수님들의 조언을 부탁드립니다.
OTL 즐!!!! (좌절 금지!!!)
Re: ^^ 그런건 아니고요.
사용자 계정에 스크립트를 밖으로 빼는게 어떤지요.
ssh 랑 ssh-agent를 잘 사용하시면 될듯 하네요.su 랑은
ssh 랑 ssh-agent를 잘 사용하시면 될듯 하네요.
su 랑은 좀 다르지만 비슷한 효과가.
screen + vim + ctags 좋아요~
답글 감사드립니다.
그런데요. script를 빼낼수가 없는 이유가 각 계정마다 script가 있고 각각의 script는 각각 다른 동작을 하게 되어 있습니다.
그리고 제가 작업중이 서버에는 ssh가 설치되어 있지 않습니다. ㅜ.ㅜ
그래서 질문인데요.
어떤 프로그램을 system이나 execve같은 것으로 실행할 때
프로그램의 소유자를 root가 아닌 특정 id로 지정해서 실행이 가능한가요?
ps 명령을 내렸을때 소유자가 root가 아닌 특정id가 되면 됩니다.
OTL 즐!!!! (좌절 금지!!!)
setuid 함수를 이용하세요.그리고 프로그램의 seuid bit
setuid 함수를 이용하세요.
그리고 프로그램의 seuid bit (chmod +s..) 도 확인해보시고요.
man setuid
man chmod
댓글 달기