inflearn logo
강의

Course

Instructor

[Renewed] Node.js Textbook - From Basics to Project Practice

안녕하세요 fs 권한 관련 질문드립니다

446

devsn

35 asked

0

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. 위에 적은 내용을 명심하지 않으시면 백날 강좌를 봐도(제 강좌가 아니더라도) 실력이 늘지 않고 그냥 코딩쇼 관람 및 한컴타자연습을 한 셈이 될 겁니다.

Sequelize nodejs mongodb mysql

Answer 1

0

zerocho

웹사이트인데 어떻게 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