Estou adicionando um novo nó ao meu pequeno "cluster". Eu gostaria que o novo nó tivesse exatamente as mesmas contas (para usuários humanos). Tentei copiar as entradas do usuário humano de outro nó para este novo nó, mas não consigo fazer login via ssh usando essas contas adicionadas. Eu adicionei com sucesso as novas contas simplesmente adicionando novas entradas no arquivo /etc/passwd? Como posso examiná-lo? (Eu pesquisei sobre como listar todos os usuários humanos, mas todos apontam para mostrar o conteúdo de /etc/passwd.)
Fonte: https://linuxosys.com/topics/chage-command-in-linux
A imagem foi retirada do livro Linux with Operating System Concepts.
O que não entendo aqui é o que é -E
opção?
É a data em que a senha expira ou a conta fica inativa?
Qual é a diferença entre a expiração da conta e a inatividade da conta?
Das páginas de manual:
-E, --expiredate EXPIRE_DATE
Set the date or number of days since January 1, 1970 on which the user's account
will no longer be accessible. The date may also be expressed in the format
YYYY-MM-DD (or the format more commonly used in your area). A user whose account is
locked must contact the system administrator before being able to use the system
again.
-I, --inactive INACTIVE
Set the number of days of inactivity after a password has expired before the
account is locked. The INACTIVE option is the number of days of inactivity. A user
whose account is locked must contact the system administrator before being able to
use the system again.
Existe confusão entre as opções -E e -I.
Normalmente, depois de instalar uma distro, obtemos um usuário root e um sudo
usuário.
Não sei se esses são normalmente os únicos usuários que possuem arquivos (como user
/ u
ou "proprietário"), são? ou normalmente há mais usuários que possuem arquivos e, em caso afirmativo, quais são eles?
Existem muitos nomes de grupos em /etc/group
uma distribuição Linux recém-instalada. Ao criar um novo grupo, existem nomes de grupos que devem ser evitados, além dos que já existem em /etc/group
? Talvez existam padrões que eu desconheço. Essa pergunta me ocorreu outro dia ao fazer share
um grupo que parecia um nome simples e funcionava bem. Gostaria de evitar colisões de nomes com serviços comuns.
No RHEL, existe um comando lid
, que lista os usuários do grupo, independentemente do grupo primário ou secundário.
[root@192 ~]# id user1
uid=1000(user1) gid=1000(user1) groups=1000(user1),1001(g1)
[root@192 ~]# id user2
uid=1001(user2) gid=1002(user2) groups=1002(user2),1001(g1)
[root@192 ~]# id user3
uid=1002(user3) gid=1001(g1) groups=1001(g1)
[root@192 ~]# lid -g g1
user3(uid=1002)
user1(uid=1000)
user2(uid=1001)
[root@192 ~]#
Mas não existe no Ubuntu. Existe um semelhante?
Preciso encontrar um usuário e o comando deve sair com um código de retorno diferente de zero se o usuário não estiver no sistema. Podemos fazer isso em bash
, mas preciso disso como um comando de linha, não um bash
script. Isso é possível?
Qual comando (disponível em repositórios de distribuição) devo usar para iniciar um shell com uid, gid e grupos numéricos especificados? Normalmente su
é usado para mudar de root para outro usuário, mas tenta procurar grupos por nomes, que podem não existir quando sistemas de arquivos externos, namespaces e contêineres do Docker estão em uso.
Espero que seja um aplicativo simples que apenas faça setgroups(2)
, e setgid(2)
, sem qualquer ou nsswitch. É fácil implementar esse programa em C, mas talvez algo padrão e disponível para distribuição seja usado para este caso de uso?setuid(2)
execve(2)
/etc/passwd
Estou assistindo a um vídeo em que o autor diz que podemos usar esse comando para impedir que o usuário faça login.
useradd -ms `which false` u2
Abaixo está meu teste.
[root@192 ~]# tree -dL 1 /home
/home
├── u1
└── user1
2 directories
[root@192 ~]# useradd -ms `which false` u2
[root@192 ~]# tree -dL 1 /home
/home
├── u1
├── u2
└── user1
3 directories
[root@192 ~]# passwd u2
Changing password for user u2.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@192 ~]# logout
[u1@192 ~]$ whoami
u1
[u1@192 ~]$ logout
[user1@192 ~]$ whoami
user1
[user1@192 ~]$ su - u2
Password:
[user1@192 ~]$ whoami
user1
[user1@192 ~]$ su - u2
Password:
Last login: Tue Apr 19 11:22:01 PDT 2022 on pts/0
[user1@192 ~]$ whoami
user1
[user1@192 ~]$
Para mim, sinto que o usuário pode fazer login com sucesso, pois não há erros. E, como você pode ver, quando tento fazer login novamente, ele até me informa meu último horário de login. É só que o usuário foi desconectado assim que se conecta. Isso é verdade? O que exatamente acontece por baixo?