Linux中通过root账户注销其他在线用户

在Linux系统中,root用户可以通过kill命令注销其他用户。kill命令用于向指定进程发送信号,其中,信号编号为15(SIGTERM)可以正常终止进程,信号编号为9(SIGKILL)可以强制终止进程。

注销其他用户的步骤如下:

  1. 使用who命令查看当前登录的用户和会话ID。

  2. 使用ps命令查看指定用户的进程ID(PID)。

  3. 使用kill命令向指定PID发送信号,使其退出登录。

例如,假设要注销名为test的用户,步骤如下:

  1. 使用who命令查看test用户的会话ID:
$ who
test     tty1         2022-08-20 09:30
root     pts/0        2022-08-20 09:31 (:0.0)

可以看到,test用户的会话ID为tty1。

  1. 使用ps命令查看test用户的进程ID:
$ ps -u test
  PID TTY          TIME CMD
 1234 tty1     00:00:00 bash

可以看到,test用户的bash进程的PID为1234。

  1. 使用kill命令向PID为1234的进程发送信号:
$ sudo kill -15 1234

这会向test用户的bash进程发送SIGTERM信号,使其正常退出登录。如果需要强制注销用户,可以使用SIGKILL信号:

$ sudo kill -9 1234

需要注意的是,强制注销用户可能会导致数据丢失或损坏,应该尽量避免使用。

=============================== 美丽的更新分割线========================================

对于使用systemd作为初始化的系统,目前已经没有这么麻烦。仅通过如下命令即可完成在线用户的下线。

1、对于root用户:
#loginctl kill-user 用户名

2、对于非root用户,如果想执行以上命令,必须拥有root密码才能将对方下线。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一个简单的 PHP + MySQL 用户注册登录验证的示例代码: 注册页面(register.php) ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>用户注册</title> </head> <body> <h2>用户注册</h2> <form action="register.php" method="post"> <label for="username">用户名:</label> <input type="text" name="username" id="username"><br> <label for="password">密码:</label> <input type="password" name="password" id="password"><br> <label for="confirm_password">确认密码:</label> <input type="password" name="confirm_password" id="confirm_password"><br> <input type="submit" value="注册"> </form> </body> </html> ``` register.php 处理用户提交的注册信息 ```php <?php // 连接 MySQL 数据库 $mysqli = new mysqli('localhost', 'root', 'password', 'test'); if ($mysqli->connect_errno) { echo '连接 MySQL 失败:' . $mysqli->connect_error; exit(); } // 处理用户提交的注册信息 if ($_SERVER['REQUEST_METHOD'] === 'POST') { // 获取表单提交的数据 $username = $_POST['username']; $password = $_POST['password']; $confirm_password = $_POST['confirm_password']; // 验证密码是否相等 if ($password !== $confirm_password) { echo '两次输入的密码不相等'; exit(); } // 查询用户名是否已经存在 $sql = "SELECT * FROM users WHERE username='$username'"; $result = $mysqli->query($sql); if ($result->num_rows > 0) { echo '用户名已经存在'; exit(); } // 插入新用户数据到数据库 $hashed_password = password_hash($password, PASSWORD_DEFAULT); $sql = "INSERT INTO users (username, password) VALUES ('$username', '$hashed_password')"; if ($mysqli->query($sql)) { echo '注册成功'; } else { echo '注册失败:' . $mysqli->error; } } // 关闭数据库连接 $mysqli->close(); ``` 登录页面(login.php) ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>用户登录</title> </head> <body> <h2>用户登录</h2> <form action="login.php" method="post"> <label for="username">用户名:</label> <input type="text" name="username" id="username"><br> <label for="password">密码:</label> <input type="password" name="password" id="password"><br> <input type="submit" value="登录"> </form> </body> </html> ``` login.php 处理用户提交的登录信息 ```php <?php // 启动会话 session_start(); // 连接 MySQL 数据库 $mysqli = new mysqli('localhost', 'root', 'password', 'test'); if ($mysqli->connect_errno) { echo '连接 MySQL 失败:' . $mysqli->connect_error; exit(); } // 处理用户提交的登录信息 if ($_SERVER['REQUEST_METHOD'] === 'POST') { // 获取表单提交的数据 $username = $_POST['username']; $password = $_POST['password']; // 查询用户数据 $sql = "SELECT * FROM users WHERE username='$username'"; $result = $mysqli->query($sql); if ($result->num_rows > 0) { $user = $result->fetch_assoc(); // 验证密码是否正确 if (password_verify($password, $user['password'])) { // 登录成功,保存用户信息到会话 $_SESSION['user_id'] = $user['id']; $_SESSION['username'] = $user['username']; echo '登录成功'; } else { echo '密码错误'; } } else { echo '用户名不存在'; } } // 关闭数据库连接 $mysqli->close(); ``` 注销页面(logout.php) ```php <?php // 启动会话 session_start(); // 删除保存的用户信息 unset($_SESSION['user_id']); unset($_SESSION['username']); echo '注销成功'; ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hi~9527

看我这么卖力,可怜可怜我吧!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值