답변:
당신이 사용할 수있는: usermod -a -G grouptoadd username
왜 -a -G는 괜찮고 -aG는 그렇지 않은지 생각한 것보다 훨씬 덜 분명하기 때문에 설명하려고 노력할 것입니다.
-G 옵션은 하나의 값 또는 값 목록을 사용합니다. 하나의 값인 경우 옵션과 값 사이에 공백이 없어야하므로 -GVALUE와 같이 값을 지정할 수 있습니다. 이것은 단지 일반적인 관행입니다.
시스템에 그룹이라는 그룹이있는 경우 -Ga를 호출하면 모호하게됩니다. 사용자에게 하나의 그룹 만 갖기를 원하십니까? -a와 -G를 부르고 있습니까? 그렇다면 "a"는 -G의 값입니까? 나머지 값은 어디에 있습니까 (-G)? 또한 단일 문자 옵션이 다른 단일 문자 옵션보다 우선 할 수 있습니다. 따라서 tat -xy == -yz입니다. 그러나 옵션 중 하나가 VALUE와 같은 단일 값 또는 VAL1, Val2, val4 등과 같은 많은 값을 사용할 수있는 경우 이는 모호합니다.
따라서 FAILSAFE 명령을 만들고 모든 입력에 대해 올바르게 작동하려면 -a와 -G를 분리해야합니다
보낸 사람 man usermod
:
이름
usermod-사용자 계정 수정
개요
usermod [옵션] 로그인
기술
하고 usermod 명령은 명령 줄에 지정된 변경 사항을 반영하기 위해 시스템 계정 파일을 수정합니다.
옵션
usermod 명령에 적용되는 옵션 은 다음과 같습니다.
-a,-추가
보충 그룹에 사용자를 추가하십시오 . -G 옵션 만 사용하십시오 .
...
-G, --groups GROUP1 [, GROUP2, ... [, GROUPN]]]
사용자가 속해있는 보충 그룹 목록. 각 그룹은 공백없이 쉼표로 다음 그룹과 구분됩니다. 그룹에는 -g 옵션이 지정된 그룹과 동일한 제한이 적용됩니다 .
사용자가 현재 목록에없는 그룹의 구성원 인 경우 사용자가 그룹에서 제거됩니다. 이 동작은 사용자를 현재 보충 그룹 목록에 추가하는 -a 옵션을 통해 변경할 수 있습니다 .
...
질문에 표시된대로 명령을 정확하게 실행 한 경우 사용자 Keith를 작성하지 않고 John 만 작성하십시오. 사용 구분하는 데 필요한 명령 줄에서 다른 후 명령 하나를 실행하려면 ;
나 &&
. 그렇지 않으면 첫 번째 명령 만 실행됩니다.
sudo adduser John sudo adduser Keith
adduser: Only one or two names allowed.
당신이 경우 한 올바르게 실행 대문자에주의. 귀하의 질문에 당신은 "존"과 "존"을 언급합니다. 이것은 작동해야합니다 :
sudo adduser keith
sudo adduser john
sudo usermod -aG keith john