Solaris bash 스크립트 / 검색 및 / etc / group의 행 끝까지 필드 추가


0

/ 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

답변:


0

이 함수를 호출하십시오.

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

안녕하세요! 많은 감사합니다,이 체크 아웃 최대한 빨리! / Smedis
user40797

sed -i는 파일을 편집합니다.
kmarsh

@kmarsh : Solaris에서는 사용할 수 없습니다.
Dennis Williamson

좋습니다.하지만 Bash를 사용하는 경우 나머지 Gnu 도구가 설치되어있는 것이 좋습니다.
kmarsh

Gnu 도구를 설치했습니다 :-) 다른 프로젝트로 전환해야하지만 다시보고 할 것입니다! / Smedis
user40797
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.