Есть ли способ установить первичную группу (нового) пользователя в файле Cygwin /etc/passwd без ручного редактирования файла?

У меня есть локальная группа, настроенная для членов команды разработчиков в окне Windows Server 2008 R2, чтобы мы все могли изменять файлы определенной группы, но обычные пользователи могут только читать их. Поскольку в некоторых работах, которые мы выполняем, используются скрипты, основанные на инструментах Cygwin, эта группа также находится в /etc/group .

Когда мне нужно добавить нового пользователя в группу "Команда разработчиков", я добавляю его в Диспетчер серверов, а затем использую mkpasswd чтобы добавить этого пользователя в файл /etc/passwd Cygwin. К сожалению, им назначают обычную группу "Пользователи домена" в качестве основной группы, и мне нужно зайти и отредактировать файл passwd чтобы изменить группу.

Теперь мне нужно написать некоторые инструкции для тех, кто не знаком с UNIX/Linux/Cygwin, чтобы они могли настраивать новых пользователей Dev Team, и, очевидно, "ручное редактирование" /etc/passwd - это рецепт катастрофы, если вы не не знаю, что ты делаешь.

Итак, есть ли способ заставить mkpasswd установить другую первичную группу или другой инструмент, такой как usermod Linux, который можно использовать для более удобного изменения группы?

1 ответ1

0

Хорошо, вот решение, с которым я работаю до сих пор, используя awk в сценарии оболочки:

# Extract group number for group from /etc/group
GROUP=$(grep "^${GROUPNAME}:" /etc/group | awk -F: '{print $3}')

# Create passwd entry for user and substitute extracted group number
# before adding to /etc/passwd
mkpasswd -d "${DOMAIN}" -u "${USER}" | awk -F: '{print $1":"$2":"$3":'${GROUP}':"$5":"$6":"$7}' >> /etc/passwd

(предложения по улучшению приветствуются - я не гуру awk )

Тем не менее, было бы неплохо выяснить (если), то есть "правильный" способ сделать это.

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