/home
내 컴퓨터에는 서로 다른 파티션에 있지만 두 설치에서 공유되는 두 개의 Linux 설치가 있습니다 . 충돌을 피하기 위해 설치마다 사용자 이름이 다릅니다. 문제는 제가 개발자이고 사용자를 혼합하고 싶지 않지만 공유 폴더에 대한 권한을 설정하고 싶다는 것입니다.
예,
- Ubuntu, 기본 사용자:
raul
, 기본 폴더:/home/raul
- Fedora, 기본 사용자:
ricardo
, 기본 폴더:/home/ricardo
- 나는 이 폴더에 대한
/home/shared
whereraul
& have 권한을 원 하지만 Linux 배포판의 다른 사용자도 필요합니다.ricardo
www-data
root
당신이 내 문제를 해결할 수 있기를 바랍니다.
편집: 예상보다 더 복잡한 것 같습니다.
이 메모는 제가 실제 영어 실력으로 설명할 수 있는 최선의 내용이므로 친절하게 대해주세요.
동일한 컴퓨터에 배포판 A와 B가 설치되어 있습니다. 배포판 A와 B는 다른 파티션에서 공유되지만 /home
다른 사용자와 공유됩니다. 따라서 배포판 A에 사용자가 있습니다. /home/a
그래서 사용자와 같은 폴더를 갖고 싶고 둘 다 그 안에 있을 수 있습니다. 폴더 읽기 및 쓰기 마치 동일한 그룹에 속한 것처럼 보이지만 사용자는 릴리스 B에 존재하지 않으며 그 반대의 경우도 마찬가지입니다. 그렇다면 각 배포판에 나를 다른 배포판의 사용자와 그룹화하도록 어떻게 지시합니까?A
/home/b
/home/shared
A
B
A
답변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
여기서 group
및 ID
는 두 설치 모두에서 동일합니다.
ACL에 대한 튜토리얼은 다음을 참조하세요.Fedora Core 2에서 ACL 사용, 그리고 내 모습을 보세요답변두 사용자 간의 디렉토리 공유에 관한 최근 질문입니다. 분명히 두 설치 모두에서 acl을 지원하는 파티션이 필요합니다.
acl
일단 설정되면 폴더의 모든 파일과 디렉터리는 그룹 권한을 갖게 되므로 rw
한 raul
설치와 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 사용)