写出用chage -l查询linux所有用户的shell脚本
时间: 2024-02-01 08:13:01 浏览: 25
可以使用以下脚本查询Linux系统中所有用户的shell:
```
#!/bin/bash
for user in $(cut -f1 -d: /etc/passwd); do
echo "User: $user"
chage -l $user | grep "Shell"
done
```
这个脚本会遍历 `/etc/passwd` 文件中的所有用户,并对每个用户运行 `chage -l` 命令查询其密码过期日期和其他信息。然后使用 `grep` 过滤出与 shell 相关的行,并将其输出到屏幕上。
相关问题
写出用chage -l列出所有本地用户账户的详细信息的shell脚本
以下是用chage -l列出所有本地用户账户的详细信息的shell脚本:
```bash
#!/bin/bash
# 使用 grep 命令过滤出所有本地用户账户的用户名
usernames=$(cat /etc/passwd | grep -vE '^(#|$)' | awk -F: '{print $1}')
# 遍历每个用户名,输出其详细信息
for username in $usernames
do
echo "User: $username"
chage -l $username
echo ""
done
```
这个脚本会先使用 grep 命令过滤出所有本地用户账户的用户名,然后使用 for 循环遍历每个用户名,最后使用 chage -l 命令输出该用户的详细信息。
chage -l root
这个命令可以列出系统中root用户的账户相关属性,包括账户的过期时间、最近一次密码修改时间等等。其中-l选项表示列出账户的详细信息。它的输出大概长这样:
```
Last password change : Aug 23, 2021
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
```
这里我们可以看到root账户的密码是在2021年8月23日修改的,密码永不过期,账户也永不过期,密码修改的最短间隔为0天,最长间隔为99999天,密码过期前会提前7天进行警告。