여러 명이 작업할 공유폴더에 대한 쓰기읽기실행 권한은 어떻게 주는게 좋은가요
글쓴이: ytt123 / 작성시간: 목, 2023/03/16 - 9:35오전
여러 명의 사용자가 한 디렉토리에서 파일도 만들고 디렉토리도 만들고 하면서 읽기 쓰기 실행의 모든 작업을 할 수 있게 하려고 합니다. 가령 /shared 에서요. 즉 한 디렉토리를 완전히 공유시키고 싶은데요,
단순히 sudo chmod -R a+rwx /shared
이렇게 하면 되는건가요.
그러면 어떤 유저든 /shared 안에 언제든지 여러 계층의 폴더들이나 파일을 만들면, 누구든지 접근이 가능한건지요.
그리고 혹시 위 명령어를 사용하게 되면 +x 때문에 일반 파일에도 실행가능한 파일로 바뀌게 되는데요, 이를 방지하는 방법은 없을까요? 그러니까 모든 유저가 디렉토리에 접근할 수 있도록 +x 를 디렉토리에만 주고 싶은데 (파일이 아닌) 그렇게 선택적으로도 가능한지요.
감사합니다!!!
Forums:
(제목은 빼고 본문의 입력을 그대로 복사해서 붙여넣기
(제목은 빼고 본문의 입력을 그대로 복사해서 붙여넣기 했습니다. lmgtfy의 openai버전이군요)
chatgtp 가라사대:
네, sudo chmod -R a+rwx /shared 명령어를 사용하면 /shared 디렉토리와 그 하위 모든 파일과 디렉토리에 대한 읽기, 쓰기 및 실행 권한이 모든 사용자에게 부여됩니다.
하지만 +x를 파일에도 적용하는 것을 방지하는 방법이 있습니다. chmod 명령어를 사용하여 디렉토리에만 실행 권한을 부여하고 파일에는 실행 권한을 부여하지 않는 것입니다. 이를 수행하려면 -type 옵션을 사용하여 파일과 디렉토리를 구분하고 -exec 옵션을 사용하여 디렉토리에만 실행 권한을 부여할 수 있습니다.
아래는 이를 수행하는 예시입니다.
bash
Copy code
sudo find /shared -type d -exec chmod 755 {} \;
sudo find /shared -type f -exec chmod 644 {} \;
위 예시에서 -type d 옵션은 디렉토리를, -type f 옵션은 파일을 나타내며, -exec 옵션은 해당 명령어를 실행합니다. {}는 현재 찾은 파일이나 디렉토리를 의미하고, \;는 명령어가 끝남을 나타냅니다.
위 예시를 실행하면 /shared 디렉토리와 그 하위 모든 디렉토리에는 실행 권한이 부여되고, 파일에는 실행 권한이 부여되지 않습니다.
chatgtp가 틀린 말을 한건 없습니다만, 더 나은
chatgtp가 틀린 말을 한건 없습니다만, 더 나은 방법들도 있고 (chmod +X 같은) 빠진 답변도 있네요.
애초에 chmod -R a+rwx 가 좋은 방법도 아니고요.
"그러면 어떤 유저든 /shared 안에 언제든지 여러 계층의 폴더들이나 파일을 만들면, 누구든지 접근이 가능한건지요."
이건 그렇지 않습니다. 폴더를 만든사람이 그 내부에서 권한을 어떻게 지정하느냐에 따라 달라질 수 있습니다.
이렇게 하니 되네요.
mkdir /SHARED
groupadd mygroup
usermod -a -G mygroup king
chgrp -R mygroup /SHARED
chmod -R 2775 /SHARED
댓글 달기