여러 Linux 설치에서 서로 다른 사용자에 대한 그룹 권한을 설정하는 방법은 무엇입니까?

여러 Linux 설치에서 서로 다른 사용자에 대한 그룹 권한을 설정하는 방법은 무엇입니까?

/home내 컴퓨터에는 서로 다른 파티션에 있지만 두 설치에서 공유되는 두 개의 Linux 설치가 있습니다 . 충돌을 피하기 위해 설치마다 사용자 이름이 다릅니다. 문제는 제가 개발자이고 사용자를 혼합하고 싶지 않지만 공유 폴더에 대한 권한을 설정하고 싶다는 것입니다.

예,

  • Ubuntu, 기본 사용자: raul, 기본 폴더:/home/raul
  • Fedora, 기본 사용자: ricardo, 기본 폴더:/home/ricardo
  • 나는 이 폴더에 대한 /home/sharedwhere raul& have 권한을 원 하지만 Linux 배포판의 다른 사용자도 필요합니다.ricardowww-dataroot

당신이 내 문제를 해결할 수 있기를 바랍니다.

편집: 예상보다 더 복잡한 것 같습니다.

이 메모는 제가 실제 영어 실력으로 설명할 수 있는 최선의 내용이므로 친절하게 대해주세요.

동일한 컴퓨터에 배포판 A와 B가 설치되어 있습니다. 배포판 A와 B는 다른 파티션에서 공유되지만 /home다른 사용자와 공유됩니다. 따라서 배포판 A에 사용자가 있습니다. /home/a그래서 사용자와 같은 폴더를 갖고 싶고 둘 다 그 안에 있을 수 있습니다. 폴더 읽기 및 쓰기 마치 동일한 그룹에 속한 것처럼 보이지만 사용자는 릴리스 B에 존재하지 않으며 그 반대의 경우도 마찬가지입니다. 그렇다면 각 배포판에 나를 다른 배포판의 사용자와 그룹화하도록 어떻게 지시합니까?A/home/b/home/sharedABA

답변1

문제가 정확히 무엇인지 잘 모르겠습니다. 좀 더 자세히 알아볼 수 있나요? 특히 구문 분석하는 데 문제가 있습니다.

나는 raul과 ricardo가 이 폴더(아마도 www-data 및 root)에 액세스할 수 있는 /home/shared를 원하지만 Linux 배포판의 다른 사용자도 액세스할 수 있습니다.

공유 폴더/파티션을 설정하는 방법을 알고 싶으십니까? 그렇다면 각 설치마다 동일한 그룹 ID를 사용하여 그룹을 설정할 수 있습니다. 그런 다음 acl을 사용하여 그룹이 rw파티션에 대한 권한을 가지고 있는지 확인할 수 있습니다 .

man addgroup설명하다

GID는 구성 파일(FIRST_GID, LAST_GID)의 시스템 GIDS에 대해 지정된 범위에서 선택됩니다. 이 메커니즘을 재정의하려면 --gid 옵션을 사용하여 GID를 지정할 수 있습니다.

그래서 당신은 할 수 있습니다

addgroup [options] [--gid ID] group

여기서 groupID는 두 설치 모두에서 동일합니다.

ACL에 대한 튜토리얼은 다음을 참조하세요.Fedora Core 2에서 ACL 사용, 그리고 내 모습을 보세요답변두 사용자 간의 디렉토리 공유에 관한 최근 질문입니다. 분명히 두 설치 모두에서 acl을 지원하는 파티션이 필요합니다.

acl일단 설정되면 폴더의 모든 파일과 디렉터리는 그룹 권한을 갖게 되므로 rwraul설치와 ricardo다른 설치는 폴더를 읽고 쓸 수 있습니다.

편집: 아래 Raul의 의견에 대한 응답:

귀하의 질문을 올바르게 이해하고 있고 두 설치에서 두 사용자 간에 데이터를 공유하려고 한다면 www-data이는 귀하가 묻는 질문과 약간 다른 질문입니다. 이 경우 사용자는 동일하기 때문입니다 raul.ricardo

www-data일반적으로 Apache와 같은 웹 서버 설치에 의해 생성되므로 이미 그런 경우가 아니면 일치하는 ID로 생성하는 것이 어려울 수 있습니다(아래 참조). 나는 이벤트가 일치하도록 uids/gids를 변경하는 데 문제가 없을 것이라고 생각하지만 그것에 대해 100% 확신할 수는 없습니다. 어쩌면 여기 전문가가 조언을 제공할 수도 있습니다.

Debian의 기본값은 입니다 uid/gid=33. www이는 다른 Linux 배포판에 따라 다를 수 있습니다. 그러나 설치가 모두 동일한 배포라면 ID가 일치할 가능성이 높습니다. 실제로 이런 경우에는 아무것도 하지 않고 www-data 그룹을 그룹으로 사용하면 됩니다.

답변2

Faheem님의 말씀이 맞습니다. 귀하의 질문을 올바르게 이해했다면 공유 그룹 옵션을 사용하여 문제를 해결할 수 있습니다.

이 명령을 사용하여 각 시스템에서 현재 할당된 가장 높은 GID를 찾을 수 있습니다(uniq는 필수는 아니지만 습관적으로 포함됨).

awk -F':' '{ print $3 }' /etc/group | sort -n | uniq | tail -1

이 명령의 출력에 관계없이 사용되지 않은 GID도 낮은 값에서 겹칠 수 있습니다. 그러나 인쇄된 값보다 높은 GID를 선택하면 해당 식별자가 어느 시스템에서도 사용되지 않습니다.

관련 폴더에 설정된 모든 그룹 권한은 두 시스템 모두에 있는 그룹의 모든 구성원에게 적용됩니다.

또한 그룹 이름이 일치할 필요는 없지만 자신의 정신을 위해서는 이것이 바람직할 수 있습니다.

Linux 배포판에 따라 한 명 이상의 사용자를 그룹에 추가하려면 gpasswd 명령에 액세스할 수 있습니다.

gpasswd -a <user> <group/GID>

이 유틸리티가 없거나 기본 설정에 따라 다음을 실행하여 동일한 변경을 수행할 수 있습니다.

usermod -G $(groups <user> | sed 's/ /,/g'),<new group> <user>

이 명령은 지정된 사용자에 대해 기본 그룹이 아닌 보조 그룹을 설정한다고 가정합니다.

답변3

커널 및 파일 시스템에서 사용자와 그룹은 숫자, 사용자 ID 또는 그룹 ID로만 식별됩니다. 사용자 및 그룹 이름은 표시 편의와 상위 수준 적용을 위한 것입니다.

여러 설치 간에 파일 시스템을 공유하는 경우 두 시스템에 존재하는 모든 사용자(또는 그룹)가 두 시스템에서 동일한 ID를 가지고 있는지 확인하는 것이 좋습니다. 이렇게 하면 공유 파일의 소유권이 모든 설치에서 동일하게 됩니다. 많은 사용자 관리 GUI에서는 ID 선택을 허용하지 않으므로 명령 adduser(또는 ) 을 사용해야 할 수도 있습니다 addgroup.

사용자 ID는 등록 없이 "존재"합니다 /etc/passwd. 해당 사용자가 소유한 파일은 ls출력 및 다른 곳에 이름 대신 사용자 ID로 표시됩니다. (다시 말하지만, chown 1234 /path/to/file이를 사용하여 파일 소유자를 어떤 ID로든 변경할 수 있습니다.)

이를 염두에 두면 여러 설치 간에 파일 소유권을 공유하는 문제가 단일 설치에서 파일을 공유하는 문제로 줄어듭니다. 바라보다파일 저장 권한이 주제에 대한 토론(권장사항: ACL 사용)

관련 정보