일반계정에서 돌아가는 프로그램이 루트권한 얻는방법은?
글쓴이: ultra76 / 작성시간: 월, 2008/02/11 - 2:09오후
안녕하십니까?
리눅스 초보 프로그래머 입니다~
일반계정에서 돌아가는 프로그램이 있습니다.
프로그램이 실행중 어떤 입력이 들어오면
마운트 작업을 해줘야하는데요~
문제는 마운트/언마운트가 루트권한에서 실행된다는 겁니다.
일반계정->루트권한->마운트-> Working.... -> 언마운트 -> 일반계정복귀
이렇게 할수 있는 방법이 없을까요?
Setuid()함수를 쓸까 했더니 그것도 루트권한에서만 실행된다 하더군요..
고수님들 해결방법좀 알려주세요^^
수고하세요~
Forums:
# chmod +s
# chmod +s /bin/mount
이렇게 해두면 root권한으로 mount를 실행하게 됩니다. =_=
적당한 그룹을 만들고 그룹에 사용자를 추가한 뒤
chgrp [GROUP] /bin/mount
chmod g+s /bin/mount
이렇게 해두면 될거 같네요.
그 방법으로 일반계정에서 실행을 해보니...
그 방법으로 일반계정에서 실행을 해보니
mount:only root can do that
이라는 메시지가 뜨는군요..
일시적으로 루트권한을 좀 얻어서 마운트를 할 수 있는 방법은 없을까요?
음...
sudo mount ..
;; blah blah
sudo umount ..
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
root권한으로 seteuid를
root소유 권한의 seteuid를 주는 프로그램을 만드시고, 파일 그룹에 사용자 그룹을 추가해보세요.
setuid는 좀 거시기한데...
setuid는 좀 거시기하고...
/dev 가서 mount하고자 하는 디바이스를 user 소유로 바꿔버리면 되지 않을까요?
당장은 테스트할만한 환경이 없어서 확인은 못 해봤습니다 ㅠㅠ
댓글 달기