우분투 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
. 그런 다음 현재 그룹 세트에 다시 액세스할 수 있습니다.