Linux에서 호환되지 않는 그룹 권한 - 버그인가요? [복사]

Linux에서 호환되지 않는 그룹 권한 - 버그인가요? [복사]

중복 가능성:
다시 시작하지 않고 새로 추가된 사용자 그룹에 변경 사항을 적용하려면 어떻게 해야 합니까?

우분투 11.04를 사용하고 있습니다. 다른 사용자를 생성하고 기존 사용자를 다른 사용자 그룹에 배치하고 다른 사용자의 홈 디렉터리에 쓰고 싶습니다.

# uname -a
Linux vini 2.6.38-11-generic #50-Ubuntu SMP Mon Sep 12 21:18:14 UTC
2011 i686 athlon i386 GNU/Linux
# whoami
sachin
# su root
# useradd -m -U foo               // create user foo
# usermod -a -G foo sachin      // add user `sachin' to group `foo'
# chmod 770 /home/foo/
# exit
# whoami
sachin
# cd /home/foo/
bash: cd: /home/foo/: Permission denied
# groups sachin
sachin : sachin foo

정말 이상해요. 사용자 sachin이 foo 그룹에 있고 /home/foo/의 그룹 비트가 rwx로 설정되어 있더라도 sachin은 /home/foo/로 chdir을 설정할 수 없습니다. 나는 이것을 이해할 수 없다.

그러나 종료 단계 중에 루트에서 sachin 사용자로 전환하면 다음과 같은 일이 발생합니다.

# uname -a
Linux vini 2.6.38-11-generic #50-Ubuntu SMP Mon Sep 12 21:18:14 UTC
2011 i686 athlon i386 GNU/Linux
# whoami
sachin
# su root
# useradd -m -U foo               // create user foo
# usermod -a -G foo sachin      // add user `sachin' to group `foo'
# chmod 770 /home/foo/
# su sachin
# whoami
sachin
# cd /home/foo/
# ls
examples.desktop

이제 여기서 무슨 일이 일어나고 있는지 완전히 이해할 수 없습니다. su sachin의 이 단계는 루트 사용자의 권한 중 일부를 상속합니까?

newgrp권장되는 해결 방법 은 그룹 및 기타 사용자 정보를 업데이트하는 를 사용하는 것입니다 . 따라서 이렇게 하면 newgrp - sachin새로 생성된 사용자 디렉터리에 액세스할 수 있지만, 다른 사용자를 생성하고 동일한 단계를 수행하면 sachin최신 사용자 디렉터리에 액세스할 수 없습니다.

이런 행동은 정말 당혹스럽습니다.

어떤 설명이라도 대단히 감사하겠습니다.

답변1

현재 로그인 셸 프로세스는 이전 그룹 구성을 유지합니다. 특히 출력을 비교하십시오.

groups sachin

그리고

groups

. 로그아웃했다가 로그인하면 차이가 사라집니다.

확실하지 않은 이유로 다시 로그인할 수 없는 경우에는 이러한 newgrp. 내부적으로는 newgrp새 프로세스 계층에서 "다시 로그인"만 수행합니다. 로그아웃할 경우 newgrp 콘텐츠를 실행하는 동안 Ctrl-D를 자주 눌러야 합니다.

또는 내부 레이어를 종료 newgrp하고 로 돌아갈 수 있습니다 usermod. 그런 다음 현재 그룹 세트에 다시 액세스할 수 있습니다.

관련 정보