Скройте пользователей от экрана входа в систему Snow Leopard Mac OS X

Так или иначе мне удалось установить passwd для моего _postgres пользователя на моей ОС вместо того, чтобы установить его на роли пост-ГРЭС, которую я имею как свой суперпользователь / корень. Так или иначе начиная с этого, я боролся с тем пользователем, обнаруживающимся в разделе учетной записи и экране входа в систему, которого я действительно хотел бы избежать. Я прочитал некоторые документы об этом и установку пароля к * должно быть все, что необходимо для фиксации этого. Но после нескольких попыток, делающих это с и без dscl напрасно, я получен к точке, где я не знаю, что больше делать.

Я не думал, что это будет даже трудно делать это, но ясно я пропускаю что-то, так как дела это?

25
задан 10.04.2010, 22:44

3 ответа

Самый легкий метод для сокрытия пользователей системы (если их идентификатор пользователя <500) в окне входа в систему должен выполнить следующую команду:

sudo defaults write /Library/Preferences/com.apple.loginwindow Hide500Users -bool TRUE

Кроме того, можно вручную скрыть просто имя пользователя путем выполнения

sudo defaults write /Library/Preferences/com.apple.loginwindow HiddenUsersList -array-add '_postgres'

Скрыть 'Других...' объект из окна входа в систему в случае необходимости:

sudo defaults write /Library/Preferences/com.apple.loginwindow SHOWOTHERUSERS_MANAGED -bool FALSE
31
ответ дан 07.12.2019, 09:37

На всякий случай Вы не нашли эффективное решение (или в случае, если кто-то еще находит этот вопрос от Google), устанавливая оболочку пользователя на /usr/bin/false препятствует тому, чтобы он вошел в систему, и скрывает его от экрана входа в систему и от установок системы. Для этого используйте следующую командную строку:

sudo dscl . -change /Users/[username] UserShell /bin/bash /usr/bin/false

И вернуться изменение:

sudo dscl . -change /Users/[username] UserShell /usr/bin/false /bin/bash

Где [username] имя пользователя, которого Вы хотите скрыть (_postgres в Вашем случае я принимаю). Я не знаю почему dscl хочет старое значение сначала, но это - то, что говорит страница справочника, и это работает вполне хорошо.

7
ответ дан 07.12.2019, 09:37
dscl . create /Users/test
dscl . create /Users/test UniqueID 420
dscl . create /Users/test PrimaryGroupID 420
dscl . create /Users/test UserShell /bin/bash
dscl . create /Users/test NFSHomeDirectory /tmp
dscl . create /Users/test RealName Test
dscl . create /Users/test Password test

Это создает пользователя, это видимо в sysprefs/Accounts.

dscl . create /Users/test Password "*"

Это скрывает пользователя. Удостоверьтесь, что Вы заключаете в кавычки "*", или это не будет работать.

Править: Мне случайно удалось воссоздать ситуацию googletorp неспособности скрыть пользователя путем установки его пароля на "*", и я обнаружил, как зафиксировать его. На этот раз я создал пользователя, использующего dsimport, как это:

dsimport /dev/fd/0 /Local/Default I --template StandardUser << EOF
test:*:520:520:Test user:/Users/test:/bin/bash
EOF

Но в той команде, * взят для представления литерального пароля с одним символом *, и таким образом, dsimport создает свойство AuthenticationAuthority для пользователя и устанавливает свойство пароля на теневой хеш * (который обнаруживается как ******** в dscl, что касается всех паролей). После этого попытка установить пароль на "*" использующий dscl просто продолжает устанавливать пароль на литерал *, вместо того, чтобы отключить пароль. Решение состоит в том, чтобы удалить нежелательное свойство и затем отключить пароль:

sudo dscl . delete /Users/test AuthenticationAuthority
sudo dscl . create /Users/test Password "*"

Это скрывает пользователя.

12
ответ дан 07.12.2019, 09:37

Теги

Похожие вопросы