아파치 사용자가 external USB를 마운트 할수 없습니다.

하드웨어 지원 및 드라이버 설치 등에 관한 문제 해결

Moderator: Dry8r3aD

Post Reply
ellieakim
Posts: 3
Joined: 2021/04/14 Wed 9:47 am

아파치 사용자가 external USB를 마운트 할수 없습니다.

Post by ellieakim » 2021/04/14 Wed 9:53 am

라즈베리파이에 자바스크립트와 파이썬으로 개발중입니다.
프로그램 실행후에 usb로 데이타를 다운로드 받는 프로그램인데 pi사용자로는 usb를 꼽아서 마운트가 가능한데 아파치 사용자(www-data)의 경우는 마운트가 되지 않습니다.

혹시 어떤 설정들을 사용해서 마운트를 해야하는지 알려주시면 너무 감사하겠습니다.

User avatar
황병희
Posts: 1001
Joined: 2009/10/18 Sun 1:47 am
Contact:

Re: 아파치 사용자가 external USB를 마운트 할수 없습니다.

Post by 황병희 » 2021/04/14 Wed 9:43 pm

ellieakim wrote:
2021/04/14 Wed 9:53 am
pi사용자로는 usb를 꼽아서 마운트가 가능한데 아파치 사용자(www-data)의 경우는 마운트가 되지 않습니다.
마운트 명령어를 직접 치셨나요?
pi사용자로는 어떻게 마운트를 하셨는지 여기다 자세히 기술할 수 있나요?

왜 재질문을 하는가하면요... 선생께서 질문하신 내용이 논리적으로 이해가 쉽지않은까닭입니다.
(요컨데 선생께서 알고 있는 마운트와 제가 알고 있는 마운트가 같은지 확인이 필요합니다)

마운트라는 행위에 대하여 선생께서 하신 작업을 세세히 미주알고주알 적어주시면 좀 더 질문을 이해하는데 도움이 될거 같아요~

[크롬북에서 적었어요~]
^고맙습니다 감사합니다_^))//

ellieakim
Posts: 3
Joined: 2021/04/14 Wed 9:47 am

Re: 아파치 사용자가 external USB를 마운트 할수 없습니다.

Post by ellieakim » 2021/04/15 Thu 9:09 am

제가 설명을 잘 못해서 죄송합니다.
제 프로그램 환경은 라즈베리파이에 앞단의 GUI는 HTML, 자바스크립트를 사용하고 라즈베리파이의 H/W에 관련 한 부분은 파이썬(CGI)을 사용하고 있습니다.

파이썬으로 직접 실행(python test.py)을 할 경우에는
sudo mount -v -o rw uid=pi,gid=pi /dev/sda1 /mnt/usb 이렇게 했습니다. 실제로 uid와 gid는 getpass.getuser()에서 받은 사용자 정보를 넣었습니다.
이 경우에는 정상적으로 마운트가 되어서 마운트 된 usb의 내용을 보고 또 해당 usb에 디렉토리를 만들거나 파일을 복사하는게 가능했습니다.

그런데 GUI에서 할 경우에 사용자가 pi가 아니라 www-data가 되는데 이 경우에는
sudo mount -v -o rw uid=pi,gid=pi /dev/sda1 /mnt/usb 의 같은 명령어를 써도 uid, gid를 getpass.getuser()에서 받아온 (www-data)를 써도 usb자체가 마운트가 되지 않습니다.

프로그램 구현상 자동마운트 기능을 사용하면 안되기 때문에 fstab에 아래와 같은 라인을 추가해서 사용하고 있습니다.

/dev/sda1 /mnt/usb vfat rw,sync,noauto,exec,user,umask=000 0 0

설명이 충분히 되었는지 모르겠습니다.

User avatar
황병희
Posts: 1001
Joined: 2009/10/18 Sun 1:47 am
Contact:

Re: 아파치 사용자가 external USB를 마운트 할수 없습니다.

Post by 황병희 » 2021/04/15 Thu 8:28 pm

sudo 권한의 벽에 막힌거 같아보입니다.

/etc/group 파일을 열어보시면... sudo 항목이 보일겁니다...

그곳에다 www-data 가 추가되지 않았다면 추가해보심을 추천해봅니다...

[우분투 18.04 파여폭스 나비에서 적었어유~~~]
^고맙습니다 감사합니다_^))//

User avatar
황병희
Posts: 1001
Joined: 2009/10/18 Sun 1:47 am
Contact:

Re: 아파치 사용자가 external USB를 마운트 할수 없습니다.

Post by 황병희 » 2021/04/15 Thu 8:56 pm

아파치 사용자(www-data) 에 sudo 권한을 부여하는 행위는 마운트 동작에만 한정시켜주시길 바래요.

뭐랄까 삽으로 처리해야 할 일에 포크레인을 투입한거 같은 느낌이 계속 드네유 ;;;

sudo 사용자의 명령문을 제한시키는 방법에 관한 참고문헌 함께 남깁니다:
===> https://superuser.com/questions/767415/ ... nux/767419

꾸벅~

[우분투 18.04 파여폭스 나비에서 적었어유~~~]
^고맙습니다 감사합니다_^))//

User avatar
황병희
Posts: 1001
Joined: 2009/10/18 Sun 1:47 am
Contact:

Re: 아파치 사용자가 external USB를 마운트 할수 없습니다.

Post by 황병희 » 2021/04/15 Thu 9:07 pm

그리고 이건 노파심에 드리는 말씀인디요;;;

/etc 파일들을 편집 작업 할때엔...
반드시 수정 전 백업 파일 만들어두시길 바래요.
반드시 수정 전 백업 파일 만들어두시길 바래요.
반드시 수정 전 백업 파일 만들어두시길 바래요.

황병희 드림

[우분투 18.04 파여폭스 나비에서 적었어요~~~]
^고맙습니다 감사합니다_^))//

ellieakim
Posts: 3
Joined: 2021/04/14 Wed 9:47 am

Re: 아파치 사용자가 external USB를 마운트 할수 없습니다.

Post by ellieakim » 2021/04/16 Fri 6:41 am

다른 sudo 명령(sudo reboot - ip 수정 후 재부팅 등 사용해야해서)을 사용해야해서 이미 sudo 권한은 www-data사용자에게 주었습니다.
권한의 문제는 아닌것 같습니다.

User avatar
황병희
Posts: 1001
Joined: 2009/10/18 Sun 1:47 am
Contact:

Re: 아파치 사용자가 external USB를 마운트 할수 없습니다.

Post by 황병희 » 2021/04/16 Fri 3:51 pm

으따 시골이라 모짜리 하고 돌아왔씁니다 ;;;
ellieakim wrote:
2021/04/16 Fri 6:41 am
다른 sudo 명령(sudo reboot - ip 수정 후 재부팅 등 사용해야해서)을 사용해야해서 이미 sudo 권한은 www-data사용자에게 주었습니다.
권한의 문제는 아닌것 같습니다.
보통 아파치 웹서버를 띄울때 보안을 위하야 www-data 나 nobody 등등의 제 3의 계정을 만듭니다.
시스템을 보호하기 위하여 취하는 정책인데요...

선생께서 이미 www-data 에 sudo 의 전권(= "Super User 가 할 수 있는 모든 권한")을 위임하셨다니..
그럼 이제부턴 보안은 그냥 없는셈치고 나가봅니다...

두가지 방향이 있씁니다..

pi 사용자로써는 마운트를 성공하셨다니까... 아파치 웹서버를 pi 사용자로 구동시킵니다. 요게 첫번째 방법.
가능한한 첫번째 방법을 쓰시길 당부드립니다. 더 쉬우니깐요...
다행스럽게도 아파치 웹서버 환경변수에 해당 항목이 있더이다...
/etc/apache2/envvars 파일을 살펴보세요...
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
위 환경변수가 이미 준비되어 있기에 일이 한결 쉬워졌씁니다.

두번째는 www-data 의 쉘 환경을 pi 사용자와 거의 비슷하게 만들어줍니다.
이것도 /etc/passwd /etc/group 등등의 파일을 수동으로 만져야만 합니다..
수동 편집이 어렵다면 www-data 사용자를 지우고 www-data 를 새로이 생성합니다.
새로이 생성할때,
시스템의 보통 사용자처럼 bash 도 할당하고 비밀번호 등등도 부여하고 홈디렉토리도 만들고 ssh 로도 접속가능하게끔요
그리고 sudo 그룹에도 추가시켜줍니다.
(이미 맨위에서 선생께선 보안은 포기한 상태이기에 이렇게 나갈 수 있는거구용~)

위의 두가지 방법다 실패하시면,,,
(문제해결을 위하야...)
가장 마지막엔 선생의 파이썬 코드를 다 까셔야 합니다.
그리고 아파치 웹서버 설정 파일도요...

[크롬북에서 적었어요~]
[우분투 18.04 파여폭스 나비에서 내용을 보강했씁니다]
^고맙습니다 감사합니다_^))//

Post Reply