특정 디렉토리 하부에 생기는 파일들의 퍼미션을 고정시키고 싶어요.

kldphjeon의 이미지

리눅스에서 공용폴더를 만들고 싶습니다.

/a 라는 폴더를 만들어
그 폴더에 누구나 쓰고 지울 수 있게 했습니다만,
tom 이라는 사용자가 nothing 이라는 파일을 만들었을 때,
john 과 같은 다른 사용자도 그 파일을 읽고 수정할 수 있게 만들었으면 합니다.

umask 등을 이용하면 그 사용자가 생성하는 모든 파일의 퍼미션이 영향을 받게 되니,
제가 의도하는 바와 거리가 있습니다.

제가 생각하는 것은 /a 라는 폴더 하부에서는 누가 어떤 파일을 만들더라도
만드는 사람과 상관없이 특정한 유저와 그룹, 퍼미션을 유지하게 하는 것입니다.

어떤 방법을 통하면 제가 생각하는 것을 구현할 수 있을까요?
꼭 제가 원하는 것이 아니라도 비슷한 것에는 어떤 방법이 있나요?

dary4n의 이미지

http://www.suse.de/~agruen/acl/chapter/fs_acl-en.pdf

^^

---
사람의 기쁨이나 슬픔 같은 것은...
풀꽃의 희미한 향기만큼도 오래 지속되지 않는다...

---
사람의 기쁨이나 슬픔 같은 것은,
풀꽃의 희미한 향기만큼도 오래 지속되지 않는다.

lethean의 이미지

사용자 A와 B가 aaa 그룹에 속해 있을 경우 다음과 같이 디렉토리에 그룹 권한을 주면 원하는 동작을 비슷하게 하지 않을까 합니다.

$ sudo chgrp aaa /a
$ chmod g+s /a

이후 이 디렉토리에 만들어진 모든 파일은 같은 그룹과 그룹 권한이 유지됩니다.

Nevermind... :)

dary4n의 이미지

다시 보니 sticky-bit 가 아니라 이건 sgid 네요. 제가 착각을 ^^ (아따 챙피한거)

근데 어쨌든 sgid 설정한다고 그게 하위 디렉토리/파일까지 적용되지 않을 것 같습니다.

ACL 이 정답일 듯.

---
사람의 기쁨이나 슬픔 같은 것은...
풀꽃의 희미한 향기만큼도 오래 지속되지 않는다...

---
사람의 기쁨이나 슬픔 같은 것은,
풀꽃의 희미한 향기만큼도 오래 지속되지 않는다.

kldphjeon의 이미지

아래에도 문제 현상을 적어놨지만..

원인이 bash 에 있는 걸로 보입니다.
tcsh 에서는 umask 값에 상관없이 default ACL이 계승되지만,
bash 에서는 default ACL 값이 umask 값에 덮어져 버립니다.
bash 에서 umask 값에 상관없이 default ACL 값이 계승되게 하려면 어찌 해야 하나요?

kldphjeon의 이미지

ACL은 초기 진입이 어려워서 우선 미뤄두고.. ^^
+s 하는 게 sticky bit인거죠?
어디선가 봐서 해봤는데..
잘 안되더라구요..

유저의 umask 값과 상관없이
/a 폴더에 할당된 그룹명을 계승하면서
그 그룹에 대한 rw 퍼미션을 가지게 되는 건가요?

내일 테스트를 해보고 경과보고토록 하겠습니다.

kldphjeon의 이미지

우선

sudo mkdir dir 
chmod 755 dir 

과 같이 디렉토리를 만들고
set -m group:class:rwx dir

와 같이 class 라는 그룹에 access ACL을 dir 디렉토리에 설정하고
set -d -m group:class:rwx dir

와 같이 default ACL을 설정했습니다.
그러면 ACL 정보는 아래와 같이 나옵니다.
; getfacl dir 
# file: .
# owner: root
# group: root
user::rwx
group::r-x
group:class:rwx
mask::rwx
other::r-x
default:user::rwx
default:group::r-x
default:group:class:rwx
default:mask::rwx
default:other::r-x

그 후 class 그룹의 유저가 dir 디렉토리 하부에 새로운 디렉토리를 만들면 다음과 같이 되는데,

; mkdir dir/subdir
; getfacl dir/subdir
# file: dir/subdir/
# owner: tom
# group: class
user::rwx
group::r-x
group:class:rwx
mask::rwx
other::r-x
default:user::rwx
default:group::r-x
default:group:class:rwx
default:mask::rwx
default:other::r-x

특정 유저의 경우 가음과 같이 mask 값이 변합니다.
# file: dir/subdir/
# owner: tony
# group: class
user::rwx
group::r-x
group:class:rwx
mask::rwx
other::r-x
default:user::rwx
default:group::r-x
default:group:class:rwx	#effective:r-x
default:mask::r-x
default:other::---

tom 과 tony 의 umask는 각각 22 와 0027입니다.
찾아본 바로는 default ACL 이 umask 값에 우선한다고 되어있는데,
무엇이 문제인지 모르겠네요.

도움 부탁드립니다.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.