존재하다센토스 6.5(아마도) Linux에서는 다음을 사용하여 그룹을 만들 수 있습니다.
sudo groupadd mygroup
여러 사용자를 추가합니다.
sudo usermod -a -G mygroup userA
sudo usermod -a -G mygroup userB
sudo usermod -a -G mygroup userC
내 구체적인 경우의 사용자 수는 입니다 20
. 다음과 같이 한 줄을 어떻게 사용할 수 있습니까?
sudo usermod -a -G mygroup userA userB userC
for 루프를 사용해도 작동하지만 저는 bash 전문가가 아니므로 알고 싶습니다.
답변1
가능한 경우 gpasswd
(Solaris를 제외한 대부분의 배포판에 있어야 함) 쉼표로 구분된 사용자 목록과 그룹 이름을 제공할 수 있습니다.
gpasswd -M userA,userB,userC mygroup
답변2
for user in userA userB userC; do sudo usermod -a -G mygroup "$user"; done
답변3
이는 위치 매개변수가 포함된 기본 스크립트입니다. 아래 코드를 이라는 파일에 저장하고 fill_group.sh
실행 가능하게 만듭니다 chmod +x fill_group.sh
.
그런 다음 이를 PATH 디렉토리( /usr/local/bin
)에 추가하거나 해당 디렉토리와 동일한 디렉토리에서 실행하십시오 ./fill_group.sh <group_name> <user1> ... <userN>
.
#!/bin/sh
#
# Name: fill_group.sh
#
# Usage:
# fill_group.sh <group_name> <user1> <user2> ... <userN>
#
# Description:
# add users to specific group passed as first parameter.
# If the group doesn't exists add it to the system.
set -eu
# Exit if there is not at least 2 args (group,user1)
if [ $# -lt 2 ]; then exit 5; fi
group="${1}"; shift # extract group from arguments
if ! egrep --quiet "^${group}:" /etc/group; then
sudo groupadd "${group}"
fi
for user in "${@}"; do
sudo usermod -a -G "${group}" "${user}"
done
답변4
Tombart와 Masterfool의 답변에 관하여. 이전 버전의 distos(SLES 11 SP1)의 경우 섀도우 도구가 약간 다릅니다. 이 설명서에는 버전 번호가 제공되지 않지만 날짜는 2009-2010입니다.
gpasswd의 -M 옵션은 존재하지 않습니다(그러나 다른 작업에는 gpasswd가 필요합니다). 따라서 Masterfool의 루프 옵션을 선택해야 합니다. 그러나 여기서 -a는 존재하지 않습니다. 대신 -A는 -a & -G와 동일하게 동작합니다.
시스템 로드에 대한 액세스를 푸시하기 위해 이 작업을 수행하고 있습니다. 지금까지의 완전한 "그룹 생성 및 채우기"는 다음과 같습니다.
/usr/sbin/groupadd -g GID### mygroup
gpasswd -r mygroup
for user in userA userB userC; do sudo usermod -A mygroup "$user"; done
따라서 설정된 GID로 그룹을 만들고, 비밀번호를 취소하고, 새 그룹을 활성화하고, 일부 사용자를 추가하세요.