Мне нужен скрипт bash, который изменит /etc /group для добавления и удаления пользователей NIS в определенные локальные группы в системе Solaris 10u8. Предпочтительно одна или две функции с uid и groupname в качестве переменных.

inputfile перед добавлением пользователя myuser в groupbbb в файле /etc /group

...
groupaaa::98000:
groupbbb::98001:hisuser   
groupccc::98003:
...

выходной файл

...
groupaaa::98000:
groupbbb::98001:hisuser,myuser
groupccc::98003:

... Функция должна проверить, является ли пользователь частью локальной группы, и выйти

Должен ли я использовать Sed или Nawk или что-то еще. Всем приятного приятеля :-)

В Linux есть gpasswd, но я не нашел соответствующей команды в Solaris. Пользователь не является локальным в системе, но пользователи NIS, так что usermod не будет работать, я думаю!

Отлично подходит для любых указателей!

/Smedis

1 ответ1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .