Почему я не могу использовать только что созданного пользователя с chown?

Почему я не могу использовать только что созданного пользователя с chown?

Итак, я пытаюсь создать нового пользователя и группу, а затем изменить владельца каталога на этого нового пользователя/группу. Однако, когда я это делаю, chown возвращает сообщение «недопустимое имя пользователя».

Вот упрощенный скрипт оболочки, который показывает, что я пытаюсь сделать:

#!/usr/bin/bash

# Create Group
dscl . create /Groups/_jira
dscl . create /Groups/_jira gid 301"

# Create User
dscl . create /Users/_jira
dscl . append /Groups/_jira GroupMembership _jira

# Change Ownership
chown -R _jira:_jira /Some/random/directory

... и вот что я получаю на выходе:

chown: _jira: illegal user name

Я пропустил какой-то шаг? Это потому, что имя пользователя начинается с подчеркивания?

Примечание:Я могу вывести список всех существующих пользователей и группы и увидеть пользователя _jira и группу _jira, а также увидеть, что пользователь назначен в эту группу.

решение1

Вы не назначили номер идентификатора пользователя (то, что dscl называет UniqueID) пользователю _jira, и поскольку право собственности на файл регистрируется по идентификатору пользователя, нет способа chown-файлов в аккаунте без идентификатора. Добавьте что-то вроде:

dscl . create /Users/_jira UniqueID 301

Вам также следует задать PrimaryGroupID пользователя, и я бы использовал его для назначения его в группу _jira вместо добавления пользователя в группу:

dscl . create /Users/_jira PrimaryGroupID 301

Если вы хотите продолжить добавление вторичного членства в группу _jira, вам следует назначить какой-либо другой идентификатор группы в качестве основного, а затем добавить вторичное членство с помощью dseditgroup:

sudo dseditgroup -o edit -a _jira -t user _jira

Это не только добавляет «_jira» в список GroupMembership группы, но и добавляет UUID пользователя в список GroupMembers группы — рекомендуется сделать оба действия, и хотя это возможно сделать с помощью dscl, проще это сделать с помощью dseditgroup.

Связанный контент