Por que não há biblioteca padrão para modificar o / etc / {passwd, shadow}?

2

Por que a glibc não fornece biblioteca padrão para modificar / etc / passwd e / etc / shadow, ou seja, adicionar um usuário, alterar passwd,

Cheguei a essa conclusão porque verifiquei o código-fonte de shadow e não consegui encontrar essa interface

    
por daisy 08.01.2013 / 06:02

3 respostas

3

Porque não é responsabilidade da glibc. delegados glibc para outros serviços instalados no sistema para autenticação; se qualquer coisa seria aqueles que forneceriam a capacidade de modificar o userdb.

    
por 08.01.2013 / 06:59
3

Você está começando com uma suposição aqui, que é que /etc/{passwd,shadow,group} é sempre o ponto único de verdade ( SPOT) para informações do usuário em caixas Unix. Isso não é verdade desde meados da década de 1980, quando a Sun introduziu o NIS .

As APIs de caso inverso existem: getpwnam(3) e amigos. Se o SPOT do seu site para os dados do usuário for um servidor LDAP , é fácil ver como você reduziria seu produto rico para mostrar apenas as coisas que existem em /etc/{passwd,shadow} .

Mas você quer uma API que faça o contrário. Como você implementaria setpwnam(3) em um mundo onde você não sabe se o armazenamento de dados de back-end é /etc/* , ou NIS, ou NIS + , ou LDAP, ou ActiveDirectory ou ...? Você pode filtrar krill de um oceano, mas você não pode obter metros cúbicos de oceano de um balde de krill.

    
por 08.01.2013 / 18:03
0

Resposta simples, se você pensar sobre isso, não pode haver biblioteca padrão C para interagir com eles, simplesmente porque eles não são recursos padrão C. Como isso funcionaria no Windows?

    
por 08.01.2013 / 07:41

Tags