Загляните в /etc/default/passwd
. Там есть директива PASSLENGTH
. По умолчанию она имеет значение 6
, и изменение пароля дает:
# passwd root
New Password:
passwd: Password too short - must be at least 6 characters.
Также проверьте содержимое /etc/pam. conf
и проверьте, существуют ли разделы, подобные следующим:
#
# passwd command (explicit because of a different authentication module)
#
passwd auth required pam_passwd_auth.so.1
и
# Password construction requirements apply to all users.
# Remove force_check to have the traditional authorized administrator
# bypass of construction requirements.
other password requisite pam_authtok_check.so.1 force_check
Для получения дополнительной информации смотрите man -s 5 pam_authtok_check
При использовании truss
для просмотра файлов, используемых бинарным passwd
, будет получен следующий результат:
# truss -t open passwd root
open("/var/ld/ld.config", O_RDONLY) Err#2 ENOENT
open("/lib/libbsm.so.1", O_RDONLY) = 3
open("/lib/libpam.so.1", O_RDONLY) = 3
open("/lib/libnsl.so.1", O_RDONLY) = 3
open("/usr/lib/passwdutil.so.1", O_RDONLY) = 3
open("/lib/libc.so.1", O_RDONLY) = 3
open("/lib/libsocket.so.1", O_RDONLY) = 3
open("/lib/libmd.so.1", O_RDONLY) = 3
open("/lib/libsecdb.so.1", O_RDONLY) = 3
open("/lib/libcmd.so.1", O_RDONLY) = 3
open("/platform/SUNW,SPARC-Enterprise-T5220/lib/libc_psr.so.1", O_RDONLY) = 3
open("/etc/pam_debug", O_RDONLY) Err#2 ENOENT
open("/etc/pam.conf", O_RDONLY) = 3
open("/usr/lib/security/pam_passwd_auth.so.1", O_RDONLY) = 3
open("/etc/nsswitch.conf", O_RDONLY|O_LARGEFILE) = 3
open("/etc/passwd", O_RDONLY|O_LARGEFILE) = 3
open("/usr/lib/security/pam_dhkeys.so.1", O_RDONLY) = 3
open("/usr/lib/security/pam_authtok_get.so.1", O_RDONLY) = 3
open("/usr/lib/security/pam_authtok_check.so.1", O_RDONLY) = 3
open("/usr/lib/security/pam_authtok_store.so.1", O_RDONLY) = 3
open("/dev/tty", O_RDWR) = 3
New Password:
open("/etc/default/passwd", O_RDONLY) = 3
open("/etc/shadow", O_RDONLY|O_LARGEFILE) = 3
open("/etc/security/policy.conf", O_RDONLY) = 3
passwd: Password too short - must be at least 6 characters.
Please try again
open("/dev/tty", O_RDWR) = 3
New Password: Received signal #2, SIGINT, in read() [caught]
grep -c
печатает количество совпадающих строк , поэтому вы не получите правильный результат в сочетании с опцией -o
. Я бы перенаправил вывод grep -o
вuniq -c
:
$ echo 'test1 test2 test3' >/tmp/file1
$ echo 'test1 test2 test3 test4' >/tmp/file2
$ grep -o test /tmp/file* | uniq -c
3 /tmp/file1:test
4 /tmp/file2:test
Вы можете передать его дальше, чтобы изменить вывод с помощью некоторых инструментов -обработки текста.