[工具] Shell 显示可以无密码登录系统的用户

介绍

基本信息

作者:朱明宇
名称:显示可以无密码登录系统的用户
作用:显示可以无密码登录系统的用户

使用方法

1. 给此脚本添加执行权限
2. 执行此脚本

脚本

#!/bin/bash

for name in `egrep '^.*\:!!\:.*$|^.*\:\*\:.*$' /etc/shadow | cut -d : -f 1`
do
        egrep '/sbin/nologin|/bin/false' /etc/passwd | egrep $name > /dev/null

        if [ $? -ne 0 ];then
                envi=`grep $name /etc/passwd | cut -d : -f 7`
                echo "$name has no password but maybe can access system, it is $envi"
        fi

done

[步骤] Linux 脚本的管理 (通过 systemd 实现)

步骤一:创建要被管理的脚本

# vim /root/12456.sh

创建以下内容:

#!/bin/bash
for i in {1..5}
do
echo $i
done

(补充:这里以创建 /etc/root/for.sh 脚本为例)

步骤二:创建 systemctl 的管理文件

# vim /etc/systemd/system/12456.service

创建以下内容:

[Unit]
Description=12345
After=default.target

[Service]
Type=oneshot
ExecStart=/root/12456.sh

[Install]
WantedBy=default.target

(补充:这里以创建 /etc/systemd/system/12456.service 来管理 ExecStart=/root/12456.sh 为例)

步骤三:加载刚刚创建的 systemctl 管理文件

# systemctl daemon-reload

步骤四:给 systemctl 的管理文件添加执行权限

# chmod u+x /etc/systemd/system/12456.service

步骤五:通过 systemd 管理脚本

5.1 启动脚本

# systemctl start 12456.service

5.2 关闭脚本

# systemctl stop 12456.service

5.3 重启脚本

# systemctl restart 12456.service

5.4 让脚本开机自启

# systemctl enable 12456.service

[步骤] Linux 周期性计划任务 cron 的设置

步骤一:进入周期任务计划的文件

1.1 案例一:直接进入周期任务计划的文件

# crontab -e

1.2 案例二:以某一个用户的身份进入周期任务计划的文件

# crontab -u root -e

(补充:这里以使用 root 用户的身份进入周期任务计划的文件为例)

步骤二:设置周期任务计划

2.1 设置周期任务计划的格式

<what minute> <what hour> <day of the month> <what month> <day of the week> <command>


补充:
1) 当以上内容是 1 个星号 “*” 时,代表任意时刻都会执行
2) 当在某一个时刻执行时,可以直接写入对应的数字,例如:0,代表在 0 时执行
3) 当同时在多个时刻执行时,可以直接写入多个对应的数字,例如:0,15,30,代表在 0 时、15 时、30 时都会执行
4) 当每隔一段时间就执行时,可以在星号 “*” 后面添加斜杠和间隔的数字,例如:*/5,代表每隔 5 就会执行 1 次
5) 当是执行 /sbin 下的命令时,需要使用命令的全路径
6) 有些特殊符号不会在此地起作用,例如:$(<command>)

2.2 设置周期任务计划的案例

2.2.1 案例一
0 1 * * * curl eternalcenter.com

(补充:此案例会在每天 1 点 0 时访问一次 eternalcenter.com)

2.2.2 案例二
*/5 * * * * curl eternalcenter.com

(补充:此案例会每过 5 分钟访问一次 eternalcenter.com)

2.2.3 案例三
0 0 1,5,10,15 /sbin/reboot

(补充:此案例会在每个月的 1 号 5 号 10 号 15 号的 0 点 0 分重启系统)

步骤三:显示已设置的周期任务计划

3.1 案例一:显示本用户已设置的周期任务计划

# crontab -l

3.2 案例二:以某 1 个用户的身份进入周期任务计划的文件

# crontab -u root -l

(补充:这里以显示 root 用户已设置的周期任务计划为例)

补充:# crontab -e 命令编辑文件的所在位置

如果是 Rocky Linux & RHEL

/var/spool/cron/

如果是 openSUSE & SLES

/var/spool/cron/tabs/