안녕하세요 fs 권한 관련 질문드립니다
446
35 asked
1. fs 모듈을 이용해서, /etc/hosts 파일을 수정할 때, 유저의 권한 문제를 어떻게 해결해야 할 지 모르겠습니다.
웹사이트를 만들고 있습니다. 이 웹은 집중 및 생산성에 도움이 되고자 하는 기능을 담고 있습니다.
유저가 특정 링크를 제 웹에 추가하면, 그 링크에 대한 접속을 차단하는 기능입니다. 물론 해제도 할 수 있습니다.
이 기능을 위해서, etc/hosts 파일(맥 기준)에 대한 수정 권한이 필요했습니다. api로 만들어서 해당 기능 함수를 실행시키려 했고, 결과는 permission 에러가 났습니다. 만약, 제 로컬에서, 저만 쓸 용도로 하면은 "sudo 기능함수파일" 을 사용하면 될 해결이 될 문제인데, 다른 사용자들의 로컬에서는 sudo 권한 및 관리자 권한을 어떻게 적용시켜줘야 할 지를 모르겠습니다. read는 잘 됩니다.
아래는 권한 에러가 나오는 곳의 코드와 api를 통해 hosts파일을 수정하려 할 때 나오는 에러입니다
// 로직
fs.writeFile(filePath, completeContent, (err) => {
if (err) {
return console.log('Error!', err);
}
});
// 에러
Error! [Error: EACCES: permission denied, open '/etc/hosts'] {
errno: -13,
code: 'EACCES',
syscall: 'open',
path: '/etc/hosts'
}
2. 또, 제가 etc/hosts(맥) 이나 C:\Windows\System32\drivers\etc\hosts(윈) 파일을 수정하는 것이 법적인 분쟁 소지가 될 수 있을까요?
권한을 요구하는 작업이다보니, 유저가 제 웹의 기능을 사용하고 나서, 그 후로 다른 작업을 할 때, 안 되는 게 있다면, 이에 대한 분쟁(?) 의 소지가 있을 수도 있겠다는 생각을 했습니다.
제 로직은, 차단할 링크를 배열에 담아두고, 그 링크가 hosts 파일의 Line에 추가되있다면, 그 라인만 없애는 식으로 해서, 기존의 내용은 건들지 않습니다.
[제로초 강좌 질문 필독 사항입니다]
질문에는 여러분에게 도움이 되는 질문과 도움이 되지 않는 질문이 있습니다.
도움이 되는 질문을 하는 방법을 알려드립니다.
https://www.youtube.com/watch?v=PUKOWrOuC0c
0. 숫자 0부터 시작한 이유는 1보다 더 중요한 것이기 때문입니다. 에러가 났을 때 해결을 하는 게 중요한 게 아닙니다. 왜 여러분은 해결을 못 하고 저는 해결을 하는지, 어디서 힌트를 얻은 것이고 어떻게 해결한 건지 그걸 알아가셔야 합니다. 그렇지 못한 질문은 무의미한 질문입니다.
1. 에러 메시지를 올리기 전에 반드시 스스로 번역을 해야 합니다. 번역기 요즘 잘 되어 있습니다. 에러 메시지가 에러 해결 단서의 90%를 차지합니다. 한글로 번역만 해도 대부분 풀립니다. 그냥 에러메시지를 올리고(심지어 안 올리는 분도 있습니다. 저는 독심술사가 아닙니다) 해결해달라고 하시면 아무런 도움이 안 됩니다.
2. 에러 메시지를 잘라서 올리지 않아야 합니다. 입문자일수록 에러메시지에서 어떤 부분이 가장 중요한 부분인지 모르실 겁니다. 그러니 통째로 올리셔야 합니다.
3. 코드도 같이 올려주세요. 다만 코드 전체를 다 올리거나, 깃헙 주소만 띡 던지지는 마세요. 여러분이 "가장" 의심스럽다고 생각하는 코드를 올려주세요.
4. 이 강좌를 바탕으로 여러분이 응용을 해보다가 막히는 부분, 여러 개의 선택지 중에서 조언이 필요한 부분, 제 경험이 궁금한 부분에 대한 질문은 대환영입니다. 다만 여러분의 회사 일은 질문하지 마세요.
5. 강좌 하나 끝날 때마다 남의 질문들을 읽어보세요. 여러분이 곧 만나게 될 에러들입니다.
6. 위에 적은 내용을 명심하지 않으시면 백날 강좌를 봐도(제 강좌가 아니더라도) 실력이 늘지 않고 그냥 코딩쇼 관람 및 한컴타자연습을 한 셈이 될 겁니다.
Answer 1
0
웹사이트인데 어떻게 fs를 쓰시는 건가요? 사용자의 컴퓨터에 웹사이트는 접근을 못할 텐데요?
/etc/hosts를 변경하는 건 /etc/hosts에 write 권한을 먼저 얻으셔야 할 것이고, 법적인 문제는 없으나 백신들에서 누군가 /etc/hosts를 바꿨다고 뜰 겁니다.
리눅스 노드 설치시 패키지
0
159
0
socket.js 에서 referer로부터 roomId를 가져올 때
0
904
3
스트리밍 방식으로 대용량 파일 업로드 & 다운로드 관련 질문
0
2281
2
a[title] 질문드립니다
0
375
1
리뉴얼 강의 및 공부 방법
0
581
1
jwt decode
0
1128
1
node.js 교과서 3판 질문드립니다
0
391
1
passport와 jwt
0
432
1
리뉴얼 강의
0
417
2
혹시 Node.js 교과서 3판 이북은 언제 나오나요?
0
353
1
몽고디비 사용자도 MYSQL부분을 들어야 하나요???
0
481
1
sql 쿼리 로그는 어떤 모듈이 작성하나요?
0
505
2
nunjucks res.render('error'); 작동을 안합니다.
0
511
1
질문있습니다.
0
346
1
multer 한글 파일 업로드시 파일명이 깨져요.
1
3535
1
수업자료는 어디있나요?
0
366
1
질문 있습니디
0
235
1
multer 사용시 file 외 name값은 못받나용?
0
416
1
코드 중복 부분 질문드립니다.
0
298
1
api 만드는 이유 질문드립니다.
0
286
1
Strategy의 done에 대해 질문드립니다.
0
361
1
시퀄라이즈 연결질문...
0
492
2
res.setHeader vs res.cookie
0
1784
3
실무에서의 에러처리에 대해 질문드립니다.
0
203
1

