В другом ответе здесь о UNIX & Linux Stack Exchange Майкл Д. Паркер написал в ответ на то, что кто-то сказал, что это было "безопасно", что:
Обычно вы НИКОГДА не должны редактировать файл / etc / shadow напрямую.
Так:
Почему вы никогда не должны редактировать /etc/shadow
файл напрямую?
/etc/shadow
более 20 лет без проблем, никогда . И, пожалуйста, будьте так вежливы, чтобы прочитать двухминутную справку → тур , особенно «не отвлекайся», «не болтай». Это первый раз, когда мне нужно было прочитать больше не относящихся к делу болтовни в вопросе, чем прочитать подробности, относящиеся к вопросу.Ответы:
Есть несколько причин , чтобы не редактировать
/etc/passwd
,/etc/shadow
,/etc/group
,/etc/gshadow
или/etc/sudoers
непосредственно, а использоватьvipw
,vigr
илиvisudo
:passwd
,chsh
илиchfn
что - то изменить свой счет. Если вы используете соответствующий инструмент, это предотвратит одновременные изменения. В основном это касается систем с несколькими пользователями, в меньшей степени, если вы единственный пользователь.vipw
обновляет несколько файлов (например,/etc/passwd
и/etc/master.passwd
). Это не относится к Linux.vipw
автоматически создает резервную копию (passwd-
,shadow-
, ...), что полезно , если вы понимаете , что вы случайно удалили линию. Это полезно только в том случае, если вы понимаете это перед следующим редактированием, поэтому оно не заменяет управление версиями и резервные копии, но может быть очень хорошо, если вы достаточно скоро поймете свою ошибку.visudo
не делает этогоВы можете редактировать файл напрямую. Вы просто будете брать на себя дополнительный риск без реального преимущества.
источник
/etc/shadow
заключается в том, что он не существует и/etc/passwd
является неправильным файлом для редактирования, потому что это сгенерированный файл, а не исходный файл. ☺Есть два основных взгляда на это:
Никогда не редактируйте определенные файлы без использования предписанных инструментов, потому что вы, вероятно, не знаете, что делаете, и это нормально, потому что указанные инструменты знают лучше и всегда доступны.
Более реалистично, вы могли бы также сломать его сейчас, пока вы думаете об этом, чтобы вы могли планировать заранее с резервной копией и сравнить различия после того, как вы это сделаете, потому что базовые знания о входах и выходах основного начального
login
процесса вашей системы, вероятно, стоят того когда вы сломаете его каким-то другим способом позже, и эти инструменты вам не помогут.Я думаю, вы можете сказать, что я рекомендую. Я говорю, что, если тема интересует вас даже на мгновение, вы могли бы также извлечь выгоду из этого любопытства и приобрести новый навык, пока вы в нем. Особенно такой, как этот -
shadow
файл в довольно простом формате, и то, что я мало о нем знаю, я узнал после его случайного нарушения - и это не было результатом редактирования, которое я сделал в этом файле.Скорее, моя проблема возникла после того, как какая-то другая ошибка с базой данных управления пакетами привела к тому, что менеджер пакетов перезаписал ее без сохранения резервной копии, и все пользователи в системе были сделаны капутами . Дальнейшие невежественные попытки исправить ошибки только распространили ущерб на другие связанные файлы, и вскоре мне пришлось восстанавливать большинство
/etc
текстовых файлов из резервной копии (менее свежей, чем ожидалось) .После того, как я сделал это и убедился, что у меня все в рабочем состоянии, я решил сознательно, дотошно сделать все это снова. И еще раз. Это было всего несколько месяцев назад, но сегодня я по-прежнему уверен, что смогу диагностировать источник
login
проблемы с повторным просмотром одного файла журнала в моей системе и решить его с помощью любого простого редактора (и, возможно, с первого взгляда или два вman 5 problem_file
) предоставили только базовый доступ к затронутым корневым фс. Это не было дешево получено - это заняло у меня большую часть дня - и связанные файлы конфигурации были распределены по всему каталогу (и даже некоторые - такие как Linux PAM/var/run/no_login
- на других монтировках) - но это стоило сделать. И это могло быть дешевле, если немного подумать.Мораль этой истории в том , что это, вероятно , не очень хорошая вещь , что формат миссии критических конфиги , как
shadow
,passwd
,groups
,shells
должен быть настолько непрозрачна для нас , что мы должны использовать специальные инструменты редактирования , которые могут или не могут исправить нашу работу таким образом , и по причинам, которые мы не понимаем, просто чтобы произвести простое изменение. По крайней мере, я думаю, что стоит потратить время на то, чтобы понять, что они будут делать иначе, чем мы.Однако, вероятно , это хорошо, что, как только мы станем достаточно знакомыми с редактированием указанных файлов, мы рискуем сделать внутри них и впоследствии сохранить в них типографские или простые синтаксические ошибки, и в нашем распоряжении будут инструменты, которые могут перепроверить наша работа способами и по причинам, которые мы уже поняли, прежде чем применять наши правки.
источник
Конечная точка - если вам нужно было скопировать набор пользовательских логинов с одного сервера на другой, не зная их текущих паролей или не назначив им новые, то вам нужно отредактировать / etc / shadow напрямую, чтобы вставить поле хешированного пароля. vipw не позволяет вам трогать это поле, это просто "*"
Обновление: или в этом случае используйте chpasswd -e «хэшированный пароль», но это можно сделать только непосредственно на компьютере. Если вы работали с набором файлов, которые еще не были развернуты на машине (например, на виртуальной машине), то редактирование напрямую может быть вашим единственным решением.
т.е. обычно есть инструмент для выполнения того, что вы хотите сделать без непосредственного редактирования / etc / shadow, вам просто нужно знать, что это такое ...
источник
Другая причина, по которой вам нужно редактировать эти файлы, - это если вы редактируете файлы в образе файловой системы, который вы будете загружать в другой системе, и вам необходимо отладить эту систему после загрузки. Например, эфемальная файловая система MAAS, используемая при сбое ввода в эксплуатацию или в режиме восстановления.
Никогда не говори никогда ... если ты не имеешь в виду это.
источник