/ etc / group을 수정하여 NIS 사용자를 Solaris 10u8 시스템의 특정 로컬 그룹에 추가하고 삭제할 bash 스크립트가 필요합니다. 가변적으로 uid와 groupname을 갖는 선호되는 하나 또는 두 개의 함수.
/ etc / group 파일의 groupbbb에 사용자 myuser를 추가하기 전에 inputfile
...
groupaaa::98000:
groupbbb::98001:hisuser
groupccc::98003:
...
결과물 파일
...
groupaaa::98000:
groupbbb::98001:hisuser,myuser
groupccc::98003:
…
이 함수는 사용자가 이미 로컬 그룹에 속해 있는지 확인하고 종료해야합니다.
나는 sed 또는 awk 또는 다른 것을 사용해야 할 것입니다. 누구나 멋진 라이너를 가질 수 있습니다 🙂
리눅스에서는 gpasswd가 있지만 Solaris에서는 해당 명령을 찾을 수 없습니다. 사용자는 시스템에 국한되지 않지만 NIS 사용자는 usermod가 작동하지 않을 것이라고 생각합니다!
어떤 포인터에 감사드립니다!
/ Smedis
답변
이 함수를 호출하십시오.
gradd () { local group=$1 user=$2; sed "/^${group}:/{/\<${user}\>/! s/$/,${user}/}' /etc/group; }
이렇게 :
gradd groupbbb myuser > /tmp/newgroups && mv /tmp/newgroups /etc/group
파일 리디렉션 및 이름 바꾸기는 함수 내에서 이동할 수 있습니다.
gradd () { local group=$1 user=$2; sed "/^${group}:/{/\<${user}\>/! s/$/,${user}/}' /etc/group > /tmp/newgroups && mv /tmp/newgroups /etc/group; }
호출은 다음과 같습니다.
gradd groupbbb myuser