如何通过linux命令根据某一列值唯一来过滤数据

 我来答
不忘心中鹊桥会
推荐于2017-09-04 · TA获得超过917个赞
知道小有建树答主
回答量:383
采纳率:0%
帮助的人:312万
展开全部
你可以这样做:
(1)为Server的那些使用者建立单独的账户,例如:user01、user02....等等(可以给每个人建立一个单独的账户。当然,为了使系统中的账户不至于太多而导致难以管理,也可以按照他们所在的部门、项目组(或工作组)、或是其它分类方式去建立账户)。
(2)对每个账户下的$HOME/.profile文件或者是$HOME/.cshrc文件(视不同用户的SHELL来决定,例如:bsh和sh就是.profile,csh就是.cshrc),用
chown root:root ... (例如: chown root:root .cshrc)
命令将它们改成root用户及属组所有,只有root用户才可以更改它们。
(3)在每个用户的$HOME/.profile或是$HOME/.cshrc等shell环境配置文件中,将你认为是危险的命令做以下的转换:

alias 命令名='echo 管理员不运行执行该命令'

例如: alias format='echo 管理员不运行执行该命令'

这样这些用户就无法执行你限定的命令,执行之后都显示“管理员不运行执行该命令”。

如果觉得改.profile或是.cshrc文件不保险,还可以在每个用户的$HOME下建立.login文件,也用上述的方法将它改成root用户属组的,在里面加入

alias 命令名='echo 管理员不运行执行该命令'

效果更好。

----看到了你的问题追加。我觉得要是大家都只能使用root账户,那么这个系统的规划是否合理?假如一定都要使用root账户的话,对于每个用户在键入命令的过程中,你很难去捕获他们都正在敲入什么命令。只有等他们在命令行上都输入完了,回车确认之后才可能去发现他们执行的进程。假如真有这样的一个监控程序在你的系统中,就算是监控到了,那么那些进程已经开始运行了,对很多人来说已经是无法收拾了,只有及时的杀掉那些进程了。建议你把敏感的命令给rename了算了,例如mv format frmt

----呵呵,你也够执着的。既然一定要写个程序,那我就说说大概的思路吧!具体的程序代码你可以自己去写,这样也有些成就感。:)
不过我能保证,就算采用这样的做法也不会取得什么好的效果,尤其是大家都使用root账户。我用unix类操作系统近十年,听我一句劝告不会有什么害处啊!

程序思路:
(1)定义你的敏感命令列表(可以赋值给一个字符串数组)。
(2)获取你本人在系统中当前的tty编号,以及你自己的IP地址(你是从哪个IP地址发起的telnet?如果你本人使用Console,也需要如此)。
(3)按照你的敏感命令列表,循环检测除了自己的tty及IP地址之外的,其它tty及IP地址发起的敏感命令进程,如果发现,立即予以kill -9。并向相应的tty发送警告信息。

注意:这个循环是无限循环;这个程序是一个守护进程(Daemon)。除非接到进程中止信号,否则它将一直运行。这样做的缺点是,循环检测并杀掉那些敏感进程的过程并不能确保实时性,在发现相应的进程时,那些进程可能已经运行了一小段时间,尽管这段时间非常非常的短,但是也可能已经产生了效力甚至是危害。不过,这也是没办法的事情了。谁要你非要这样呢?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式