侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux login命令详解:如何登录系统开启新会话(附实例教程和注意事项)

Linux login命令介绍

Linux login命令是用来开始一个新的系统会话的。它通常是在用户的终端上响应"login:"提示时自动调用的。login命令可能是shell的特殊命令,也可能不是作为子进程调用的。当从一个shell中调用login时,应该使用exec login,这样可以使用户退出当前的shell(并且防止新登录的用户返回到调用者的会话)。如果需要,用户会被提示输入密码。为了防止泄露密码,回显会被禁用。只有有限的密码失败次数是允许的,之后login会退出,通信链路也会被切断。如果用户账户启用了密码过期功能,用户可能会在继续之前被提示输入一个新的密码。在这种情况下,必须提供旧密码和新密码才能继续。

Linux login命令适用的Linux版本

Linux login命令可以在多数Linux发行版(如Debian、Ubuntu、Alpine、Arch Linux、Kali Linux、RedHat/CentOS、Fedora、Raspbian)的主要终端命令解释器(包括bash、zsh、csh、ksh、fish、tcsh)中使用。但是,不同的发行版可能会使用不同的配置文件和PAM模块来控制login的行为。例如,Ubuntu和Debian使用/etc/login.defs和/etc/pam.d/login文件,而Fedora和CentOS使用/etc/security/limits.conf和/etc/pam.d/system-auth文件。因此,如果要修改login的一些设置,如登录重试次数,登录超时时间,登录限制等,需要根据不同的发行版来编辑相应的文件。

Linux login命令的基本语法

语法格式

login [-p] [-h host] [ username] [ ENV = VAR ...]
login [-p] [-h host] -f username
login [-p] -r host

Linux login命令的常用选项说明

选项说明
-p保留环境变量,不销毁环境
-f跳过登录认证,用户已经预先认证。在这种情况下,username是必须的
-h用于其他服务器(如telnetd (8))将远程主机的名称传递给login,以便将其放入utmp和wtmp中。只有超级用户可以使用这个选项。注意,-h选项会影响PAM服务的名称。标准的服务名称是login,但是使用-h选项后,名称是remote。因此,需要创建适当的PAM配置文件(例如,/etc/pam.d/login和/etc/pam.d/remote)
-r执行rlogin的自动登录协议

Linux login命令的实例

  • 登录到系统
[linux@bashcommandnotfound.cn ~]$ login
login: user
Password: 
Last login: Wed Nov 15 16:10:57 on tty1
Welcome to Linux!
[user@bashcommandnotfound.cn ~]$ 
  • 保留环境变量登录
[linux@bashcommandnotfound.cn ~]$ export FOO=bar
[linux@bashcommandnotfound.cn ~]$ login -p
login: user
Password: 
Last login: Wed Nov 15 16:12:34 on tty1
Welcome to Linux!
[user@bashcommandnotfound.cn ~]$ echo $FOO
bar
  • 跳过登录认证
[linux@bashcommandnotfound.cn ~]$ login -f user
Last login: Wed Nov 15 16:14:12 on tty1
Welcome to Linux!
[user@bashcommandnotfound.cn ~]$ 
  • 从远程主机登录
[linux@bashcommandnotfound.cn ~]$ login -h 192.168.0.1 user
Password: 
Last login: Wed Nov 15 16:15:45 from 192.168.0.1
Welcome to Linux!
[user@bashcommandnotfound.cn ~]$ 
  • 使用rlogin登录
[linux@bashcommandnotfound.cn ~]$ login -r 192.168.0.2
Last login: Wed Nov 15 16:17:23 from 192.168.0.2
Welcome to Linux!
[user@bashcommandnotfound.cn ~]$ 

Linux login命令的注意事项

  • login命令通常不需要手动执行,而是由getty (8)或其他服务器(如telnetd (8))自动调用。如果要从一个shell中执行login命令,必须使用exec login,否则会出现错误信息。
  • login命令会根据/etc/passwd文件中的信息设置用户的环境变量,如HOME, USER, $SHELL等。如果要修改这些信息,可以使用usermod (8)或passwd (1)命令。
  • login命令会根据不同的配置文件和PAM模块来控制登录的行为,如登录重试次数,登录超时时间,登录限制等。如果要修改这些设置,需要根据不同的发行版来编辑相应的文件,如/etc/login.defs, /etc/security/limits.conf, /etc/pam.d/login等。
  • 如果在登录时出现bash: login: command not found的错误,可能是因为login命令没有安装或者没有在$PATH中。可以尝试使用绝对路径/usr/bin/login来执行,或者使用yum (8)或apt-get (8)等工具来安装login命令。
0

评论区