linux – 写,墙,谁和mesg

前端之家收集整理的这篇文章主要介绍了linux – 写,墙,谁和mesg前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想建立一个拥有大量用户的服务器,以便(按重要性顺序):

>用户无法获取具有who或last的其他用户的ip地址
>用户可以互相写信
>用户可以选择性地消除其他用户,而不是简单地阻止
大家
> [可选]用户无法挂墙

点1可以通过wtmp和utmp上的chmod 660轻松解决,但我不知道如何实现其他点

服务器运行Gentoo Linux

最后的输出是:

last: /var/log/wtmp: Permission denied

w的输出是:

17:04:45 up 36 days,2:51,0 users,load average: 2.34,2.96,2.12
USER     TTY        LOGIN@   IDLE   Jcpu   Pcpu WHAT

解决方法

write命令基本上写入设备文件,例如/ dev / pts / 1.它似乎咨询utmp以便弄清楚用户和ttys之间的对应关系.可以通过简单地用ls -lh / dev / pts列出/ dev / pts的内容解决这个问题(虽然它很可能不需要 – 见下文).

除了从tty设备文件设置或删除组写权限之外,mesg似乎没有做任何其他事情:

anthony@laura:~$who am i
anthony  pts/6        Jun 11 17:06 (:0:S.5)
anthony@laura:~$mesg
is n
anthony@laura:~$chmod g+w /dev/pts/6
anthony@laura:~$mesg
is y

/ dev / pts中的文件属于组tty. write命令setgids到该组以便写入它们.因此,为了使point(2)工作,应该可以使用ACL来使utmp组读取utmp:

setfacl -m g:tty:r /var/run/utmp

(改变utmp以使其组合tty也可能有效,但是谁知道这可能产生什么副作用.)

为了使point(3)工作(假设/ dev / pts文件系统不支持ACL),我相信您需要修改write并在其中实现其功能(例如,读取文件“allow_mesg”in目标用户的主目录,并查看消息用户是否列在其中).

原文链接:https://www.f2er.com/linux/399599.html

猜你在找的Linux相关文章