linux 查看某个用户账户过期信息

设置新用户缺省密码的过期时间
#vi /etc/login.defs
修改PASS_MAX_DAYS的值即可
以上设置只适用于进行该设置以后,新添加的用户,即把这个设置作为新添用户的缺省设置
对于系统已经存在的账号
#passwd -x 90 account
例如修改root账户
#passed -x 90 root

设置某个用户的密码有效期
chage -m 0 -M 90 -W 15 root
说明:
(1)以上命令表示设置用户root的密码最小有效期为0天,最长有效期为90天,在密码过期前15天对用户进行提醒
(2)chage的参数包括
-m 密码可更改的最小天数。为零时代表任何时候都可以更改密码。
-M 密码保持有效的最大天数。
-W 用户密码到期前,提前收到警告信息的天数。
-E 帐号到期的日期。过了这天,此帐号将不可用。
-d 上一次更改的日期
-i 停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
-l 例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。

查看某个用户的密码状态
#chage -l  root
Last password change : Oct 23, 2013       【最近一次修改密码的时间】
Password expires : Jan 23, 2014              【密码过期时间】
Password inactive : never                       【密码失效时间】
Account expires : never                         【账户过期时间】
Minimum number of days between password change : 0    【两次改变密码之间相距最小天数】
Maximum number of days between password change : 92   【两次密码改变密码相距最大天数】
Number of days of warning before password expires : 7 【密码过期前开始警告的天数】

通过例子来理解一个账号各种期限 
首先 查看一个用户期限信息 
#chage -l liz
Last password change : Jan 14, 2013
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7

Password expires 的意思
chage 加M 选项有两个作用

一,Last passwrd change + M天数 = Password expires
二,Maximum number of days between password chang=M天数
其实,一和二本质上是一样的。
修改密码过期天数
# chage -M 10 liz
#chage -l liz
Last password change : Jan 14, 2013
Password expires : Jan 24, 2013
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 10
Number of days of warning before password expires : 7

上一次修改密码日期是 2013/1/14 现在添了密码过期天数10天,如果你在2013/20/14 前一个星期用这个账号登陆,系统会提示你多少天后密码会到期。
如果2013/20/14之前没改密码,然后2013/20/14之后去登陆账号,系统会提示用户强制改密码才能用这个用户登陆。

然后你用root用户登陆 查看liz用户信息
#chage -l liz
Last password change : Mar 11, 2013
Password expires : Mar 21, 2013
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 10
Number of days of warning before password expires : 7

Last password change 已经变成了 2013/5/11  Password expires 也已经相应的增加了10天
接下来看 Password inactive 这个参数
Password expires + I 天数 = Password inactive
#chage -I 5 liz
chage -l liz
Last password change : Mar 11, 2013
Password expires : Mar 21, 2013
Password inactive : Mar 26, 2013
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 10
Number of days of warning before password expires : 7
看到此时 Password inactive 改成了在 Password expires基础上再加5天
1.如果你在 3月21日前一星期登陆 系统会提示你改密码
2.如果你在 3月24日登陆 也就是Password expires过了,而在Password inactive之前登陆,系统会强制你改密码才能登陆,改完密码后Last password change,Password expires,Password inactive 都会根据你改时候的系统日期和相应的M和I的参数改变,改完系统照常进入。
3.如果你在 3月25登陆,过了Password inactive,会提示你账号过期,需要联系系统管理员,没有修改密码的机会。

写了这么多其实就是

码到期(Password expires)登陆改完还能进系统,密码失效Password inactive就得找管理员啦~



本文转自 Mr_sheng 51CTO博客,原文链接:http://blog.51cto.com/sf1314/1980698

<think>嗯,用户想了解如何在Linux系统中查看用户信息。这个问题听起来挺基础的,但作为新手可能不太清楚有哪些命令和方法。首先,我得回忆一下常用的Linux命令,比如查看当前用户、所有用户用户组以及相关配置文件。 首先,用户可能想知道当前登录的是哪个用户。这时候应该用`whoami`或者`id`命令。`whoami`简单直接,只显示用户名;而`id`会更详细,包括用户ID和所属组的信息。这两个命令都很基础,应该先提到。 接下来,用户可能想查看系统上所有的用户。这时候需要查看`/etc/passwd`文件,里面存储了所有用户的基本信息。不过直接cat这个文件的话,信息太多,可能不太友好。可以用`cut`命令来提取用户名部分,比如`cut -d: -f1 /etc/passwd`,这样只显示用户名,更清晰。另外,`getent passwd`命令可能在某些系统上更适用,比如当用户信息来自LDAP或者其他数据库时。 然后是关于查看当前登录的用户。`w`和`who`命令可以显示当前登录的用户列表,包括他们登录的终端和时间。而`users`命令更简洁,只列出用户名。如果用户需要更详细的信息,比如登录历史,可以推荐`last`或者`lastlog`命令,这些能显示登录记录和最近的登录情况。 用户组的信息也是重要的,特别是用户属于哪些组。`groups`命令可以显示当前用户所属的组,而`id`命令同样能提供这些信息。如果需要查看某个特定用户的组,可以用`groups username`或者`id username`。另外,`/etc/group`文件存储了所有用户组的信息,可以用类似处理`/etc/passwd`的方法来提取组名。 还有用户账户的详细信息,比如密码过期时间、账户有效期等。这里需要提到`chage`命令,特别是`chage -l username`可以列出这些信息。不过这个可能需要管理员权限,所以用户可能需要使用sudo。 用户的家目录和默认shell信息在`/etc/passwd`里,每个用户的记录第七个字段是shell,第六个是家目录。可以用`echo $HOME`查看当前用户的家目录,`echo $SHELL`查看当前shell。对于其他用户,可能需要解析`/etc/passwd`或者使用`getent`。 权限方面,可能需要检查用户是否有sudo权限,这可以通过查看`/etc/sudoers`文件或者`/etc/group/sudo`(或`wheel`组,根据不同发行版)来确定。可以使用`groups username`看是否在sudo组里。 另外,用户可能不知道这些命令需要什么权限,比如查看其他用户信息可能需要root权限,这时候可能需要用sudo。例如,查看其他用户的密码过期信息可能需要sudo chage -l username。 在思考过程中,还要考虑不同Linux发行版之间的差异,比如有些命令的选项可能略有不同,或者某些文件的位置可能不同。但一般来说,`/etc/passwd`和`/etc/group`是标准的,所以应该通用。 最后,需要将这些整理成结构清晰的步骤,从简单到复杂,让用户逐步了解不同的查看方法。同时要注意命令的正确性,避免拼写错误,比如`/etc/passwd`不要写成`/etc/password`。另外,提醒用户谨慎操作,特别是涉及敏感信息或需要管理员权限的命令。</think>在Linux系统中,用户信息的管理主要通过配置文件和命令行工具实现。以下是逐步查看用户信息的常用方法: --- ### 1. **查看当前登录用户** - **命令** `whoami` 显示当前终端登录的用户名: ```bash $ whoami ``` - **命令** `id` 显示当前用户的UID、GID及所属组: ```bash $ id ``` --- ### 2. **查看系统所有用户** - **文件** `/etc/passwd` 所有用户的基本信息存储在此文件。使用以下命令仅提取用户名: ```bash $ cut -d: -f1 /etc/passwd ``` - **命令** `getent passwd` 兼容性更好(支持LDAP/NIS等用户数据库): ```bash $ getent passwd ``` --- ### 3. **查看当前登录系统的用户** - **命令** `w` 显示已登录用户及其活动(终端、IP、运行命令等): ```bash $ w ``` - **命令** `who` 简化的登录用户列表: ```bash $ who ``` - **命令** `users` 仅列出登录的用户名: ```bash $ users ``` --- ### 4. **查看用户所属组** - **命令** `groups` 查看当前用户所属的组: ```bash $ groups ``` - **指定用户** 查看用户的所属组: ```bash $ groups username ``` - **文件** `/etc/group` 所有用户信息: ```bash $ cut -d: -f1 /etc/group ``` --- ### 5. **查看用户详细信息** - **命令** `finger`(需安装) 显示用户全名、Shell、登录时间等: ```bash $ finger username ``` - **文件** `/etc/passwd` 查看用户的UID、GID、家目录、默认Shell: ```bash $ grep username /etc/passwd ``` --- ### 6. **查看用户密码状态** - **命令** `chage -l` 查看密码过期策略(需root权限): ```bash $ sudo chage -l username ``` --- ### 7. **查看用户登录记录** - **命令** `last` 显示所有用户的登录历史: ```bash $ last ``` - **命令** `lastlog` 显示所有用户最后一次登录时间: ```bash $ lastlog ``` --- ### 8. **检查用户权限** - **命令** `sudo -l` 查看当前用户可执行的sudo命令: ```bash $ sudo -l ``` --- ### 注意事项 - 需要**root权限**的操作(如查看其他用户密码状态)需在命令前加 `sudo`。 - 敏感文件(如`/etc/passwd`)请勿直接修改,建议使用专用命令(如`useradd`、`usermod`)管理用户。 通过上述方法,可全面掌握Linux用户账户、权限及活动状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值