![Linux에서 하나의 명령으로 그룹에 여러 사용자를 추가하는 방법은 무엇입니까?](https://linux55.com/image/151479/Linux%EC%97%90%EC%84%9C%20%ED%95%98%EB%82%98%EC%9D%98%20%EB%AA%85%EB%A0%B9%EC%9C%BC%EB%A1%9C%20%EA%B7%B8%EB%A3%B9%EC%97%90%20%EC%97%AC%EB%9F%AC%20%EC%82%AC%EC%9A%A9%EC%9E%90%EB%A5%BC%20%EC%B6%94%EA%B0%80%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
나는 사용해야한다
usermod -G groupname username
사용자가 그룹에 추가될 때마다. 한 줄로 이것을 할 수 있는 방법이 있나요?
usermod -G groupname user1,user2,user3
답변1
eval과 함께 bash 중괄호 확장을 사용할 수 있습니다
eval 'usermod -aG groupname '{user1,user2,user3}';'
또는 루프 명령
for i in user1 user2 user3; do usermod -aG groupname $i; done
참고: -G
그룹을 연결할 때 사용자에 대한 그룹을 설정합니다.-aG
답변2
당신은 할 수놓다하나의 명령으로 그룹의 구성원 목록을 봅니다.
gpasswd -M user1,user2,user3,... groupname
하지만 이를 사용하여 추가하려면 기존 목록을 가져와야 합니다.
gpasswd -M "$(getent group groupname | awk -F: '$4 {print $4","}')"user1,user2,user3,... groupname
그러나 수동으로 사용하거나 반복하는 것이 더 쉽습니다 xargs
.
for u in user1 user2 ...
do
gpasswd -a "$u" groupname
done
또는:
$ cat file
user1
user2
...
$ xargs -a file -n 1 gpasswd groupname -a