linux下強制踢掉登陸用戶
查看機器中登陸的用戶
[root@sunsyk ~]# w
16:29:02 up 2 days, 2:35, 5 users, load average: 0.03, 0.05, 0.01
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/1 :0.0 Tue15 2days 1:44 0.04s -bash
root pts/2 :0.0 Tue15 46:42m 0.05s 0.05s bash
root pts/3 :0.0 Tue15 2days 0.02s 0.02s bash
root pts/4 172.20.52.114 14:17 58:48 0.16s 0.03s sqlplus
root pts/5 172.20.52.114 15:31 0.00s 0.03s 0.00s w
我把pts/1踢掉(只有root才能去踢掉用戶)
[root@sunsyk ~]# pkill -kill -t pts/1
[root@sunsyk ~]# pkill -kill -t pts/2
[root@sunsyk ~]# pkill -kill -t pts/3
查看是不是踢掉
[root@sunsyk ~]# w
16:34:16 up 2 days, 2:40, 2 users, load average: 0.00, 0.05, 0.02
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/4 172.20.52.114 14:17 1:04m 0.16s 0.03s sqlplus
root pts/5 172.20.52.114 15:31 0.00s 0.03s 0.00s w
以login命令登錄:
在用戶登錄系統期間,除了可使用“su -”命令之外,也可以用“login”命令來改變身份,甚至可以登錄其他的主機。如果用“login”命令來改變身份,只要直接在命令后輸入將要改變的用戶名即可:[root@ns1 root]# login caroline ->改變用戶名為caroline,若要登錄其他的主機,需要使用“-h”參數來配合“login”命令:[root@ns1 root]# login -h linux2 ->登錄名為Linux2的主機。
以rlogin命令登錄:
除了使用“login”命令外,“rlogin”也可以用來登錄遠程主機,它的用法很簡單。下面是一個連接到linux2.jschouse.com的范例:
[root@ns1 root]# rlogin linux2.jschouse.com ->登錄linux2.jschouse.com
password: ****** ->默認是以相同名登陸,所以沒有出現“login”信息
Login incorrect ->如果用來登錄的名稱與當前的用戶名不同,可直接按“Enter”,且忽略錯誤信息
Login: jack ->重新輸入不同的用戶名
Password: ****** ->密碼
/etc/nologin文件的使用:
如果希望只有root可以登錄主機,其他賬號都不可以登錄,可以在/etc目錄下添加名為“nologin”的文件,在該文件中只要隨意輸入幾個字符即可,因為只要系統發現該文件的存在就會禁止其他用戶登錄。
系統注銷:
前面介紹了以“login”命令來改變身份,甚至可以登錄其他的主機,而與login相對的命令“logout”,它可以使目前登錄的用戶注銷系統,以便其他用戶登錄。這個命令的用法很簡單,只要輸入“logout”即可登錄系統:[root@ns1 root]# logout
前面介紹過,Linux系統是一個多用戶操作系統,系統中每一個用戶的使用權限都需要由系統管理員來設定。這一節將介紹一些系統管理員對用戶和用戶組進行管理的命令。
4.6.1 創建新用戶
useradd命令(也可以使用adduser)用來創建新的用戶帳號,其命令格式如下:
表4—19 useradd命令常用選項 |
|
常用現象 |
意 義 |
-d |
設置新用戶的登陸目錄 |
-e |
設置新用戶的停止日期,日期格式為MM/DD/YY |
-f |
帳戶過期幾日后永久停權。當值為0時帳號則立刻被停權。而當值為-1時則關閉此功能。預設值為-1 |
-g |
使新用戶加入群組 |
-G |
使新用戶加入一個新組。每個群組使用逗號“,”隔開,不可以夾雜空白字 |
-s |
指定新用戶的登陸Shell |
-u |
設定新用戶的ID值 |
成功創建一個新用戶以后,在/etc/passwd文件中就會增加一行該用戶的信息,其格式如下:
〔用戶名〕:〔密碼〕:〔UID〕:〔GID〕:〔身份描述〕:〔主目錄〕:〔登陸Shell〕
其中個字段被冒號“:”分成7各部分。
由於小於500的UID和GID一般都是系統自己保留,不用做普通用戶和組的標志,所以新增加的用戶和組一般都是UID和GID大於500的。
例如使用如下命令:
〔root@localhost root〕# useradd user1
將會創建一個名為userl的用戶,關於用戶管理命令已經介紹過,在此也不做更多的介紹了。
執行useradd命令的結果如圖11-13所示。
4.6.2 設置和修改用戶口令passwd
passwd命令用來設置和修改用戶命令,只有超級用戶和用戶自己可以修改密碼,其他的普通用戶沒有修改其他用戶密碼的權利。其命令如下:
# passwd〔用戶名〕
為避免輸入密碼是被人注意到有多少位,Linux並不采用類似Windows的密碼回顯〔顯示為*號〕,所以,輸入的這些字符是看不見的。例如,為新建的userl用戶設置密碼可使用如下命令:
〔root@localhost root〕# passwd user1
根據系統的提示信息輸入兩次密碼,系統會顯示:
passwd ::all authentication tokens updated successfully
表示修改密碼成功了。新建用戶的工作只有在該用戶設置了口令后才算完成,否則無法使用該用戶名登陸。
4.6.3 修改用戶信息usermod
usermod命令用來修改用戶信息,其命令格式如下:
# usermod〔選項〕〔用戶名〕
常用命令選項11-20所示。
表4-20 usermod命令常用選項 |
|
常用選項 |
意 義 |
-d |
更新使用者新的登陸目錄 |
-e |
設置新用戶的停止日期,日期格式為MM/DD/YY |
-f |
帳戶過期幾日后永久停權。當值為0時帳號則立刻被停權。而當值為-1時則關閉此功能。預設值為-1 |
-g |
更新使用者新用戶加入群組 |
-G |
定義使用者為一堆groups的成員。每個群組使用“??”隔開,不可以夾雜空白字 |
-l |
變更用戶登陸時的名稱,同時使用者目錄名也會跟着更動成新的名稱 |
-s |
指定新用戶Shell |
-u |
用戶ID值,必須為唯一的ID值。用戶目錄樹下所用的文檔目錄其userID會自動變更,放在擁護目錄外的文檔則要自行手動更動 |
例如,下面的命令修改用戶信息:
〔root@localhost root〕# usermod –d/home/user2 –s/bin/bash user2
將用戶名user2的主目錄路徑設置在/home/user1,登陸的Shell設置為/usr/bin/gcc。
一般情況下usermod命令會參照命令指令的部分修改用戶帳號信息。但usermod不允許改變正在線上的使用者帳號名稱,因此,當用usermod來改變用戶帳號信息時,必須確認這名沒在電腦上執行任何程序。
4.6.4 新建組群groupadd
groupadd命令用來建立新的用戶組,其命令格式如下:
# groupadd〔選項〕〔用戶名稱〕
常用選項有:
-g:GID值。除非使用-o參數不然該值必須是唯一,不可相同,數值不可為負。
GID值預設為最小不得小於500而逐次增加。0—499傳統上是保留系統帳號使用。
-f:新增的一個已經存在的群組帳號,系統會出現錯誤訊息然后結束groupadd.
如果是這樣的情況,不會新增這個群組(如果是這個情況,系統不會在新增一次)。也可同時加上-g選項,當你加上一個 GID時,此時GID就不用是唯一值,可不加-o參數,建好的群組會顯示建立后的結果(adding a group as neither –g or –o options were specified),這是Red Hat Linux額外增設的選項。
4.6.5 刪除用戶userdel
userdel命令用來刪除已經存在的用戶及相關的文檔,其命令格式如下:
# userdel 〔選項〕用戶名
userdel命令的常用選項:
-r將用戶目錄下的文檔一並刪除。在其他位置上的文檔也將一一找出並刪除。
Userdel不允許移除正在線上的用戶帳號,因此,如果想刪除這類用戶帳號,必須先殺掉用戶在系統上運行的程序才能進行帳號刪除。
4.6.6 刪除群組groupdel
groupdel命令用來刪除已經存在的用戶組,其命令格式如下:
# groupdel組名
同userdel類似,如果有任何一個組內的用戶在上線,就不能移除該用戶組,因此,如果組內有用戶在線的話,最好先移出該用戶,然后在刪除該用戶。
4.6.7 用戶間切換su
su 命令常用於不同用戶間切換。其命令格式如下:
# su〔用戶名〕
su命令的常見用法是變成跟用戶或超級用戶,如果發出不帶用戶名的su命令,則系統提示輸入根口令,輸入之后則可換為根用戶。如果登陸為根用戶,則可以用su命令成為系統上任何用戶而不需要口令。
例如,如果登陸為user1,要切換為user2,只要用如下命令:
# su user2
然后系統提示輸入user2口令,輸入正確的口令之后就可以切換到user2。完成之后就可以用exit命令返回到user1。
4.6.8 查看當前在線用戶who
who命令主要用於查看當前在線上的用戶情況。這個命令非常有用。如果用戶想和其他用戶建立即使通訊,比如使用talk命令,那么首先要確定的就是該用戶確實在線上,不然talk進程就無法建立起來。
又如,系統管理員希望監視每個登陸的用戶此時此刻的所作所為,也要使用who命令。Who命令的常用命令格式和常用選項如下:
# who〔選項〕
命令who常用命令選項如表4-21所示。
表 4-21 命令who常用命令選項
常用選項 |
意 義 |
-a |
顯示所有用戶的所有信息 |
-m |
顯示運行該程序的用戶名,和“who am I”的作用一樣 |
-q |
只顯示用戶的登陸帳號和登陸用戶的數量,該選項優先級高於其他任何選項 |
-u |
在登陸用戶后面顯示該用戶最后一次對系統進行操作距今的時間 |
-H |
顯示列標題 |
所有的選項是可選的,例如,使用命令:
〔root@localhose root〕# who-aH