对于每个ssh连接,都有一个关联的伪终端设置,如/dev/ttyp1 /dev/ttyp2
等。
在openssh的某些代码路径中,/ dev / ttyp2权限从crw-rw-rw-
(默认)更改为crwx-w----
(连接设置后)。
有什么方法可以在openssh中看到哪个代码部分执行此操作? 可以使用gdb调试器,有什么办法可以“监视”特定文件的权限。
在openssh的某个函数中,session *s
作为参数,s->tty
设置为/dev/ttyp2
,到那时perms没有设置'x'
执行位。
但是在完全建立连接后,/ dev / ttyp2会设置'x'位。
我试着在s->tty
变量的地址上观看,但这没有帮助。
有什么想法吗?
答案 0 :(得分:0)
在openssh / sshpty.c中存在一个函数pty_setowner(),它实际上在为会话分配的tty设备上执行chmod。
我遇到的问题是chmod在tty dev文件上失败,而tty dev文件没有获得执行权限,因此我的终端上没有打印日志。
非常感谢。