请教个问题

为当前最终发行版之前的所有版本提供支持
回复
huihenry
帖子: 3
注册时间: 2007-08-13 10:27
送出感谢: 0
接收感谢: 0

请教个问题

#1

帖子 huihenry » 2007-08-13 13:58

一般Linux操作系统支持多少位的用户密码
Ubuntu支持多少位的用户密码
Windows操作系统支持多少位的用户密码
wkt
帖子: 849
注册时间: 2006-09-07 22:51
送出感谢: 0
接收感谢: 0
联系:

#2

帖子 wkt » 2007-08-13 14:14

一些书说
linux 8位
windows 没在意
可以自己试试!
头像
jomper
帖子: 83
注册时间: 2007-08-03 12:26
送出感谢: 0
接收感谢: 0

#3

帖子 jomper » 2007-08-13 14:16

win似乎是16位
头像
fortruth
帖子: 1795
注册时间: 2005-11-06 1:51
来自: 七彩云世界
送出感谢: 0
接收感谢: 0
联系:

#4

帖子 fortruth » 2007-08-13 14:16

我的是9位
佛出寺,求索真世界 For_Truth:Free_Open_Share
OPEN GPG KEY:03D18D95
huihenry
帖子: 3
注册时间: 2007-08-13 10:27
送出感谢: 0
接收感谢: 0

#5

帖子 huihenry » 2007-08-14 13:11

用FC6.0时用的10位的,不知道Ubuntu支持几位的
huihenry
帖子: 3
注册时间: 2007-08-13 10:27
送出感谢: 0
接收感谢: 0

#6

帖子 huihenry » 2007-08-14 16:35

有大侠研究过吗?
头像
xhy
帖子: 3916
注册时间: 2005-12-28 1:16
系统: Ubuntu 12.10 X64
来自: 火星
送出感谢: 1 次
接收感谢: 0

#7

帖子 xhy » 2007-08-14 17:04

代码: 全选

char *bb_askpass(int timeout, const char * prompt)
{
    static char passwd[64];

    char *ret;
    int i;
    struct sigaction sa;
    struct termios old, new;

    tcgetattr(STDIN_FILENO, &old);
    tcflush(STDIN_FILENO, TCIFLUSH);

    memset(passwd, 0, sizeof(passwd));

    fputs(prompt, stdout);
    fflush(stdout);

    tcgetattr(STDIN_FILENO, &new);
    new.c_iflag &= ~(IUCLC|IXON|IXOFF|IXANY);
    new.c_lflag &= ~(ECHO|ECHOE|ECHOK|ECHONL|TOSTOP);
    tcsetattr(STDIN_FILENO, TCSANOW, &new);

    if (timeout) {
        sa.sa_flags = 0;
        sa.sa_handler = askpass_timeout;
        sigaction(SIGALRM, &sa, NULL);
        alarm(timeout);
    }

    ret = NULL;
    if (read(STDIN_FILENO, passwd, sizeof(passwd)-1) > 0) {  //63字符
        ret = passwd;
        i = 0;
        /* Last byte is guaranteed to be 0
        (read did not overwrite it) */
        do {
            if (passwd[i] == '\r' || passwd[i] == '\n')
                passwd[i] = '\0';
        } while (passwd[i++]);
    }

    if (timeout) {
        alarm(0);
    }

    tcsetattr(STDIN_FILENO, TCSANOW, &old);
    puts("");
    fflush(stdout);
    return ret;
}


so 密码最长是63字节
目前负债150多万
头像
xhy
帖子: 3916
注册时间: 2005-12-28 1:16
系统: Ubuntu 12.10 X64
来自: 火星
送出感谢: 1 次
接收感谢: 0

#8

帖子 xhy » 2007-08-14 17:53

翻了一下gentoo中的源码

gentoo中的实现是 如果使用MD5_CRYPT加密 那么支持的密码长度为127
如果没使用 就是8

是否使用MD5加密算法 要看是否定义了USE_PAM

实验了一下 65位的密码能正常使用
busybox的实现版本比较保守


代码: 全选

  if (getdef_bool ("MD5_CRYPT_ENAB"))
        pass_max_len = 127;
    else
        pass_max_len = getdef_num ("PASS_MAX_LEN", 8);


static struct itemdef def_table[] = {
    {"CHFN_RESTRICT", NULL},
    {"CONSOLE_GROUPS", NULL},
    {"CONSOLE", NULL},
    {"CREATE_HOME", NULL},
    {"DEFAULT_HOME", NULL},
    {"ENV_PATH", NULL},
    {"ENV_SUPATH", NULL},
    {"ERASECHAR", NULL},
    {"FAIL_DELAY", NULL},
    {"FAKE_SHELL", NULL},
    {"GID_MAX", NULL},
    {"GID_MIN", NULL},
    {"HUSHLOGIN_FILE", NULL},
    {"KILLCHAR", NULL},
    {"LOGIN_RETRIES", NULL},
    {"LOGIN_TIMEOUT", NULL},
    {"LOG_OK_LOGINS", NULL},
    {"LOG_UNKFAIL_ENAB", NULL},
    {"MAIL_DIR", NULL},
    {"MAIL_FILE", NULL},
    {"PASS_MAX_DAYS", NULL},
    {"PASS_MIN_DAYS", NULL},
    {"PASS_WARN_AGE", NULL},
    {"SULOG_FILE", NULL},
    {"SU_NAME", NULL},
    {"TTYGROUP", NULL},
    {"TTYPERM", NULL},
    {"TTYTYPE_FILE", NULL},
    {"UID_MAX", NULL},
    {"UID_MIN", NULL}, 
    {"UMASK", NULL},
    {"USERDEL_CMD", NULL},
    {"USERGROUPS_ENAB", NULL},
#ifndef USE_PAM
    {"CHFN_AUTH", NULL},
    {"CHSH_AUTH", NULL},
    {"CRACKLIB_DICTPATH", NULL},
    {"ENV_HZ", NULL},
    {"ENVIRON_FILE", NULL},
    {"ENV_TZ", NULL},
    {"FAILLOG_ENAB", NULL},
    {"FTMP_FILE", NULL},
    {"ISSUE_FILE", NULL},
    {"LASTLOG_ENAB", NULL},
    {"LOGIN_STRING", NULL},
    {"MAIL_CHECK_ENAB", NULL},
    {"MD5_CRYPT_ENAB", NULL},
目前负债150多万
回复

回到 “老旧版本支持”