{
    "mode": "man",
    "parameter": "shadow",
    "section": "5",
    "url": "https://www.chedong.com/phpMan.php/man/shadow/5/json",
    "generated": "2026-06-12T13:47:06Z",
    "sections": {
        "NAME": {
            "content": "shadow - shadowed password file\n",
            "subsections": []
        },
        "DESCRIPTION": {
            "content": "shadow is a file which contains the password information for the system's accounts and\noptional aging information.\n\nThis file must not be readable by regular users if password security is to be maintained.\n\nEach line of this file contains 9 fields, separated by colons (“:”), in the following order:\n",
            "subsections": [
                {
                    "name": "login name",
                    "content": "It must be a valid account name, which exist on the system.\n"
                },
                {
                    "name": "encrypted password",
                    "content": "This field may be empty, in which case no passwords are required to authenticate as the\nspecified login name. However, some applications which read the /etc/shadow file may\ndecide not to permit any access at all if the password field is empty.\n\nA password field which starts with an exclamation mark means that the password is locked.\nThe remaining characters on the line represent the password field before the password was\nlocked.\n\nRefer to crypt(3) for details on how this string is interpreted.\n\nIf the password field contains some string that is not a valid result of crypt(3), for\ninstance ! or *, the user will not be able to use a unix password to log in (but the user\nmay log in the system by other means).\n"
                },
                {
                    "name": "date of last password change",
                    "content": "The date of the last password change, expressed as the number of days since Jan 1, 1970.\n\nThe value 0 has a special meaning, which is that the user should change her password the\nnext time she will log in the system.\n\nAn empty field means that password aging features are disabled.\n"
                },
                {
                    "name": "minimum password age",
                    "content": "The minimum password age is the number of days the user will have to wait before she will\nbe allowed to change her password again.\n\nAn empty field and value 0 mean that there are no minimum password age.\n"
                },
                {
                    "name": "maximum password age",
                    "content": "The maximum password age is the number of days after which the user will have to change\nher password.\n\nAfter this number of days is elapsed, the password may still be valid. The user should be\nasked to change her password the next time she will log in.\n\nAn empty field means that there are no maximum password age, no password warning period,\nand no password inactivity period (see below).\n\nIf the maximum password age is lower than the minimum password age, the user cannot\nchange her password.\n"
                },
                {
                    "name": "password warning period",
                    "content": "The number of days before a password is going to expire (see the maximum password age\nabove) during which the user should be warned.\n\nAn empty field and value 0 mean that there are no password warning period.\n"
                },
                {
                    "name": "password inactivity period",
                    "content": "The number of days after a password has expired (see the maximum password age above)\nduring which the password should still be accepted (and the user should update her\npassword during the next login).\n\nAfter expiration of the password and this expiration period is elapsed, no login is\npossible using the current user's password. The user should contact her administrator.\n\nAn empty field means that there are no enforcement of an inactivity period.\n"
                },
                {
                    "name": "account expiration date",
                    "content": "The date of expiration of the account, expressed as the number of days since Jan 1, 1970.\n\nNote that an account expiration differs from a password expiration. In case of an account\nexpiration, the user shall not be allowed to login. In case of a password expiration, the\nuser is not allowed to login using her password.\n\nAn empty field means that the account will never expire.\n\nThe value 0 should not be used as it is interpreted as either an account with no\nexpiration, or as an expiration on Jan 1, 1970.\n"
                },
                {
                    "name": "reserved field",
                    "content": "This field is reserved for future use.\n"
                }
            ]
        },
        "FILES": {
            "content": "/etc/passwd\nUser account information.\n\n/etc/shadow\nSecure user account information.\n\n/etc/shadow-\nBackup file for /etc/shadow.\n\nNote that this file is used by the tools of the shadow toolsuite, but not by all user and\npassword management tools.\n",
            "subsections": []
        },
        "SEE ALSO": {
            "content": "chage(1), login(1), passwd(1), passwd(5), pwck(8), pwconv(8), pwunconv(8), su(1), sulogin(8).\n\n\n\nshadow-utils 4.8.1                           02/06/2024                                    SHADOW(5)",
            "subsections": []
        }
    },
    "summary": "shadow - shadowed password file",
    "flags": [],
    "examples": [],
    "see_also": [
        {
            "name": "chage",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/chage/1/json"
        },
        {
            "name": "login",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/login/1/json"
        },
        {
            "name": "passwd",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/passwd/1/json"
        },
        {
            "name": "passwd",
            "section": "5",
            "url": "https://www.chedong.com/phpMan.php/man/passwd/5/json"
        },
        {
            "name": "pwck",
            "section": "8",
            "url": "https://www.chedong.com/phpMan.php/man/pwck/8/json"
        },
        {
            "name": "pwconv",
            "section": "8",
            "url": "https://www.chedong.com/phpMan.php/man/pwconv/8/json"
        },
        {
            "name": "pwunconv",
            "section": "8",
            "url": "https://www.chedong.com/phpMan.php/man/pwunconv/8/json"
        },
        {
            "name": "su",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/su/1/json"
        },
        {
            "name": "sulogin",
            "section": "8",
            "url": "https://www.chedong.com/phpMan.php/man/sulogin/8/json"
        }
    ]
}