Я установил Cygwin, но не могу с ним удобно работать. Мне бы хотелось иметь возможность, например, 'su peter', где у peter есть свои предпочтения для домашнего каталога и оболочки. Мне не важна безопасность. Мне не нужно, чтобы эти "учетные записи пользователей" были видны механизмам Windows.
Мои усилия зашли в тупик. Я не знаю, как установить «пароль не требуется» в /etc/passwd. 'su' выдает command not found.
(Кстати, я установил Cygwin на другую машину несколько лет назад без проблем. Может, я борюсь с недавними «улучшениями»?)
Позвольте мне прояснить мой вопрос. Возможности из /etc/passwd следующие: * назначить домашний каталог. Я хочу, чтобы у george и peter были разные каталоги. Мне все равно, могут ли george и peter изменять файлы друг друга или нет * Я хочу, чтобы george мог использовать другую оболочку, нежели peter. Я не хочу, чтобы goerge приходилось вводить ** tcsh ** cd /home/george ** source .cshrc для каждой порожденной оболочки. Есть ли простой способ добиться этого? Есть ли вообще в средстве Windows концепция предпочтительной оболочки Cygwin?
решение1
Меня не волнует безопасность.
Мне не нужно, чтобы эти «учетные записи пользователей» были видны механизмам Windows.
Каждый пользователь Cygwin должен иметь соответствующего пользователя Windows.
Как добавить нового пользователя в Cygwin?
- Создать пользователя Windows
- Создайте пользователя в Windows (Пуск > Панель управления > Управление учетными записями пользователей > Добавить...)
- Создайте соответствующего пользователя Cygwin
Выполните следующие команды:
mkpasswd -l > /etc/passwd mkgroup -l > /etc/group
Это позволит синхронизировать пользователей и группу Cygwin с учетной записью пользователя Windows.
Если вы находитесь в Домене, используйте
-d
вместо-l
- Установить оболочку пользователя
Измените оболочку пользователя по умолчанию соответствующим образом, изменив
/etc/passwd
(это простой текстовый файлФормат файла следующий:
Username:Password:UID:GID:Info:Home:Shell
- Измените права доступа к домашнему каталогу пользователя в соответствии с вашими потребностями.
Я не знаю, как установить «пароль не требуется»
Если вас действительно не волнует безопасность и вы не хотите использовать пароль, используйте:
password -p username
Из passwd
документации:
Синопсис
passwd [OPTION] [USER]
Параметры
...
-p, --pwd-not-required
Для ПОЛЬЗОВАТЕЛЯ пароль не требуется.
Источникпароль
Борюсь ли я с недавними «улучшениями»?
Начиная с версии Cygwin 1.7.34 /etc/passwd
больше не используется по умолчанию для управления учетными записями пользователей.
Если
/etc/passwd
он существует, он будет использоваться, но только для обслуживания существующих установок и особых ситуаций.Если
/etc/passwd
не существует, вы все равно можете его создать. СмотретьmkpasswdиmkgroupЧтобы получить больше информации.
Начиная с версии 1.7.34 Cygwin использует встроенные средства управления пользователями Windows.
- Active Directory, если он доступен,
- В противном случае — СЭМ.
Вам следует использовать новый механизм управления учетными записями пользователей вместо /etc/passwd
:
Начиная с Cygwin 1.7.34, Cygwin использует автоматическую внутреннюю трансляцию из Windows SID в POSIX UID/GID. Этот механизм, который является предпочтительным методом для сопоставления SID<=>UID/GID, подробно описан вСопоставление учетных записей Windows с учетными записями POSIX.
До Cygwin 1.7.34 последняя часть SID, так называемый "Relative IDentifier" (RID), по умолчанию использовалась как UID и/или GID при создании файлов /etc/passwd и /etc/group с помощью инструментов
mkpasswd
иmkgroup
. Эти инструменты, а также чтение учетных записей из файлов/etc/passwd
и/etc/group
все еще присутствуют в последних версиях Cygwin, но вам следует переключиться на вышеупомянутый автоматический перевод, если у вас нет очень специфических потребностей. Опять же, см. Сопоставление учетных записей Windows с учетными записями POSIXдля получения подробной информации.
ИсточникУчетные записи POSIX, разрешения и безопасность:
su
выдает команду не найдена.
Установите sshd
и используйте ssh username@localhost
в качестве su
замены.
su
Для упрощения этой задачи вы можете определить псевдоним.
Почему su не работает?
Команда
su
была в дистрибутивах Cygwin и вне их, но она не была портирована в Cygwin и никогда не работала. В настоящее время она установлена как частьsh-utils
, но, опять же, она не работает.Лучше установить
sshd
и использоватьssh username@localhost
в качествеsu
замены.Для получения технической информации о том, почему
su
это не работает, прочитайтеО команде «su»и связанные с ними сообщения почтового архива.
ИсточникПочему su не работает?