宿豫| 沅陵| 涠洲岛| 宁河| 大埔| 番禺| 太仓| 云林| 宣威| 南京| 额尔古纳| 克拉玛依| 来宾| 云龙| 辽源| 青田| 东阳| 萍乡| 乌苏| 台北市| 金坛| 连云港| 汶上| 曲麻莱| 遵义市| 五原| 潼南| 宁明| 开平| 大化| 邵阳市| 邛崃| 定兴| 沙县| 扶余| 富阳| 古县| 隆安| 乐平| 南木林| 云阳| 远安| 南汇| 丹凤| 万荣| 开鲁| 霞浦| 汾阳| 庆安| 涿鹿| 金塔| 启东| 西畴| 舟曲| 凤冈| 根河| 安义| 安岳| 曲周| 甘泉| 汤旺河| 乌尔禾| 沂南| 印台| 科尔沁左翼后旗| 四川| 白城| 惠阳| 天门| 庄河| 台安| 濠江| 阜阳| 衡阳县| 深泽| 莎车| 南乐| 拉孜| 大荔| 关岭| 巩留| 乌马河| 五华| 隆德| 屯昌| 富拉尔基| 维西| 东兰| 黄岩| 禹城| 策勒| 北辰| 涿州| 保亭| 薛城| 淇县| 海南| 从江| 宿豫| 沧州| 莱阳| 苏尼特右旗| 沙雅| 上饶市| 禹州| 黑山| 福贡| 古田| 正定| 吴中| 民和| 广州| 乌恰| 房县| 十堰| 潮州| 蒲江| 本溪市| 桃江| 牙克石| 汉源| 合江| 大田| 枣阳| 乌海| 石景山| 太仓| 上海| 固原| 田东| 赤城| 罗源| 通江| 承德县| 上饶县| 呼兰| 靖宇| 青川| 南溪| 鸡泽| 怀集| 甘南| 雅安| 岷县| 昂昂溪| 万荣| 高邑| 易门| 宁河| 盐山| 察哈尔右翼中旗| 奉节| 日喀则| 阳城| 资阳| 石家庄| 漾濞| 阿合奇| 巴中| 永平| 沙坪坝| 潼南| 胶南| 隰县| 东阿| 筠连| 塔河| 疏附| 兴城| 郴州| 河南| 阜南| 黑山| 郧西| 绍兴市| 三门| 绛县| 阜康| 杂多| 青岛| 长泰| 清河| 长治县| 塔河| 沧源| 博兴| 定西| 苍溪| 察雅| 余庆| 绥江| 临县| 孟州| 嘉定| 志丹| 清水河| 徽县| 汤原| 额济纳旗| 唐县| 吉木萨尔| 无极| 城步| 桂林| 茶陵| 延吉| 八一镇| 承德市| 樟树| 陕县| 高阳| 紫云| 克拉玛依| 海宁| 庄河| 芜湖市| 门头沟| 抚松| 东兴| 邯郸| 岚皋| 呼兰| 赤壁| 阿克苏| 阿图什| 鄂尔多斯| 静宁| 美溪| 洋县| 科尔沁左翼中旗| 南宁| 安多| 哈密| 北流| 贵港| 玉山| 霸州| 赤峰| 承德县| 柳河| 开化| 敦化| 永福| 三都| 东乌珠穆沁旗| 磴口| 平原| 休宁| 江西| 农安| 台江| 阿拉尔| 沙县| 犍为| 清徐| 沁阳| 南皮| 勐海| 林西| 昌宁| 乌拉特中旗| 石林| 泽普| 富县| 真人百家乐
|
|
51CTO旗下网站
|
|
移动端

Linux 下如何知道是否有人在使坏?

在 Linux 下查看用户的行为,不仅仅是网管要做的事,也是开发人员所应该具备的基本技能之一。

作者:良许来源:良许Linux|2019-01-20 11:08

在 Linux 下查看用户的行为,不仅仅是网管要做的事,也是开发人员所应该具备的基本技能之一。为什么呢?因为有时其他同事在做一些很消耗资源的事情,比如在编译大型程序,可能会导致服务器变得很慢,从而影响我们的正常操作。这个时候,我们就可以通过本文所介绍的方法,揪出那个同事,将他暴打一顿,就可以恢复服务器的正常使用了。

我是谁?

「我是谁?我从哪里来?我要去哪里?」哲学经典三大问题。同样,在工作中,有时候我们会经常进行账号切换,有时切着都忘了切到哪个用户了。这时,需要知道当前登录的用户是啥。我们可以用 whoami 来进行查看。

  1. [alvin@VM_0_16_centos ~]$ whoami 
  2. alvin 

目前都有谁登录到系统里?

一个公司里通常只有少数几台服务器,程序猿们一般都在这几台服务器里工作。我们可以用 who命令来查看当前登录到服务器的用户有哪一些。

  1. [alvin@VM_0_16_centos ~]$ who 
  2. alvin    pts/0        2019-01-20 07:25 (116.199.***.***) 
  3. root     pts/1        2019-01-20 11:05 (116.199.***.***) 
  4. alvin    pts/2        2019-01-20 11:05 (116.199.***.***) 
  5. harry    pts/3        2019-01-20 11:06 (116.199.***.***) 
  6. kate     pts/4        2019-01-20 11:08 (116.199.***.***) 
  7. alvin    pts/5        2019-01-20 11:53 (116.199.***.***) 

在显示结果里,第一列是用户名;第二列是连接的终端,tty 表示显示器,pts 表示远程连接;第三列是登陆时间。

这里信息稍微多一些,但如果我们只想知道谁在线要怎么操作?只需用 users 命令来查看即可。

  1. [alvin@VM_0_16_centos ~]$ users 
  2. alvin alvin alvin harry kate root 

那些登录到系统里的人都在干什么?

知道了谁登录到系统里,我们就可以进一步调查他们在做什么。w 命令用于显示已经登录系统的用户的名称,以及他们正在做的事。该命令所使用的信息来源于/var/run/utmp文件。

  1. [alvin@VM_0_16_centos ~]$ w 
  2.  16:25:54 up 29 days,  6:05,  6 users,  load average: 0.00, 0.01, 0.05 
  3. USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT 
  4. alvin    pts/0    116.199.***.**   07:25    2.00s  0.11s  0.00s w 
  5. root     pts/1    116.199.***.**   11:05    5:20m  0.02s  0.02s -bash 
  6. alvin    pts/2    116.199.***.**   11:05    5:20m  0.04s  0.05s sshd: alvin [priv] 
  7. harry    pts/3    116.199.***.**   11:06    4:33m 18.08s 18.06s watch date 
  8. kate     pts/4    116.199.***.**   11:08    4:33m 10.51s 10.48s top 
  9. alvin    pts/5    116.199.***.**   11:53    4:32m  0.02s  0.02s -bash 

第一行其实与 uptime 命令出来的结果一样,依次表示:当前时间、系统运行时间、当前系统登录用户数、平均负载。

从第二行开始构成一个表格,共有8个栏目,分别显示各个用户正在做的事情及该用户所占用的系统资源。

  1. USER:显示登陆用户帐号名。用户重复登陆,该帐号也会重复出现。 
  2. TTY:用户登陆所用的终端。 
  3. FROM:显示用户在何处登陆系统。 
  4. LOGIN@:是LOGIN AT的意思,表示登陆进入系统的时间。 
  5. IDLE:用户空闲时间,从用户上一次任务结束后,开始记时。 
  6. JCPU:一终端代号来区分,表示在某段时间内,所有与该终端相关的进程任务所耗费的CPU时间。 
  7. PCPU:指WHAT域的任务执行后耗费的CPU时间。 
  8. WHAT:表示当前执行的任务 

如果说我们只想查看某个用户当前的行为,我们可以直接在 w 后跟上该用户名:

  1. [alvin@VM_0_16_centos ~]$ w alvin 
  2.  16:34:21 up 29 days,  6:14,  6 users,  load average: 0.00, 0.01, 0.05 
  3. USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT 
  4. alvin    pts/0    116.199.***.**   07:25    5.00s  0.12s  0.06s sshd: alvin [priv] 
  5. alvin    pts/2    116.199.***.**   11:05    5:28m  0.04s  0.05s sshd: alvin [priv] 
  6. alvin    pts/5    116.199.***.**   11:53    4:40m  0.02s  0.02s -bash 

如何知道当前与过去登录系统的用户的信息?

有些人比较狡猾,做了坏事拒不承认。但是,在 Linux 里,每个用户的登录信息都会记录起来,这样查找相关人员的责任就有所依据。

last命令可用于显示特定用户登录系统的历史记录。如果没有指定任何参数,则显示所有用户的历史信息。在默认情况下,这些信息(所显示的信息)将来源于/var/log/wtmp文件。该命令的输出结果包含以下几列信息:

  • 用户名称
  • tty设备号
  • 历史登录时间日期
  • 登出时间日期
  • 总工作时间
  1. [alvin@VM_0_16_centos ~]$ last 
  2. alvin    pts/5        116.199.***.**   Sun Dec  9 11:53   still logged in 
  3. kate     pts/4        116.199.***.**   Sun Dec  9 11:08   still logged in 
  4. harry    pts/3        116.199.***.**   Sun Dec  9 11:06   still logged in 
  5. alvin    pts/2        116.199.***.**   Sun Dec  9 11:05   still logged in 
  6. root     pts/1        116.199.***.**   Sun Dec  9 11:05   still logged in 
  7. alvin    pts/0        116.199.***.**   Sun Dec  9 07:25   still logged in 
  8. alvin    pts/0        116.199.***.**   Sat Dec  8 20:42 - 23:10  (02:28) 
  9. alvin    pts/0        119.33.***.**    Mon Dec  3 20:50 - 23:51 (1+03:01) 
  10. alvin    pts/0        119.33.***.**    Thu Nov 29 20:20 - 22:45  (02:24) 
  11. alvin    pts/0        223.104.***.**   Thu Nov 29 06:46 - 07:00  (00:14) 
  12. alvin    pts/0        223.104.***.**   Wed Nov 28 20:45 - 22:27  (01:42) 
  13. alvin    pts/1        14.25.***.***    Sun Nov 25 19:50 - 21:09  (01:18) 
  14. alvin    pts/0        119.33.***.**    Sun Nov 25 16:32 - 21:40  (05:07) 

如果我们只想看某个人的历史记录,则在last后跟上对应的用户名即可:

  1. [alvin@VM_0_16_centos ~]$ last alvin 
  2. alvin    pts/5        116.199.***.**   Sun Dec  9 11:53   still logged in 
  3. alvin    pts/2        116.199.***.**   Sun Dec  9 11:05   still logged in 
  4. alvin    pts/0        116.199.***.**   Sun Dec  9 07:25   still logged in 
  5. alvin    pts/0        116.199.***.**   Sat Dec  8 20:42 - 23:10  (02:28) 
  6. alvin    pts/0        119.33.***.**    Mon Dec  3 20:50 - 23:51 (1+03:01) 
  7. alvin    pts/0        119.33.***.**    Thu Nov 29 20:20 - 22:45  (02:24) 
  8. alvin    pts/0        223.104.***.**   Thu Nov 29 06:46 - 07:00  (00:14) 
  9. alvin    pts/0        223.104.***.**   Wed Nov 28 20:45 - 22:27  (01:42) 

踢除使坏人员

通过以上几个命令,我们可以大概知道某些用户的行为。如果我们想要踢除使坏的人员,可以使用 pkill -u 命令。

  1. pkill -u alvin 

但这个命令相当危险,有可能导致系统重启,所以不推荐使用这个命令。比较安全的做法是使用 pkill 命令。

  1. [alvin@VM_0_16_centos ~]$ sudo pkill -kill -t pts/3 
  2. #harry用户已经被踢除了 
  3. [alvin@VM_0_16_centos ~]$ w 
  4.  17:04:37 up 29 days,  6:44,  5 users,  load average: 0.00, 0.01, 0.05 
  5. USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT 
  6. alvin    pts/0    116.199.102.65   07:25    5.00s  0.12s  0.00s w 
  7. root     pts/1    116.199.102.65   11:05    5:59m  0.02s  0.02s -bash 
  8. alvin    pts/2    116.199.102.65   11:05    5:59m  0.04s  0.05s sshd: alvin [priv] 
  9. kate     pts/4    116.199.102.65   11:08    5:12m 11.94s 11.91s top 
  10. alvin    pts/5    116.199.102.65   11:53    5:10m  0.02s  0.02s -bash 

【编辑推荐】

  1. 2018 - 适用于桌面的最佳Linux发行版
  2. Linux 内核开发人员正在讨论删除对 x32 的支持
  3. 从Linux终端查看笔记本电池状态和等级的5个方法
  4. 神奇的Linux命令行字符形状工具boxes
  5. 在Linux中使用SoundConverter轻松转换音频文件格式
【责任编辑:武晓燕 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

精通JBuilder 2006

JBuilder 2006是一款强大的Java企业级开发平台,其集成了几乎所有的Java技术,涵盖了软件开发生命周期的各个过程。本书深入浅出地介绍了JBu...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
阿瓦提学校 宋桥镇 白家店村 黑牛成道 人民大学
玉华乡 赣马镇 南卷 新平旺街道 德巫
澳门二十一点游戏平台 捕鱼达人网页版 葡京网上娱乐 赚钱斗地主 太阳城现金网排名
现金二八杠 澳门威尼斯人官网 澳门真人网上赌场 赌球网 澳门巴比伦赌场
威尼斯人游戏平台 威尼斯人网站 澳门大发888赌场官网 澳门线上正规赌场 澳门真人平台官网
澳门威尼斯人线上网站 新濠天地网上 澳门百老汇网站 澳门百老汇娱乐官网 赌场游戏
老虎机定位器 澳门大富豪网址 现金三公注册网址 牛牛游戏下载 现金骰宝 年度十大电子游戏 大小点游戏 玩什么游戏可以挣钱 电子游戏厅 方法奇葩赌博网 巴黎人网站 pt电子游戏哪个最会爆 澳门巴黎人游戏 澳门龙虎斗注册 澳门大富豪网站 押大小排行 真钱打牌 明升网站 十三水技巧 电子游戏下载 二十一点平台 现金网游戏开户平台 澳门百老汇游戏官网 皇博压大小 真钱捕鱼 跑马机游戏 赌博技巧 巴比伦赌场官网 现金三公 地下网址 捕鱼游戏技巧 英皇网站 手机玩游戏赚钱平台 现金网排行 pt电子游戏注册 赌博技巧 电脑玩游戏赚钱平台 海立方游戏 ag电子游戏排行 希尔顿官网 太阳网上压大小 现金赌钱游戏 现金棋牌游戏 真人网站网址 地下开户 九五至尊娱乐网址 澳门梭哈游戏官网 奇葩袖赌博网 鸿胜国际压大小 博狗扑克游戏 德州扑克游戏规则 庄闲代理 奔驰宝马老虎机下载 现金三公开户注册 免费试玩电子游戏 GT压大小 新濠天地注册 现金老虎机网站 纸牌赌博种类 乐天堂开户 澳门永利平台 电脑版捕鱼达人 玩电子游戏入门 斗牛游戏 bbin压大小 网上电子游戏网址 澳门网络下注平台 明升国际网址 明升娱乐 捕鱼达人电子游戏 mg电子游戏试玩 二十一点游戏赌场 澳门万利赌场官网 大小对比网站 现金电子游戏 电子游戏实用技术 老虎机破解器 澳门梭哈官网 澳门百老汇赌场注册 千炮捕鱼兑换现金 网上合法赌场 PT电子游戏 波克棋牌官方下载 天天棋牌 凤凰棋牌 美少女战士电子游戏 什么游戏可以赚人民币 银河国际娱乐 澳门番摊官网 澳门梭哈官网 胜博发电子游戏 电子游戏打鱼机 澳门现金网 大三巴网站 PT电子游戏 澳门银河国际娱乐