파일 마운트에 관한 질문 입니다.

seniya의 이미지

안녕하세요. 김우람이라고 합니다.

얼마전 서버를 하나 임대를 했습니다.
하드가 스카시 9기가 두대가 달려 있습니다.
서버 세팅해주는 직원 말씀이 요즘은 보안때문에 이런식으로 세팅한다고
합니다.

-----------------------------------------------------------------
/dev/sda3 8180152 1044836 6719780 14% /
/dev/sda1 49558 15445 31554 33% /boot
/dev/sdb1(두번째하드) 8830416 32828 8349028 1% /data
none 128180 0 128180 0% /dev/shm
------------------------------------------------------------------

요런식으로 두번째 하드를 마운트해서 두번째 하드에 일반계정같은것을
세팅한다고 합니다.
그러니까 첫번째 드라이브는 포기하는 겁니다.

문제는 adduser를 하면 홈디렉토리 및으로 계정이 생기잖아요?

그런데 홈 디렉토리는 첫번째 하드에 있는것이고 실질적인 데이터를
두번째하드(data라는 디렉토리)로 보내야 되는데 홈디렉토리에 데이타를
저장하면 바로 data라는 디렉토리로 파일이 저장되게 할 수는 없을까요
다시말해 data라는 디렉토리를 마치 홈디렉토리 쓰듯이 adduser 하면
홈디렉토리및으로 계정이 생기는 것처럼 보이지만 사실은 데이타 디렉토리
및으로 생기게 말입니다.

제가 잘 몰라 말이 정리가 안되서 죄송합니다.
혹시 제 질문에 감잡으신 분들은 답변좀 부탁드립니다.

새해 복 많이 받으세요~!

logout의 이미지

??? 이거랑 보안이 커다란 상관이 있나 --;

우선, 질문하신 것 답부터요. 굳이 /data 디렉토리에 하드를 마운트하실 필요는 없습니다. 그냥 /home에다 마운트를 하세요. /etc/fstab에 /data 엔트리를 /home으로 수정해 주시면 됩니다.

만약 /home에 유저들이 있을 경우, 일단은 루트로 변신해서

# mount /sdc1 /mnt
# cd /home
# cp -av * /mnt # -a 옵션은 서브디렉토리와 퍼미션을 그대로보존
# vi fstab

이렇게해서 fstab의 data 엔트리를 home으로 고쳐주고 재부팅하면 되겠죠. 재부팅하기 싫으면 mount -a 하면 될겁니다.

아니면 심볼릭 링크를 걸어줄 수도 있겠죠.

# ln -sf /home /data

이때 주의하실점은 두번째 하드에 /home쪽 내용이 다 복사되어 있어야겠죠. 앞의 cp -av 며령을 참고로 하시구요. 그리고 링크를 만들기 위해서는 첫번째 하드의 /home 디렉토리를 날려야 합니다.

하나 궁금한 것은 첫번째 하드 디스크의 사용입니다. 9기가씩이나 루트 티션에 줄 필요가 있나요? 보통 서버를 만들면 아무나 이 서버를 억세스 할 수 있게 만든다는 뜻인데 위 방식은 문제가 있습니다.

우선, 해킹당했을때를 가정해보면, 시스템을 새로 깔아야 합니다. 따라서 데이터부분과 응용 프로그램이 설치된 파티션은 나누어 주는 것이 좋습니다. 일단 사용자 계정 디렉토리는 다른 파티션을 쓰시고 있구요. 아마도 웹 서버를 돌리고 웹 비비를 깐다면 mysql 데이터베이스도 돌리실텐테 당연히 mysql 데이터 디렉토리도 다른 파티션에 주는 것이 좋습니다.

그리고 로그 파일이 쌓이는데 대한 대응도 해 줘야 합니다. 보통은 logrotate가 알아서 오래된 로그 파일을 지워주지만 시스템 오동작이 재수없으면 하드를 채울때도 간혹 생깁니다. 루트 파티션이 차 버리면 시스템 동작이 중지되며 직접 재부팅이 불가능해지는 문제가 생깁니다. 따라서 /var 디렉토리도 파티션을 적당히 빼 주는 것이 좋겠죠. 1기가 정도면 남아돌겁니다. 같은 이유로 /tmp 디렉토리에도 파티션을 따로 주는 것이 좋습니다. 간혹 여기에 파일이 생기면서 하드를 채우는 경우도 간혹 있습니다.

안전을 위해서는 /usr 디렉토리도 따로 마운트 시켜주는 것이 좋습니다. 반드시 필요하지는 않구요.

배보다 배꼽이 길어졌는데... 일단 서버 세팅을 그렇게 잡으셨고 /data 디렉토리로 두번째 하드를 마운트 하셨으니 미니멈 조건은 충족 하셨구요. 두번째 하드는 마운팅을 /home으로 직접 하시든가 심볼링 링크를 /data로 걸어주시든가 하세요.

"I conduct to live,
I live to compose."
--- Gustav Mahler

winchild의 이미지

좀더 쉬운 방법으론 adduser 에 -d 옵션을 이용하면 원하는 디렉토리 어디나 만들수 있습니다. 혹 잊어 버릴수가 있으니간 alias 로 항상 -d 옵션이 추가되도록 만들면 될것 입니다.

근데 정말 루트파티션을 9GB 나 할당한것은 좀 황당하네요. 해킹을 당하면 젤먼저 밀어 버리게 되는것이 루트파티션과 usr 파티션입니다.

다시 설치하는게 어떨지, 넘 낭비인거 같네요. 루트파티션은 보통 1GB 정도, usr 파티션은 2GB 정도면 될겁니다.

- 겨울아찌 - :shock:

- 겨울아찌 -
winchild@gmail.com

cdpark의 이미지

첫 하드를 쪼갠다면 따로 쪼개야 할 첫 파티션은 /var죠.

root 1GB, usr 2GB, var 첫 하드 나머지..
(굳이 root와 usr를 나눌 필요가 있을지는...)

이렇게 쪼갰어야죠. 그리고 두번째 하드를 /home에 마운트하고요.

var를 쪼개지 않으면 내부 사용자나 외부의 SPAM mail 등에 의해 시스템이 맛이 갈 경우 복구가 꽤 골치아파집니다.

seniya의 이미지

아직 제가 많이 몰라서 벌어진 일 같습니다.
고민 좀 더 해봐야겠군요

관심 가져 주셔서 감사합니다.

새해 복 많이 받으세요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.