如何设置linux系统的自动注销时间(tmout)? (linux tmout)

如何设置Linux系统的自动注销时间(tmout)?

Linux系统是一种广受欢迎的操作系统,因为它灵活、强大且具有高度定制化。作为一名经常在Linux系统上工作的管理员,您可能需要知道如何设置Linux系统的自动注销时间(tmout),以自动注销处于空闲状态的用户。

自动注销是一种非常有用的功能,在许多情况下,它可以帮助你保持安全,避免未经授权的用户访问系统。在这篇文章中,我们将告诉您如何在Linux系统上设置自动注销时间(tmout)。

1. 理解tmout

在开始之前,让我们先了解一下tmout是什么。tmout是一个环境变量,它指定用户在长时间未使用时自动注销的时间量。如果您想为所有的用户或特定用户设置自动注销时间,那么你需要修改该环境变量。

2. 设置全局自动注销时间

如果您想为系统的所有用户设置自动注销时间,那么您可以在系统的/etc/profile文件中设置环境变量$TMOUT。打开文件并添加以下行:

TMOUT=600

在这个示例中,$TMOUT被设置为600秒,也就是10分钟。你可以将计时器调整为您所需的任何时间。

保存文件并退出。在这一点上,如果您不想等待会话到期,您可以注销并登录以启用全局自动注销。当一位用户在一定时间内没有在终端上执行任何操作,该用户的会话将被注销。

3. 设置特定用户自动注销时间

如果您想为特定用户设置自动注销时间,那么您可以修改该用户的个人配置文件~/.bashrc。在这个文件中,您可以设置tmout变量来指定注销时间。

打开您要设置注销时间的用户的.bashrc文件:

vim ~/.bashrc

添加以下行:

TMOUT=600

保存并退出文件。当该用户在一定时间内没有在终端上执行任何操作,他的会话将被注销。在文件中插入此代码后,您还可以使用以下命令来立即应用更改:

source ~/.bashrc

4. 永久保存设置

如果您想要永久保留自动注销设置,那么您需要在系统的/etc/bashrc文件中添加以下行:

if [ $TMOUT ]; then

readonly TMOUT

export TMOUT

fi

这将确保将永久保存您的自动注销时间设置,在用户注销或重新启动系统后仍然有效。如果您不想使这些设置永久保存,你可以跳过这一步。

5. 测试自动注销

现在,您已经设置了Linux系统的自动注销时间,可以测试此设置是否生效。打开一个终端窗口并登录到该系统上。不要在终端中执行任何操作,并检查在给定时间内是否自动注销了您的会话。

综上所述,Linux系统的自动注销时间设置是保护系统安全的重要措施之一。通过开启自动注销功能,您可以确保在长时间未使用时系统和数据得到保护。无论您是作为管理员在系统上工作还是作为用户远程登录,学习如何设置自动注销时间将使您的工作更安全和高效。

相关问题拓展阅读:

Linux如何清空Socket缓冲区

socket不是这么接收数据的由于socket是以数据流的形式发送数据,接收方不知道对方一次性发送了多少数据,也能保证对方一次性发送的数据能在同一刻接收到,所以Receive方法是这么工作的:接受一个byye类型的参数作为缓冲区,在经过一定的时间后把接收到的数据填充到这个缓冲区里面,并且返回实际接收到数据的长度,这个实际接收到的数据长度有可能为0(没有接收到数据)、大于0小于缓冲区的长度(接收到数据,但是没有我们预期的多)、等于缓冲区的长度(说明接收到的数据大于等于我们预期的长度)。每次接收缓冲区都用同一个byte byteMessage,并且你没有检查接收到誉竖的数据长度,所以之一次你接收到的数据是123456,第二次你只接收到了8,但是缓冲区里面还有23456,所以加起来就是823456了。socket接收缓冲区的大小有讲究,设置大了接收起来慢,因为它要等尽可能多的数据接收到了再返回;设置小了需要重复多次调用接收方法才能把数据接收完,socket有个属性,标识了系统默认的接收缓冲区大小,可以参考这个!  还有就是用recv读取,但是由于不知道缓存里有多少数据,如果是阻塞模式,到最后必然等到超时才知道数据已经读取完毕,这是个问题。  另一个是用fgetc,通过返回判断是否是feof:  whlie (1) { a=fgetc(f);if (feof(f)) break;//…  b=fgetc(f);if (feof(f)) break;//…  }  当然,我不知道读取完毕后最后一次调用fgetc会不会堵塞,需要测试。  在非阻塞模式下,我们用recv就可以轻松搞定了,但是阻塞模式下,由于我们不知道缓冲区有多少数据,不能直接调用recv尝试清除。  搭升使用一个小小的技巧,利用select函数,我们可以轻松搞定这个问题:  select函数用于监视一个文件描述符,如果中的描述符没有变化,则一直阻塞在这里,直到超时时间到达;在超时时间内,一旦某个描述符触发了你所关心的事件,select立即返回,通过检索文件描述符处理相应事件;select函数出错则返回小于零的值,如果有事件触发,则返回触发事件的描述符个数;如果超时,返回0,即没有数据可读。  重点在于:我们可以用select的超时特性,将超时时间设置为0,通过检测select的返回值,就可以判断缓冲是否被清空。通过这个技巧,使一个阻塞的socket成了‘非阻塞’socket.  现在就可以得出解决方案了:使用select函数来监知虚老视要清空的socket描述符,并把超时时间设置为0,每次读取一个字节然后丢弃(或者按照业务需要进行处理,随你便了),一旦select返回0,说明缓冲区没数据了(“超时”了)。  struct timeval tmOut;tmOut.tv_sec = 0;tmOut.tv_usec = 0;fd_set fds;FD_ZEROS(&fds);FD_SET(skt, &fds);  int nRet;  char tmp;  memset(tmp, 0, sizeof(tmp));  while(1)  { nRet= select(FD_SETSIZE, &fds, NULL, NULL, &tmOut);if(nRet== 0) break;recv(skt, tmp, 1,0);}  这种方式的好处是,不再需要用recv、recvfrom等阻塞函数直接去读取,而是使用select,利用其超时特性检测缓冲区是否为空来判断是否有数据,有数据时才调用recv进行清除。  有人说同样可以用recv和socket的超时设置去清空啊,这个没错,但是你需要直接对socket描述符设置超时时间,而为了清空数据而直接修改socket描述符的属性,可能会影响到其他地方的使用,造成系统奇奇怪怪的问题,所以,不推荐使用。

如何利用linux网络协议远程更新操作系统

一、引言

  一般情况下,我们都是利用软驱或光驱引导Linux后,再通过本地的光驱安装Linux。但是,这种安装方法在以下的几种情况下就不能适用:

  无软驱和光驱:很多公司为了节省成本,计算机一般都不带光驱或软驱,这样就无法通过本地安装Linux;

非标准的软驱和光驱:虽然笔记本都会配置光驱,但是并不一定都是标准的IDE设备,有些是通过USB接口,有些是通过1394接口(例如Samsung的Q10)。在Linux安装时所引导的Linux内核一般都不会带这些接口的驱动,所以也无法通型颤过本地安装Linux;

另外,在一些场合,如机房中,有大量的计算机需要同时安装Linux,如果通过光驱的方式一个个安装,不仅效率低,也不利于维护。

  笔者在工作过程中,就遇到过第二种情况。一台Samsung的Q10笔记本需要安装Redhat Linux 8.0,但是通过亏信光驱引导后发现,安装程序无法访问光盘。针对这个问题,笔者经过查阅资料和摸索,找到了在Q10上安装Linux的方法。在下面的讨论中,如不做特别声明,都将以Q10为例,介绍如何通过PXE Bootrom来远程安装Linux。

  二、基本原理

  1) 什么是PXE

  PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络启动。协议分为client和server两端,PXE client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行。

  PXE协议的成功运行需要解决以下两个问题:

  既然是通过网络传输,那么计算机在启动时,它的IP地址由谁来配置;

通过什么协议下载Linux内核和根文件系统

 卜空败 对于之一个问题,可以通过DHCP Server解决,由DHCP server来给PXE client分配一个IP地址,DHCP Server是用来给DHCP Client动态分配IP地址的协议,不过由于这里是给PXE Client分配IP地址,所以在配置DHCP Server时,需要增加相应的PXE特有配置。

  至于第二个问题,在PXE client所在的ROM中,已经存在了TFTP Client。PXE Client使用TFTP Client,通过TFTP协议到TFTP Server上下载所需的文件。

  这样,PXE协议运行的条件就具备了,下面我们就来看看PXE协议的工作过程。

2) 工作过程

在上图中,PXE client是需要安装Linux的计算机,TFTP Server和DHCP Server运行在另外一台Linux Server上。Bootstrap文件、配置文件、Linux内核以及Linux根文件系统都放置在Linux Server上TFTP服务器的根目录下。

  PXE client在工作过程中,需要三个二进制文件:bootstrap、Linux 内核和Linux根文件系统。Bootstrap文件是可执行程序,它向用户提供简单的控制界面,并根据用户的选择,下载合适的Linux内核以及Linux根文件系统。

  三、步骤

  有了前面的背景知识,接下来就可以正式操作了,下面按照顺序给出了操作步骤:

  1) 配置DHCP Server

  选用ISC dhcp-3.0,DHCP Server的配置文件是/etc/dhcpd.conf,配置文件的内容如下:

option space PXE;

option PXE.mtftp-ip code 1 = ip-address;

option PXE.mtftp-cport code 2 = unsigned integer 16;

option PXE.mtftp-sport code 3 = unsigned integer 16;

option PXE.mtftp-tmout code 4 = unsigned integer 8;

option PXE.mtftp-delay code 5 = unsigned integer 8;

option PXE.discovery-control code 6 = unsigned integer 8;

option PXE.discovery-mcast-addr code 7 = ip-address;

class “pxeclients” {

match if substring (option vendor-class-identifier, 0, 9) = “PXEClient”;

option vendor-class-identifier “PXEClient”;

vendor-option-space PXE;

# At least one of the vendor-specific PXE options must be set in

# order for the client boot ROMs to realize that we are a PXE-compliant

# server. We set the MCAST IP address to 0.0.0.0 to tell the boot ROM

# that we cant provide multicast TFTP (address 0.0.0.0 means no

# address).

option PXE.mtftp-ip 0.0.0.0;

# This is the name of the file the boot ROMs should download.

filename “pxelinux.0”;

# This is the name of the server they should get it from.

next-server 192.168.0.1;

}

ddns-update-style interim;

ignore client-updates;

default-lease-time 1200;

max-lease-time 9200;

option subnet-mask 255.255.255.0;

option broadcast-address 192.168.0.255;

option routers 192.168.0.254;

option domain-name-servers 192.168.0.1,192.168.0.2;

option domain-name “mydomain.org”;

subnet 192.168.0.0 netmask 255.255.255.0 {

range 192.168.0.10 192.168.0.100;

}

host q10 {

hardware ethernet 00:00:F0:6B:38:5B;

fixed-address 192.168.0.22;

}

  

  dhcpd.conf配置文件中几个关键部分说明如下:host q10{…}定义了笔记本Q10网卡的MAC地址与IP地址的对应关系,表明DHCP Server为Q10分配一个固定的IP:192.168.0.22;filename “”指定bootstrap的文件名;netx-server指定TFTP Server的地址。其它的配置请读者参考DHCP Server的手册。

  2) 配置TFTP server

  选用tftp-hpa,TFTP Server的配置文件是/etc/xinetd.d/tftp,配置文件的内容如下:

  

  service tftp

{

socket_type = dgram

protocol = udp

wait = yes

user = root

server = /usr/in/in.tftpd

server_args = -u nobody -s /tftpboot

disable = no

per_source = 11

cps =

}

这里制定了/tftpboot为TFTP Server的根目录位置。

3) 配置bootstrap

  bootstrap文件在dhcpd.conf中被指定为pxelinux.0文件,放置在/tftpboot。Linux内核以及Linux根文件系统也放置在/tftpboot。pxelinux.0在执行过程中,要读配置文件,所有的配置文件都放在/tftpboot/pxelinux.cfg/目录下。由于PXElinux具有为不同的PXE Client提供不同的Linux内核以及根文件系统的功能,所以要通过不同的配置文件名来区分出不同的PXE Client的需求。比如一个PXE Client由DHCP Server分配的IP地址为192.168.0.22,那么相对应的配置文件名为/tftpboot/pxelinux.cfg/C0A80016(注:C0A80016为IP地址192.168.0.22的十六进制表示)。如果找不到,就按照顺序C0A80016-> C0A8001-> C0A800-> C0A80-> C0A8-> C0A-> C0-> C->default查找配置文件。

  /tftpboot/pxelinux.cft/C0A80001配置文件的具体内容如下:

  DEFAULT install

  PROMPT 1

  LABEL install

  KERNEL vmlinuz

  APPEND initrd=initrd.img devfs=nomount ramdisk_size=16384

  此配置文件指定了Linux内核以及根文件系统的名称,并给内核传递了一些参数,其中ramdisk_size参数要非常注意,它指定Linux内核启动后建立ramdisk的大小,如果设置太小,Linux的安装过程就可能无法进行。

  4) 制作Linux内核/根文件系统

  因为需要通过网络安装,所有选择Redhat Linux 8.0安装盘(disk #1)中E:imagesootnet.img(光驱的盘符为E:)。bootnet.img包括Linux内核、Linux根文件系统(有安装程序在内)。用bootnet.img制作一张引导软盘,方法在DOS命令行运行E:dosutils awrite E:imagesootnet.img,根据提示制作。制作完毕后,将引导软盘中的vmlinuz(Linux内核)和initrd.img(Linux根文件系统)拷贝到Linux Server的/tftpboot下。

  5) 启动DHCP Server/TFTP Server

  在Linux Server上,运行service dhcpd start和service xinetd restart。

  6) 启动Q10

  Q10加电后,在出现Samsung公司徽标时,在左下角会提示用户按F12进入网络引导。按F12后,Q10进入网络引导过程。首先通过DHCP Server获得了IP地址,然后下载并执行bootstrap文件pxelinux.0;在执行中,读入配置文件/tftpboot/pxelinux.cfg/C0A80016。此时屏幕上出现boot:,敲入install,就进入了Redhat Linux 8.0的网络安装界面,一切OK!

  四、结束语

  虽然以上的讨论是针对Samsung Q10笔记本,但是工作原理和安装方法对于其它类型的计算机也是适用的,不过要记住,计算机的网卡中必须要有BootROM–PXE Client。同时,PXE协议也可作为无盘Linux技术,用于引导放置在远程的Linux。实际上,只要根据需要,在Pxelinux的配置文件的APPEND选项中,为Linux内核传进需要mount的文件系统的位置参数即可。

关于linux tmout的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 如何设置linux系统的自动注销时间(tmout)? (linux tmout)