查询已登录用户

找到"/etc/pptpd.conf"这个文件, 让下面这行生效:

# TAG: logwtmp
#       Use wtmp(5) to record client connections and disconnections.
#
logwtmp

查询在线用户

last|grep ppp|grep gone


搜索关键词是gone 我看别人都是搜still的 而我的服务器已登录的用户显示gone - no logout
我也不知道是什么问题。欢迎大神评论区指出
如果搜gone不行的话就换成still试试

禁止同一账号同时登录

有两种模式供大家选择

挤号模式

在/etc/ppp/ip-up文件末尾加上这一段

#挤号模式 第二个用户登录后断开第一个用户的连接
KEYWORD="gone"
NUMLOGINS=`last | grep ppp | grep $KEYWORD | grep -c "^$PEERNAME "`
if [ $NUMLOGINS -gt 1 ]; thenDEVICE=$(last | grep ppp |grep $KEYWORD | sed -n 2p | awk '{print $2}')PID=$(cat /var/run/$DEVICE.pid)if [ $PID ]; thenkill $PIDfi
fi

非挤号模式

#非挤号模式 第二个用户无法登录连接
KEYWORD="gone"
NUMLOGINS=`last | grep ppp | grep $KEYWORD | grep -c "^$PEERNAME "`
if [ $NUMLOGINS -gt 1 ]; thenPID=$(cat /var/run/$PPP_IFACE.pid)if [ $PID ]; thenkill $PIDfi
fi

最后奉上我的/etc/ppp/ip-up

#!/bin/sh
#
# This script is run by the pppd after the link is established.
# It uses run-parts to run scripts in /etc/ppp/ip-up.d, so to add routes,
# set IP address, run the mailq etc. you should create script(s) there.
#
# Be aware that other packages may include /etc/ppp/ip-up.d scripts (named
# after that package), so choose local script names with that in mind.
#
# This script is called with the following arguments:
#    Arg  Name                          Example
#    $1   Interface name                ppp0
#    $2   The tty                       ttyS1
#    $3   The link speed                38400
#    $4   Local IP number               12.34.56.78
#    $5   Peer  IP number               12.34.56.99
#    $6   Optional ``ipparam'' value    foo# The  environment is cleared before executing this script
# so the path must be reset
PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin
export PATH# These variables are for the use of the scripts run by run-parts
PPP_IFACE="$1"
PPP_TTY="$2"
PPP_SPEED="$3"
PPP_LOCAL="$4"
PPP_REMOTE="$5"
PPP_IPPARAM="$6"
export PPP_IFACE PPP_TTY PPP_SPEED PPP_LOCAL PPP_REMOTE PPP_IPPARAM# as an additional convenience, $PPP_TTYNAME is set to the tty name,
# stripped of /dev/ (if present) for easier matching.
PPP_TTYNAME=`/usr/bin/basename "$2"`
export PPP_TTYNAME # If /var/log/ppp-ipupdown.log exists use it for logging.
if [ -e /var/log/ppp-ipupdown.log ]; thenexec > /var/log/ppp-ipupdown.log 2>&1echo $0 $@echo
fi# This script can be used to override the .d files supplied by other packages.
if [ -x /etc/ppp/ip-up.local ]; thenexec /etc/ppp/ip-up.local "$@"
firun-parts /etc/ppp/ip-up.d \--arg="$1" --arg="$2" --arg="$3" --arg="$4" --arg="$5" --arg="$6"# if pon was called with the "quick" argument, stop pppd
if [ -e /var/run/ppp-quick ]; thenrm /var/run/ppp-quickwaitkill $PPPD_PID
fi#同一账号不能同时登录
sleep 2
#搜索关键词 不行就换成still
KEYWORD="gone"
STATUS="登录"
NUMLOGINS=`last | grep ppp | grep $KEYWORD | grep -c "^$PEERNAME "`#挤号模式 第二个用户登录后断开第一个用户的连接
if [ $NUMLOGINS -gt 1 ]; thenDEVICE=$(last | grep ppp |grep $KEYWORD | sed -n 2p | awk '{print $2}')PID=$(cat /var/run/$DEVICE.pid)if [ $PID ]; thenkill $PIDSTATUS="登录成功-挤号"fi
fi#非挤号模式 第二个用户无法登录连接
#if [ $NUMLOGINS -gt 1 ]; then
#  PID=$(cat /var/run/$PPP_IFACE.pid)
#  if [ $PID ]; then
#    kill $PID
#    STATUS="登录失败-挤号"
#  fi
#fiecho `date -d today +"%F %T"` $PEERNAME $PPP_IFACE $PPP_REMOTE $PPP_IPPARAM $STATUS  >> /var/log/pptpd.log

若有不正之处,请多多谅解并欢迎指正。

参考:https://www.cnblogs.com/jcli/p/3960026.html

linux pptp设置账号不能同时登录 查询已登录用户相关推荐

  1. linux登录主机命令,linux w命令查询已登录主机的用户信息

    Linux w命令用于显示目前登入系统的用户信息. 语法 w [-fhlsuV][用户名称] 参数说明:-f 开启或关闭显示用户从何处登入系统. -h 不显示各栏位的标题信息列. -l 使用详细格式列 ...

  2. Linux账户设置能su不能ssh,ssh无法登录可以su切换的问题

    一.故障现象 接业务侧同事邮件,一台现网主机使用正确的用户名密码 ssh 登录不上(之前正常),使用其他用户 " su - 该用户 " 输入密码可以正常切换进去.而且使用该用户进行 ...

  3. linux安全设置:限制su、sudo切换root用户权限设置,su\sudo使用,SSH远程连接密钥登录

    目录 限制su命令切换到root用户 限制非root用户修改密码 su.sudo.sudo su 服务器安全 限制su命令切换到root用户 限制su命令切换到root用户 不希望所有用户都可以通过s ...

  4. linux如何设置账号全民,linux基本练习:用户和组管理的相关练习

    linux用户和组管理命令的相关练习: 1.创建一个用户mandriva,其ID号为2002,基本组为distro(组ID为3003), 附件组为linux: #groupadd -g 3003 di ...

  5. 20_clickhouse,硬件管理与优化(cpu,内存,网络,存储,操作系统配置),profile管理,Quotas设置,约束管理,查询权限,用户管理配置等

    26.运维管理与优化 26.1.硬件管理与优化 26.1.1.CPU 26.1.2.内存 26.1.3.网络 26.1.4.存储 26.2.操作系统的配置 26.2.1.CPU频率调整策略 26.2. ...

  6. linux文件夹分配用户权限,linux权限设置(开放某个文件夹给指定用户)

    问题背景: 今天想把自己的数据集开放给同事a,只允许其读,不允许写. 操作: step1: 查看该文件夹属于哪一个用户,哪一个组 ls 文件夹 -l step2: usermod -a -G 指定文件 ...

  7. Git如何查看本地已登录的用户账号及切换账号

    Git如何查看已登录的用户账号及切换账号 一.查看本地已登录的账号信息 1.查看本地已登录的账号 2.查看本地已登录的账号绑定的邮箱 二.切换本地登录用户 1.切换本地登录的账号 2.切换本地登录的账 ...

  8. ad域服务器用户登录限制,AD域监控用户登录, 活动目录监控用户, AD登录历史审核...

    实时监控用户登录操作 用户登录到其域计算机是在任何企业都会发生的日常活动.一开始,这看起来可能是一个简单的Active Directory事件,但分配有不同角色的管理员可将这个宝贵的数据用于各种审核. ...

  9. linux设置账号权限设置,Linux账号管理与ACL权限设置

    1:UID和GID 用户ID:在/etc/passwd中 群组ID:在/etc/group中 2:有效群组与初始群组 初始群组:/etc/passwd文件里面的GID 有效群组: groups #查看 ...

最新文章

  1. vue中的minix
  2. 使用SKIP-GRANT-TABLES 解决 MYSQL ROOT密码丢失
  3. UCOS中断函数的编写
  4. IntelliJ IDEA 2021.2 正式发布
  5. java 图像 截取正方形_响应但是作为img元素的正方形的图像
  6. Nginx详解一(理论)
  7. ES6——Class 笔记
  8. linux ping 不通 arp incomplete,关于show arp表,显示Incomplete问题
  9. “今天星期五“-SAP SE09/STMS 请求号传输中遇到的错误及解决方案
  10. 修改mysql wait timeout_MySQL wait_timeout参数修改
  11. HFSS 3D LAYOUT TDR仿真
  12. 双操作系统安装(五)Windows及Manjaro Linux双系统安装教程
  13. c# .NET 使用MVC控制器导出Excel并打开
  14. Aho-Corasick自动机算法
  15. Zion无代码赋能企业中台构建
  16. 灌注桩如何计算机械台班,钢护筒造价计算及套定额
  17. 计算机理论基础知识书面形式,计算机基础知识word.doc
  18. week-14(时间管理带师)
  19. 2019, XII Samara Regional Intercollegiate Programming Contest 解题报告
  20. 中国大学慕课C语言第六讲作业

热门文章

  1. word如何只设置一张为横向_设置Word的某页为横向、单独设置某页的方法
  2. 全套安卓客户端项目UI设计的一点体会
  3. Qt 汽车仪表 QWidget
  4. 聚胶新材上市破发:下跌11% 募资10.5亿公司市值38亿
  5. CAD 电气版 元件包含中文的描述显示问号
  6. 一文读懂transformer
  7. 一款功能强大的客户端研发助手,适用于 iOS 、Android、微信小程序 !移动端开发必备...
  8. 转:组织敏捷不是一种选择,而是一种必须!
  9. Ubuntu Linux gcc的常用命令
  10. 【Linux】ntp的一些坑。你肯定遇到过