Instalei o Cygwin, mas tenho problemas para operá-lo convenientemente. Eu gostaria de poder, por exemplo, 'su peter', onde peter tem sua própria preferência por diretório inicial e shell. Eu não me importo com segurança. Não preciso que essas "contas de usuário" fiquem visíveis para os mecanismos do Windows.
Fiquei frustrado em meus esforços. Não sei como definir "nenhuma senha necessária" em/etc/passwd. 'su' fornece comando não encontrado.
(Aliás, instalei o Cygwin em uma máquina diferente há vários anos sem problemas. Estou lutando com "melhorias" recentes?)
Deixe-me esclarecer minha pergunta. As facilidades do /etc/passwd são: * atribuir um diretório inicial. Quero que George e Peter tenham diretórios diferentes. Eu não me importo se George e Peter podem modificar os arquivos um do outro ou não * Quero que George possa usar um shell diferente do Peter. Não quero que goerge precise digitar ** tcsh ** cd /home/george ** source .cshrc para cada shell gerado. Existe uma maneira fácil de conseguir isso? A instalação do Windows tem o conceito de shell Cygwin preferido?
Responder1
Eu não me importo com segurança.
Não preciso que essas "contas de usuário" fiquem visíveis para os mecanismos do Windows.
Cada usuário Cygwin deve ter um usuário Windows correspondente.
Como adiciono um novo usuário no Cygwin?
- Crie um usuário do Windows
- Crie o usuário no Windows (Iniciar > Painel de Controle >Gerenciar Contas de Usuário > Adicionar...)
- Crie o usuário Cygwin correspondente
Execute os seguintes comandos:
mkpasswd -l > /etc/passwd mkgroup -l > /etc/group
Isso sincronizará os usuários e grupos do Cygwin com a conta de usuário do Windows.
Se você estiver em um Domínio use
-d
em vez de-l
- Defina o shell dos usuários
Altere o shell padrão do usuário conforme apropriado modificando
/etc/passwd
(que é um arquivo de texto simplesO formato do arquivo é o seguinte:
Username:Password:UID:GID:Info:Home:Shell
- Modifique as permissões do diretório inicial do usuário conforme apropriado para suas necessidades
Não sei como definir "sem necessidade de senha"
Se você realmente não se importa com segurança e não quer usar senha:
password -p username
Da passwd
documentação:
Sinopse
passwd [OPTION] [USER]
Opções
...
-p, --pwd-not-required
nenhuma senha necessária para USUÁRIO.
Fontesenha
Estou lutando contra as “melhorias” recentes?
A partir da versão 1.7.34 do Cygwin /etc/passwd
não é mais usado por padrão para gerenciar contas de usuários.
Se
/etc/passwd
existir será utilizado, mas apenas para atender instalações existentes e situações especiais.Se
/etc/passwd
não existir, você ainda pode criá-lo. Vermkpasswdegrupo mkPara maiores informações.
Desde a versão 1.7.34, o Cygwin usa gerenciamento de usuários nativo do Windows.
- Active Directory, se estiver disponível,
- SAM caso contrário.
Você deve usar o novo mecanismo para gerenciar contas de usuários em vez de /etc/passwd
:
A partir do Cygwin 1.7.34, o Cygwin usa uma tradução automática e interna do Windows SID para POSIX UID/GID. Este mecanismo, que é o método preferido para o mapeamento SID<=>UID/GID, é descrito em detalhes noMapeando contas do Windows para contas POSIX.
Antes do Cygwin 1.7.34, a última parte do SID, o chamado "Relative IDentifier" (RID), era por padrão usado como UID e/ou GID quando você criava os arquivos /etc/passwd e /etc/group usando as ferramentas
mkpasswd
emkgroup
. Essas ferramentas, além da leitura de contas/etc/passwd
e/etc/group
arquivos, ainda estão presentes nas versões recentes do Cygwin, mas você deve mudar para a tradução automática mencionada, a menos que tenha necessidades muito específicas. Novamente, veja Mapeando contas do Windows para contas POSIXpara os detalhes.
FonteContas POSIX, permissão e segurança:
su
dá comando não encontrado.
Instale sshd
e use ssh username@localhost
como um su
substituto.
Você pode definir um su
alias para facilitar isso.
Por que su não funciona?
O
su
comando entrou e saiu das distribuições Cygwin, mas não foi portado para o Cygwin e nunca funcionou. Atualmente está instalado como parte dosh-utils
, mas, novamente, não funciona.Você deve instalar
sshd
e usarssh username@localhost
como umsu
substituto.Para obter informações técnicas sobre por que
su
não funciona, leiaSobre o comando 'su'e mensagens de arquivo de correio relacionadas.