<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>34906</bug_id>
          
          <creation_ts>2018-05-14 20:23:40 +0300</creation_ts>
          <short_desc>Не работает удаление пароля командой passwd -d</short_desc>
          <delta_ts>2025-06-06 16:55:37 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>passwd</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugzilla.altlinux.org/show_bug.cgi?id=46367</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Vitaly Lipatov">lav</reporter>
          <assigned_to name="Dmitry V. Levin">ldv</assigned_to>
          <cc>ldv</cc>
    
    <cc>nbr</cc>
    
    <cc>placeholder</cc>
    
    <cc>sem</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>171062</commentid>
    <comment_count>0</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2018-05-14 20:23:40 +0300</bug_when>
    <thetext>Не знаю, что такое удаление пароля (см. man 8 passwd), некоторые даже считают, что после удаления пароля можно входить в систему без пароля.
Я предполагаю, что удаление пароля приведёт к тому, что пользователь не сможет зайти в систему с паролем, который у него был.

Но на обычной системе (tcb, никаких sssd и т.п.) получаю ошибку:
# passwd -d akv
chpasswd: (user akv) pam_chauthtok() failed, error:
Ошибка при операциях с маркером проверки подлинности
chpasswd: (строка 1, пользователь akv) пароль не изменён</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172359</commentid>
    <comment_count>1</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2018-07-02 02:05:01 +0300</bug_when>
    <thetext>passwd-1.0.14-alt1 -&gt; sisyphus:

Sun Jul 01 2018 Dmitry V. Levin &lt;ldv@altlinux&gt; 1.0.14-alt1
- Refuse to change password for different logged in user by default
  (closes: #33440).
- passwd -d: clarify the meaning of delete option (closes: #34906).
- passwd -S: support detection of modern encryption modes (by vt@).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172370</commentid>
    <comment_count>2</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2018-07-02 11:16:44 +0300</bug_when>
    <thetext>(В ответ на комментарий №1)
&gt; passwd-1.0.14-alt1 -&gt; sisyphus:
&gt; 
&gt; Sun Jul 01 2018 Dmitry V. Levin &lt;ldv@altlinux&gt; 1.0.14-alt1
&gt; - Refuse to change password for different logged in user by default
&gt;   (closes: #33440).
&gt; - passwd -d: clarify the meaning of delete option (closes: #34906).
Так «установить пустой пароль» это тоже какой-то эвфимизм.

Попробую спросить по-другому:
У созданного командой useradd пользователя нет пароля. После установки пароля командой passwd пароль появляется. Какой командой вернуться к первоначальному состоянию «нет пароля»?
Если это passwd -d, почему это называется empty password?
И почему не работает, выдавая вышеприведённую ошибку:
Ошибка при операциях с маркером проверки подлинности</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172371</commentid>
    <comment_count>3</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2018-07-02 11:19:04 +0300</bug_when>
    <thetext>Вот описание passwd -d из Fedora:

man:
       -d, --delete
              This is a quick way to delete a password for an account. It will set the named account passwordless. Available to root only.

passwd --help:
  -d, --delete            удалить пароль, сняв блокировку (только root)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172372</commentid>
    <comment_count>4</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2018-07-02 11:27:48 +0300</bug_when>
    <thetext>(In reply to comment #2)
&gt; (В ответ на комментарий №1)
&gt; &gt; passwd-1.0.14-alt1 -&gt; sisyphus:
&gt; &gt; 
&gt; &gt; Sun Jul 01 2018 Dmitry V. Levin &lt;ldv@altlinux&gt; 1.0.14-alt1
&gt; &gt; - Refuse to change password for different logged in user by default
&gt; &gt;   (closes: #33440).
&gt; &gt; - passwd -d: clarify the meaning of delete option (closes: #34906).
&gt; Так «установить пустой пароль» это тоже какой-то эвфимизм.

Пустой пароль - это пароль нулевой длины.

&gt; Попробую спросить по-другому:
&gt; У созданного командой useradd пользователя нет пароля. После установки пароля
&gt; командой passwd пароль появляется. Какой командой вернуться к первоначальному
&gt; состоянию «нет пароля»?

Зачем?  Для блокировки существует -l.

&gt; Если это passwd -d, почему это называется empty password?
&gt; И почему не работает, выдавая вышеприведённую ошибку:
&gt; Ошибка при операциях с маркером проверки подлинности

Потому что запрещено устанавливать пустой пароль.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172373</commentid>
    <comment_count>5</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2018-07-02 11:28:55 +0300</bug_when>
    <thetext>(In reply to comment #3)
&gt; Вот описание passwd -d из Fedora:
&gt; 
&gt; man:
&gt;        -d, --delete
&gt;               This is a quick way to delete a password for an account. It will
&gt; set the named account passwordless. Available to root only.
&gt; 
&gt; passwd --help:
&gt;   -d, --delete            удалить пароль, сняв блокировку (только root)

Не понимаю, что это значит.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193254</commentid>
    <comment_count>6</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2020-10-15 11:07:00 +0300</bug_when>
    <thetext>(Ответ для Dmitry V. Levin на комментарий #5)
...
&gt; Не понимаю, что это значит.

Данная бага была о том, что операция удаления пароля не работает. Удаление пароля — это его снятие с учётной записи, то есть после этой операции вход по паролю невозможен.
Другими словами, это приведение файла /etc/tcb/USER/shadow
к виду
USER:*:18549::::::

Описание в man 8 passwd такое:
       -d, --delete
              Удалить пароль для указанной записи

       -d, --delete
              Set an empty password for the specified account
АВТОР
       Dmitry V. Levin &lt;ldv@altlinux.org&gt;

 $ rpm -qf /usr/share/man/man8/passwd.8.xz
passwd-1.0.14-alt1.x86_64

# which passwd
/usr/sbin/passwd

# passwd --help
...
passwd wrapper implements traditional passwd options using real passwd utility
or shadow utils.


Но passwd -d не работает:

# passwd -d USER
chpasswd: (user USER) pam_chauthtok() failed, error:
Authentication token manipulation error
chpasswd: (line 1, user USER) password not changed

В логах:
окт 15 11:05:07 example.com chpasswd[24371]: pam_tcb(chpasswd:chauthtok): conversation failed
окт 15 11:05:07 example.com chpasswd[24371]: pam_tcb(chpasswd:chauthtok): New password not acceptable</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193407</commentid>
    <comment_count>7</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2020-10-21 19:15:44 +0300</bug_when>
    <thetext>Из руководства к АЛЬТ 8 СП:

-d , --delete –удалить пароль для указанной записи;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266757</commentid>
    <comment_count>8</comment_count>
    <who name="nbr">nbr</who>
    <bug_when>2025-06-06 16:55:37 +0300</bug_when>
    <thetext>Просьба удалить эту опцию (-d) из passwd и, самое главное, документации.
Она все равно не работает и не будет работать.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>