1.Linux用户的密码文件
用户:
基础密码文件:/etc/passwd
密码文件:/etc/shadow
组:
基础密码文件:/etc/group
密码文件:/etc/gshadow
/etc/passwd
内容:用户名、X(表示密码存于/etc/shadow)、UID、GID、个人信息、家目录、默认shell
查看个人信息:finger 用户名
修改个人信息:chfn 用户名
修改默认shell:chsh 用户名(修改范围:/etc/shells)
root可以直接用vi修改/etc/passwd
/etc/shadow
内容:用户名、密码(MD5)、最后一次修改密码的时间(从1970.1.1开始的天数)、密码修改最小间隔天数、必须修改密码天数、提醒修改密码天数、密码过期天数、账户过期天数(从1970.1.1开始的天数)
修改密码修改最小间隔天数:passwd-n 天数用户名
修改必须修改密码天数:passwd -x 天数用户名
修改提醒修改密码天数:passwd -w 天数用户名
修改密码过期天数:passwd -i 天数用户名
修改账户过期天数:usermod -e 日期
设置系统日期:date --set=’2011-06-0421:34:00‘
root有权操作,如果删除密码段,则用户登录无需输入密码
/etc/group
内容:组名、密码、GID、成员
用户加入组:usermod -G 组名用户名
切换组:newgrp 组名(如果用户之前不属于该组,需要输入组密码)
设置组密码:gpasswd 组名
改文件、文件夹所属组:chgrp 组名文件名/文件夹名
/etc/gshadow
内容:组名、密码、管理员、成员
增加管理员:gpasswd -A 组名用户名
增加组员(root,组管理员可以):gpasswd-a 用户名组名
删除组员(root,组管理员可以):gpasswd-d 用户名组名
修改用户默认的密码策略,编辑/etc/login.defs,修改以下内容,这样以后新建的用户的密码会遵循以下规则
PASS_MAX_DAYS99999#密码的最大有效期, 99999:永久有期
PASS_MIN_DAYS0#是否可修改密码,0可修改,非0多少天后可修改
PASS_MIN_LEN5#密码最小长度,使用pam_cracklib module,该参数不再有效
PASS_WARN_AGE7#密码失效前多少天在用户登录时通知用户修改密码
2.当用户错误输入N次密码后锁定用户
redhat 6 现在用的认证模块是:pam_tally2.so,限制用户的登陆的次数。
和限制用户登录相关的文件有:/etc/pam.d/login、/etc/pam.d/system-auth、/etc/pam.d/gdm-password,其中gdm-password可以用来修改图形界面。
system-auth定义了较多的PAM命令语句,其主要作用是提示普通用户输入root账号的密码并且包括所有用户个人的配置,我们可以在这里面修改限制登录次数并且锁定一段时间。
login是控制字符终端的登陆限制,如果我们在这里修改了限制,在图形界面还是不会有影响。
在system-auth文件下面加入下面一行;
authrequiredpam_tally2.sodeny=5even_deny_root root_unlock_time=10unlock_time=10
表示的是用pam_tally2.so模块,如果5次登陆失败,则这个用户被锁定10秒。
even_deny_root:表示也限制root用户。
修改图形界面的文件是gdm_password,同样是加入上面的那句话。
修改ssh的文件是sshd,同样是加入上面的那句话。
注销之后就生效。
清除某个用户的登陆失败次数,让改用户可以重新登陆
#pam_tally2-r-uusername
3.修改密码时不能重复前n次使用过的
出于安全考虑,要求修改linux密码策略,每次修改密码时设置的新密码不能是前n次使用过的密码。配置如下:
Debian / Ubuntu:修改文件 # vi/etc/pam.d/common-password
CentOS / RHEL /RedHat / Fedora 修改文件 # vi /etc/pam.d/system-auth
在 password sufficientpam_unix.so use_authtok md5 shadow remember=10
在相应行的后面添加 remember=10,而不是添加一行!
SUSE,man pw_check在/etc/security/pam_pwcheck文件中添加remember=5
passwd:nullok use_cracklib remember=5