安全初始化ttys

时间:2012-08-04 18:44:47

标签: linux tty

在Linux中安全地初始化tty的正确方法是什么,例如gettys或登录?似乎没有便携式(如Posix)解决方案。据我所知,我会找到相关文档(省略错误处理):

  1. 如果不是会话负责人[getsid,setsid]
  2. ,则创建新会话
  3. open tty(按惯例成为控制终端)[open,isatty]
  4. 设置所有者/群组/权限[fchown,fchmod]
  5. 关闭stdin,stdout,stderr和tty的关闭文件描述符[close](LKML
  6. 忽略vhangup的SIGHUP [sigemptyset,sigaction]
  7. 挂起tty [vhangup]
  8. 将SIGHUP处理设置为默认行为[sigemptyset,sigaction]
  9. reopen tty [open]
  10. 将tty文件描述符复制到stdin,stdout,stderr [dup]
  11. 与其他实现相比,他们明确设置控制终端或测试面向字符的设备文件:

    • fgetty:ioctl with TIOCSCTTY
    • agetty:ioctl with TIOCSCTTY,TIOCNOTTY,fstat for S_IFCHR
    • mingetty:两次ioctl与TIOCSCTTY

    这有必要吗?目标只是哑终端,没有串行设备或调制解调器。 vhangup()是如何工作的,尤其是关于这些步骤之间的竞争条件?

0 个答案:

没有答案