사용자의 기본 그룹 변경 - 해당 그룹에 새 파일을 만듭니다.

사용자의 기본 그룹 변경 - 해당 그룹에 새 파일을 만듭니다.

내 서버에서 여러 사용자에게 SSH 액세스 권한을 부여하는 환경을 설정 중입니다. 그것들은 모두 신뢰할 수 있지만 파일 시스템의 한 부분에 모아두고 싶습니다. 나는 다음과 같이 사용자를 만들었습니다.

adduser username -ingroup groupname

충분히 잘 작동합니다. 그 중 하나로 로그인하면 다음과 같은 작업을 수행하여 올바른 답변을 모두 얻을 수 있습니다.

$id -r -u -n
username
$id -r -g -n
groupname

groupname다음을 수행하여 내 사용자 계정의 기본 그룹을 다음으로 전환했습니다 .

$usermod myuser groupname

그런 다음 로그아웃했다가 다시 로그인했습니다. 이제 그룹이 액세스할 수 있도록 하려는 파일이 여기에 있습니다.

$ls -l / | grep groupname
drwxr-xr-x  3 root     groupname    4.0K 2012-03-26 20:20 groupfiles
$cd /groupfiles
$ls -l 
drwxrwxr-x  2 root groupname    4.0K 2012-03-26 20:32 project

권한은 의도적으로 설계된 것이며, 그룹 구성원은 아래에 있는 파일/폴더를 변경할 수 없지만 /groupfiles아래에 있는 파일/폴더를 추가, 편집 및 삭제할 수 있습니다./groupfiles/project

내가 겪고 있는 문제는 이 작업을 수행할 때 잘못된 그룹이 표시된다는 것입니다.

$touch test
$ls -l test
-rw-rw-r-- 1 myuser myuser 0 2012-03-26 20:58 test
$id -r -g -n
groupname

vim, touch 등으로 만든 파일이 올바른 그룹을 가지도록 만들어야 합니다. 나는 비트를 알고 newgrp()있습니다 setgid. 이것들은~ 아니다내가 찾고 있는 것. 이는 내가 만든 새 사용자에게는 제대로 작동 하지만 내 사용자에게는 작동하지 않습니다. 무슨 일이 일어났는지 잘 모르겠지만 지금은 잘 작동하고 있습니다. 나는 미래의 땜장이들을 위해 이 질문을 여기에 남겨 두었습니다.

답변1

나는 당신이 원하는 행동이 sudo usermod -g groupname myuser.

참고: 해당 명령은 $HOME에 있는 모든 파일의 그룹 소유권을 변경하지만 집 외부에서는 변경하지 않습니다. 다시 변경하고 싶을 수도 있습니다.chgrp -R myuser $HOME

그런 다음 변경 사항을 적용하려면 로그오프했다가 다시 로그인해야 합니다.

'myuser' 기본 그룹을 변경하고 싶지 않다면 newgrp를 사용하세요.

sudo usermod -g admin bodhi

ssh localhost

touch file

newgrp bodhi
touch file2

ls -l file file2
-rw-r--r-- 1 bodhi admin 0 2012-03-26 19:28 file
-rw-r--r-- 1 bodhi bodhi 0 2012-03-26 19:29 file2

관련 정보