사용자가 3명이에요ㅏ,두번째그리고씨"관리자" 그룹 내. 다른 사용자가 있습니다'디'홈 디렉토리에 project
폴더가 있습니다. 나는 이미 했어디폴더의 소유자가 되고 그룹으로 "admin"을 지정하십시오 chgrp
. 그룹과 소유자는 모든 권한을 갖고 있지만 여전히ㅏ,두번째또는씨폴더에 접근할 수 없습니다. 두 가지 질문이 있습니다.
다른 사용자가 다른 사용자의 디렉터리에 있는 모든 항목에 액세스할 수 있는지 여부
그룹에 권한을 부여하면 해당 그룹의 사용자에게 사용자의 홈 디렉터리 외부에 있는 파일에 대한 액세스 권한만 부여됩니까?
편집하다: 프로젝트의 소유자와 그룹을 설정하는 방법입니다.
sudo chown -R D project
sudo chgrp -R admin project
project
폴더에 들어가려고 할 때 오류가 발생합니다 .디홈 디렉토리(로그인 시ㅏ)
cd /home/D/project
-bash: cd: /home/D/project: Permission denied
다음은 명령의 출력입니다 ls -la
.
drwxrwsr-x 7 D admin 4096 Nov 18 13:06 project
다음은 그룹에 대한 설명입니다 admin
.
getent group admin
admin_users:x:501:A,B,C
또한 사용자로부터 들어가면 그룹이 admin
나열되지 않습니다.groups
디, 그러나 그것을 사용할 때 그것은 보입니다 cut -d: -f1 /etc/group
. 제가 언급한 사용자는디ec2-user
실제로는 (Amazon 서버의 기본 Fedora 사용자) 입니다 .
결국 서버에 git 저장소를 설정했습니다. 저장소를 만들었습니다.디홈 디렉토리이지만 원합니다ㅏ,두번째그리고씨액세스(및 복제)도 가능합니다.
답변1
- 예, 사용자는 다른 사용자의 홈 디렉터리에 있는 파일에 액세스할 수 있습니다.
- 아니요, 시스템 파일 권한 이외의 홈 디렉터리에 대해서는 특별한 처리가 없습니다. "그룹에 권한 부여"에는 그룹 소유권 부여와 그룹 권한 설정의 두 부분이 포함됩니다. 귀하의 예에는 소유권만 포함됩니다.
설정할 수 있습니다권한이 chmod
명령을 사용하면 재귀적으로 작동하지만 그것만으로는 그룹의 한 구성원이 만든 새 파일에 다른 구성원이 액세스할 수 있다는 보장이 없습니다.
지금까지 수행한 작업을 자세히 설명하고 git
저장소 공유 목표를 명시해 주셔서 감사합니다.
먼저 Unix와 Linux에서 그룹 파일 공유가 어떻게 보편적으로 수행되는지 살펴보고 그 내용을 살펴보겠습니다 git
.
기본 그룹 파일 공유 구성
Unix, GNU 등에서 이러한 유형의 파일 공유에 대한 몇 가지 기본 사항은 다음과 같습니다. 이는 그룹의 모든 구성원이 그룹의 다른 사용자가 만든 파일에 대한 읽기 및 쓰기 권한을 갖는 하나 이상의 디렉터리를 설정하는 간단한 방법입니다.
공용 사용자 그룹이 이라고 가정하면 gitusers
디렉토리는 입니다 repo
.
공유 멤버를 공개 그룹에 추가합니다(예
gitusers
: ).umask 002
그룹의 모든 사용자에 대해 설정합니다. 즉, 기본적으로 대부분의 파일이 그룹 쓰기 가능으로 생성됩니다. 이는 다양한 쉘 시작 파일(예/etc/bash.bashrc
: )에서 설정할 수 있습니다. GNU/Linux 시스템의 경우 및 더 많은 정보를 보려면man 8 pam_umask
및 를 참조하세요.man umask
-R
모든 공유 파일에 대해 그룹 소유권을 반복적으로 설정합니다( ).chgrp -R gitusers repo
모든 파일에 대해 그룹 읽기 및 쓰기 권한을 반복적으로 설정합니다.
chmod -R g+rw repo
( ) repo 및 모든 하위 디렉토리를 설정합니다
set group id on execution bit
. 이 디렉터리에 새로 생성된 파일과 하위 디렉터리가 상위 디렉터리와 동일한 그룹 소유권을 상속함setgid
을 나타냅니다 .setgid
새 하위 디렉터리에도setgid
재귀 효과를 얻기 위해 비트가 설정되어 있습니다.find repo -type d -exec chmod g+s {} \;
gitusers
위 단계를 완료한 후에는 예제에서 동일한 그룹에 있는 모든 사용자가 서로의 파일을 읽고 쓸 수 있도록 허용하는 동시에 gitusers
공유 그룹에 속하지 않은 사용자에게는 쓰기 액세스를 거부 할 수 있어야 합니다 . . 뿐만 아니라 원하는 공유 목적을 위해 원하는 만큼 많은 디렉터리에 을 복사 chown
하고 명령을 내릴 수 있습니다.chmod
find
git
공유 git
저장소
git
위의 구성 변경만으로 제대로 작동하는 것 같습니다 . 그러나 git
공유 및 그룹 권한도 이해해야 합니다(실제로 위의 작업 중 일부를 수행할 수도 있음).
공유 저장소를 생성하는 경우 git
다음 옵션을 고려하십시오.
git init --bare --shared=group repo
기존 저장소가 있는 경우 다음 설정을 고려하십시오.
- 핵심 누드
- core.sharedRepository=그룹
보다git-init
매뉴얼 페이지그리고매뉴얼 git-config
페이지자세한 내용은.
노트
베어 그룹 공유 git
저장소는 일반 예제와 동일한 단계 중 일부를 따르지만 일관성을 보장하고 다른 공유 디렉터리 설정의 용이성을 보장하기 위해 일반 예제의 단계도 따르는 것이 좋습니다.
답변2
일부 사항은 필요한 것 같지만(나는 이러한 문제에 대한 전문가가 아니라는 점을 자유롭게 인정하지만) RobertL의 훌륭할 정도로 철저한 답변에서는 다루지 않습니다.
- 다른 사용자가 실제로 그룹에 로그인되어 있는지 확인하십시오
admin
.
A$ newgrp admin
사용자가 이미 그룹에 속해 있으므로아니요그룹 비밀번호를 설정해야 합니다. 이렇게 하면:
A$ sudo chgpasswd
admin:secret
(표준 입력으로 입력)
- 확실하게 하다디님의 홈디렉토리는 그룹에 속해 있으며
admin
, 그룹검색이 가능합니다.
D$ chgrp admin ~
D$ chmod g+x ~
D$ ls -lad ~
drwx--x--- 3 D admin 4096 Nov 24 19:25 /home/D
사용자가 디렉터리나 해당 하위 디렉터리에 들어갈 수 있도록 디렉터리는 검색 가능해야 합니다 project
. 그룹을 만들 필요가 없습니다읽을 수 있는, 그래서디자신의 파일 이름은 비공개로 유지됩니다. 다른 사용자가 쉽게 액세스할 수 있도록 하려면 project
심볼릭 링크를 생성해야 합니다. 그렇지 않으면 매번 전체 경로를 입력해야 합니다(셸이 경로 이름을 읽을 수 없기 때문에 자동 완성은 작동하지 않습니다. ) .