Em outra resposta aqui no UNIX e Linux Stack Exchange, Michael D Parker escreveu , em resposta a alguém dizendo que fazer isso era "seguro", que:
Normalmente, você NUNCA edite o arquivo / etc / shadow diretamente.
Então:
Por que você nunca deve editar o /etc/shadow
arquivo diretamente?
/etc/shadow
há mais de 20 anos sem problemas, nunca . E seja educado ao ler a ajuda de dois minutos → tour , especialmente as "sem distrações", "sem bate-papo". Esta é a primeira vez que tive que ler mais bate-papos não relevantes em uma pergunta do que ler "detalhes" relevantes da pergunta.Respostas:
Existem várias razões para não editar
/etc/passwd
,/etc/shadow
,/etc/group
,/etc/gshadow
ou/etc/sudoers
diretamente, mas sim usamvipw
,vigr
ouvisudo
:passwd
,chsh
ouchfn
mudar alguma coisa sobre a sua conta. Se você usar a ferramenta apropriada, ela evitará modificações simultâneas. Isso é principalmente uma preocupação em sistemas com vários usuários, menos se você for o único usuário.vipw
atualiza vários arquivos (por exemplo,/etc/passwd
e/etc/master.passwd
). Isso não se aplica ao Linux.vipw
cria automaticamente uma cópia de segurança (passwd-
,shadow-
...), o que é útil se você perceber que você acidentalmente apagado uma linha. Só é útil se você perceber antes da próxima edição, para que não substitua o controle de versão e os backups, mas pode ser muito bom se você perceber seu erro em breve.visudo
não faz isso.Você pode editar o arquivo diretamente. Você estará apenas assumindo um risco adicional sem nenhuma vantagem real.
fonte
/etc/shadow
não existe e/etc/passwd
é o arquivo errado para editar, porque é um arquivo gerado e não o arquivo de origem. ☺Existem basicamente duas maneiras de analisar isso:
Nunca edite determinados arquivos sem usar as ferramentas prescritas, porque você provavelmente não sabe o que está fazendo e tudo bem, porque essas ferramentas sabem melhor e estão sempre disponíveis.
Mais realisticamente, você pode quebrá-lo agora enquanto pensa sobre isso, para planejar com uma cópia de backup e comparar as diferenças depois de fazê-lo, porque
login
provavelmente o conhecimento básico sobre os meandros do processo inicial básico do sistema tendo em conta quando você o quebra de outra maneira mais tarde e as ferramentas mencionadas não o ajudarão.Eu acho que você provavelmente pode dizer o que eu recomendo. Digo que, se um tópico lhe interessar, mesmo que por um momento, você também pode aproveitar essa curiosidade e adquirir uma nova habilidade enquanto está nisso. Especialmente um como este - o
shadow
arquivo está em um formato bastante básico, e o pouco que eu sei sobre ele aprendi depois de quebrá-lo acidentalmente - e não foi o resultado de uma edição que fiz nesse arquivo.Em vez disso, meu problema ocorreu após algum outro erro com um banco de dados de gerenciamento de pacotes que levou o gerenciador de pacotes a substituí-lo sem salvar um backup e todos os usuários do sistema foram eliminados . Outras tentativas ignorantes de consertar os arquivos apenas espalham o dano a outros arquivos relacionados e não demorou muito para que eu tivesse que restaurar a maioria dos
/etc
arquivos de texto de um backup (menos recente do que o esperado) .Depois de ter feito isso e verificado que o tinha em estado viável, decidi fazê-lo deliberadamente e meticulosamente de novo. E mais uma vez. Isso foi há alguns meses atrás, mas hoje continuo confiante de que posso diagnosticar a origem de um
login
problema com uma única vez de um único arquivo de log no meu sistema e abordá-lo com qualquer editor básico (e, talvez, com uma rápida olhada) ou dois emman 5 problem_file
) forneceu apenas acesso básico aos fs raiz afetados. Não foi obtido a preço baixo - levei quase um dia - e os arquivos de configuração relacionados estão espalhados por todo o diretório (e até alguns - como PAMs do Linux/var/run/no_login
- em outras montagens) - mas valeu a pena. E poderia ter sido mais barato com um pouco de premeditação.A moral desta história é que provavelmente é não uma coisa boa que o formato de configurações de missão crítica, como
shadow
,passwd
,groups
,shells
deve ser tão opaca para nós que devemos empregar ferramentas especiais de edição que pode ou não pode corrigir o nosso trabalho de forma e por razões que não entendemos apenas para efetuar uma simples mudança. Acho que pelo menos vale a pena entender exatamente o que eles fariam de maneira diferente do que poderíamos.Provavelmente, é bom, no entanto, que, uma vez familiarizados o suficiente com a edição dos arquivos, corremos o risco de criar neles e depois salvá-los com erros tipográficos ou simples de sintaxe, que existem ferramentas à nossa disposição que podem checar novamente nosso trabalho de maneiras e por razões que já entendemos antes de aplicar nossas edições blase.
fonte
Contraponto - se você precisar copiar um conjunto de logins de usuários de um servidor para outro, sem conhecer suas senhas atuais ou atribuir novas, precisará editar / etc / shadow diretamente para inserir o campo de senha com hash. O vipw não permite que você toque nesse campo, é apenas "*"
Atualização: ou, neste caso, use chpasswd -e "hashed password", mas isso só pode ser feito diretamente no computador. Se você estava trabalhando com um conjunto de arquivos que ainda não foram implantados em uma máquina (por exemplo, máquina virtual), a edição direta pode ser sua única solução.
normalmente existe uma ferramenta para fazer o que você quer fazer sem editar o / etc / shadow diretamente, você só precisa saber o que é ...
fonte
Outro motivo pelo qual você precisa editar esses arquivos é se estiver editando os arquivos em uma imagem do sistema de arquivos que você inicializará em outro sistema e precisará depurar esse sistema após a inicialização. Por exemplo, o sistema de arquivos epheremal do MAAS usado em um comissionamento com falha ou no modo de recuperação.
Nunca diga nunca ... a menos que você esteja falando sério.
fonte