linux 杀掉某用户的全部进程
ps -ef | grep ^oracle | cut -c 10-15 | xargs kill -9
参考cut的用法:http://blog.csdn.net/zsf8701/article/details/7718680
ps -ef | grep ^oracle | cut -c 10-15 | xargs kill -9
参考cut的用法:http://blog.csdn.net/zsf8701/article/details/7718680
参考:http://baike.baidu.com/link?url=3MShV9QMO4ru0NUXK3-CiGczfQGsFQ18tWVvv3RDX3EQoq0KHOd5oaOIc2PS0mvHZBUM63fE60p0ncmIOqfyi_
它的作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题。
xargs 可以读入 stdin 的资料,并且以空白字元或断行字元作为分辨,将 stdin 的资料分隔成为 arguments 。 因为是以空白字元作为分隔,所以,如果有一些档名或者是其他意义的名词内含有空白字元的时候, xargs 可能就会误判了,如果需要处理特殊字符,需要使用-0参数进行处理。
如 文件list中以换行为分隔符,有以下字段
1 2 3 4 5 6 7 |
/home/train/rm $vi list "list" aa bb cc dd ee |
下面将list文件中的内容作为输入,将该输入作为touch的argument,批量创建5个文件
1 2 3 4 |
/home/train/rm $cat list | xargs touch /home/train/rm $ls aa bb cc dd ee list /home/train/rm $ |
使用命令:w
1 2 3 4 5 6 7 |
[root@localhost ~]# w 17:30:28 up 4 days, 36 min, 4 users, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 :0 04Jun15 6days 19.87s 19.87s /usr/bin/Xorg : root pts/0 :0.0 Mon09 2days 0.01s 0.01s /bin/bash <strong>root pts/1 172.16.116.1 17:30 2.00s 0.04s 0.04s -bash</strong> root pts/3 172.16.116.1 15:07 4.00s 0.24s 0.11s w |
踢掉前文中加粗的17:30登录进来的用户
1 2 3 4 5 6 7 |
[root@localhost ~]# pkill -kill -t pts/1 [root@localhost ~]# w 17:33:14 up 4 days, 39 min, 3 users, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 :0 04Jun15 6days 19.88s 19.88s /usr/bin/Xorg : root pts/0 :0.0 Mon09 2days 0.01s 0.01s /bin/bash root pts/3 172.16.116.1 15:07 2.00s 0.14s 0.01s w |
使用kill杀掉该用户的pts进程
杀掉banana用户:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
[root@localhost ~]# w 17:36:55 up 4 days, 42 min, 5 users, load average: 0.29, 0.13, 0.08 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 :0 04Jun15 6days 21.26s 21.26s /usr/bin/Xorg : root pts/0 :0.0 Mon09 2days 0.01s 0.01s /bin/bash root pts/3 172.16.116.1 15:07 7.00s 0.22s 0.08s w root pts/1 :0.0 17:36 23.00s 0.00s 0.00s /bin/bash banana tty7 :1 17:36 6days 2.97s 0.19s pam: gdm-passwo [root@localhost ~]# ps -ef | grep tty7 root 47850 47846 2 17:34 tty7 00:00:03 /usr/bin/Xorg :1 -br -verbose -audit 4 -auth /var/run/gdm/auth-for-gdm-efS0YG/database -nolisten tcp root 48408 45998 0 17:37 pts/3 00:00:00 grep tty7 [root@localhost ~]# kill -9 47846 [root@localhost ~]# w 17:38:21 up 4 days, 44 min, 5 users, load average: 0.86, 0.51, 0.23 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 :0 04Jun15 6days 21.26s 21.26s /usr/bin/Xorg : root pts/0 :0.0 Mon09 2days 0.01s 0.01s /bin/bash root pts/3 172.16.116.1 15:07 5.00s 0.16s 0.01s w root pts/1 :0.0 17:36 1:49 0.00s 0.00s /bin/bash |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<strong># who am i</strong> root pts/5 Jun 08 00:50 (172.17.246.250) <strong># who</strong> train pts/0 Jun 08 00:27 (172.17.246.250) train pts/1 Jun 08 00:28 (172.17.251.8) root pts/2 Jun 08 00:55 (172.17.246.250) train pts/3 Jun 08 00:49 (172.17.246.250) train pts/4 Jun 08 00:49 (172.17.246.250) root pts/5 Jun 08 00:50 (172.17.246.250) <strong># finger root</strong> Login name: root Directory: / Shell: /usr/bin/ksh On since Jun 08 00:55:46 on pts/2, 2 minutes 26 seconds Idle Time from 172.17.246.250 On since Jun 08 00:50:57 on pts/5, 20 seconds Idle Time from 172.17.246.250 No Plan. |
1 2 3 4 5 6 |
# wall hehe Broadcast message from root@training (pts/5) at 01:07:36 ... hehe |
1 2 |
# write train pts/6 (退出命令) |
压缩并加密文件
1 2 3 4 5 6 |
[root@banana try]# zip -e try.zip try_encrypt Enter password: Verify password: adding: try_encrypt (stored 0%) [root@banana try]# ls try_encrypt try_encrypt02 try.zip |
压缩并加密文件夹
1 2 3 4 5 6 7 8 9 10 |
[root@banana Desktop]# zip -re try.zip backup_ver1.py try/ [root@banana Desktop]# zip -re try.zip try/ Enter password: Verify password: adding: try/ (stored 0%) adding: try/try_encrypt02 (stored 0%) adding: try/try_encrypt (stored 0%) [root@banana Desktop]# ls backup_ver1.py try try.zip |
解压需要密码:
1 2 3 4 5 6 |
[root@banana Desktop]# unzip try.zip Archive: try.zip [try.zip] try/try_encrypt02 password: replace try/try_encrypt02? [y]es, [n]o, [A]ll, [N]one, [r]ename: A extracting: try/try_encrypt02 extracting: try/try_encrypt |
就是这样。。。挺简单的
安全性嘛,基本上就防防君子和小白的节奏。因为设置密码的过程很容易被获取到,敏感信息采用其他方式。
学了白学。。。还是找别的方法吧
参考(鸟哥):http://linux.vbird.org/linux_basic/0410accountmanager.php
使用者识别码即UID(User ID)与GID(Group ID)。
linux是通过数字ID来识别用户及组的。
用户为账号的命名仅仅是为了便于用户记忆。命名及账号ID的对应在/etc/passwd中。
如下,banana账号,UID=500,GID=500。
1 2 |
[root@banana ~]# grep 'banana' /etc/passwd banana:x:500:500:banana:/home/banana:/bin/bash |
查看banana的home目录的所属,用户和组都是banana。
1 2 |
[root@banana ~]# ll -d /home/banana drwx------. 4 banana banana 4096 Apr 24 00:20 /home/banana |
现修改banana在/etc/passwd中的UID为2000,使目录号不能在/etc/passwd文件中找到对应的用户名。
1 2 3 4 5 6 |
[root@banana ~]# vim /etc/passwd …… banana:x:2000:500:banana:/home/banana:/bin/bash "/etc/passwd" 34L, 1624C written [root@banana ~]# ll -d /home/banana/ drwx------. 4 500 banana 4096 Apr 24 00:20 /home/banana/ |
如上,再看/home/banana/目录,其用户变成了500。因为linux系统对目录的登记都是使用UID+GID,当管理员查看的时候,linux再持着ID去/etc/passwd文件找到管理员登记的命名,然后将该命名返回给管理员。
由于我们修改了/etc/passwd文件中500这个用户的记录条目,linux持着目录所有者登记的UID号500到/etc/passwd文件中查不到记录(原UID500改为2000),所以只好将UID本身返回给管理员。
完成本实验后,我们将修改复原,避免遗留错误。
1 2 3 4 |
[root@banana ~]# vim /etc/passwd …… banana:x:500:500:banana:/home/banana:/bin/bash "/etc/passwd" 34L, 1623C written |
Tips:
舉例來說,如果上面的測試最後一個步驟沒有將 2000 改回原本的 UID,那麼當 dmtsai 下次登入時將沒有辦法進入自己的家目錄! 因為他的 UID 已經改為 2000 ,但是他的家目錄 (/home/dmtsai) 卻記錄的是 503 ,由於權限是 700 , 因此他將無法進入原本的家目錄!是否非常嚴重啊?——鸟哥
linux用户登录到shell界面进行操作的过程如下:
输入密码后,系统的操作:
由上可知,/etc/passwd、/etc/shadow文件非常重要,备份系统时需要备份。
每行代表一个账号,除了管理员添加的账号,还有系统账号为系统内建账号。
1 2 3 4 5 |
[root@banana ~]# head -n 4 /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin |
用“:”分隔,一共有7个字段。按顺序依次是:
id 範圍 | 該 ID 使用者特性 |
0 (系統管理員) |
當 UID 是 0 時,代表這個帳號是『系統管理員』! 所以當你要讓其他的帳號名稱也具有 root 的權限時,將該帳號的 UID 改為 0 即可。 這也就是說,一部系統上面的系統管理員不見得只有 root 喔! 不過,很不建議有多個帳號的 UID 是 0 啦~ |
1~499 (系統帳號) |
保留給系統使用的 ID,其實除了 0 之外,其他的 UID 權限與特性並沒有不一樣。預設 500 以下的數字讓給系統作為保留帳號只是一個習慣。由於系統上面啟動的服務希望使用較小的權限去運作,因此不希望使用 root 的身份去執行這些服務, 所以我們就得要提供這些運作中程式的擁有者帳號才行。這些系統帳號通常是不可登入的, 所以才會有我們在第十一章提到的 /sbin/nologin 這個特殊的 shell 存在。根據系統帳號的由來,通常系統帳號又約略被區分為兩種: 1~99:由 distributions 自行建立的系統帳號; 100~499:若使用者有系統帳號需求時,可以使用的帳號 UID。 |
500~65535 (可登入帳號) |
給一般使用者用的。事實上,目前的 linux 核心 (2.6.x 版)已經可以支援到 4294967295 (2^32-1) 這麼大的 UID 號碼喔! |
上面這樣說明可以瞭解了嗎?是的, UID 為 0 的時候,就是 root 呦!所以請特別留意一下你的 /etc/passwd 檔案!
这是存密码的文件。是从/etc/passwd第二栏分出来的,
1 2 3 4 5 |
[root@banana ~]# head -n 4 /etc/shadow root:$6$53JDYaqzK4eNc8Gr$kK.ewOngKMz3RSLBPfPSp/3/dNraw7WHGXZzJ55Mnm3.bmPPVE1InZ5LzMXH/yz4YHTmSEcCbqW2nklbl1RE/.:16548:0:99999:7::: bin:*:15980:0:99999:7::: daemon:*:15980:0:99999:7::: adm:*:15980:0:99999:7::: |
一共9个字段,按顺序依次是:
|
上述指令中,2008/09/04 為你想要計算的日期,86400 為每一天的秒數, %s 為 1970/01/01 以來的累積總秒數。 由於 bash 僅支援整數,因此最終需要加上 1 補齊 1970/01/01 當天。
Tips:
假如忘记了普通用户的密码,可以直接使用root账户修改:
1 2 3 |
[root@banana ~]# passwd banana Changing password for user banana. New password: |
假如忘记了root的密码,就需要进入单用户模式进行修改,
单模式请看链接:http://bananalighter.com/linux-single-user-change-password/
未完续不下去了。。。性价比有点低,自己默默看
好长:http://linux.vbird.org/linux_basic/0410accountmanager.php#account_id
.1.重启电脑,按方向键进入内核选择界面
2.按e进入命令编辑界面
3.选择kernel那一行
4.按e进入编辑该启动命令
5.行尾加上:空格+single
回车保存,并返回上一级
7.按b进行引导,进入单用户模式
蓝后就可以修改密码啦,啦啦啦
1 |
du -sh * |
1 2 3 |
#查看未释放文件的进程,并杀死 lsof | grep delete kill -9 pid |
原文:http://www.cnblogs.com/itech/archive/2012/05/15/2502284.html
一、inode是什么?
使用ls -i命令,可以看到文件名对应的inode号码:
ln命令可以创建硬链接:
九 实际问题
在一台配置较低的Linux服务器(内存、硬盘比较小)的/data分区内创建文件时,系统提示磁盘空间不足,用df -h命令查看了一下磁盘使用情况,发现/data分区只使用了66%,还有12G的剩余空间,按理说不会出现这种问题。 后来用df -i查看了一下/data分区的索引节点(inode),发现已经用满(IUsed=100%),导致系统无法创建新目录和文件。
查找原因:
/data/cache目录中存在数量非常多的小字节缓存文件,占用的Block不多,但是占用了大量的inode。
解决方案:
1、删除/data/cache目录中的部分文件,释放出/data分区的一部分inode。
2、用软连接将空闲分区/opt中的newcache目录连接到/data/cache,使用/opt分区的inode来缓解/data分区inode不足的问题:
ln -s /opt/newcache /data/cache
1 2 3 |
[root@hadoop01 ~]# locale -a | grep 18030 zh_CN.gb18030 [root@hadoop01 ~]# |
1 2 3 4 |
[root@hadoop01 ~]# vim /etc/sysconfig/i18n LANG="en_US.UTF-8" SYSFONT="latarcyrheb-sun16" |
1 2 |
LANG="zh_CN.gb18030" SYSFONT="latarcyrheb-sun16" |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[root@hadoop01 ~]# locale LANG=zh_CN.gb18030 LC_CTYPE="zh_CN.gb18030" LC_NUMERIC="zh_CN.gb18030" LC_TIME="zh_CN.gb18030" LC_COLLATE="zh_CN.gb18030" LC_MONETARY="zh_CN.gb18030" LC_MESSAGES="zh_CN.gb18030" LC_PAPER="zh_CN.gb18030" LC_NAME="zh_CN.gb18030" LC_ADDRESS="zh_CN.gb18030" LC_TELEPHONE="zh_CN.gb18030" LC_MEASUREMENT="zh_CN.gb18030" LC_IDENTIFICATION="zh_CN.gb18030" LC_ALL= |