NEO Ubuntu 16.04
/******************************/
/lib/systemd/system/console-getty.service:17:ExecStart=-/sbin/agetty --noclear --keep-baud console 115200,38400,9600 $TERM
/lib/systemd/system/[email protected]:18:ExecStart=-/sbin/agetty --noclear --keep-baud pts/%I 115200,38400,9600 $TERM
/lib/systemd/system/[email protected]:23:ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 %I $TERM
archlinux系统的设置
###在命令行模式下开机自动登陆
编辑文件(没有的话自己手动创建):/etc/systemd/system/[email protected]/autologin.conf
内容为:
[Service]
ExecStart=
ExecStart=-/usr/bin/agetty --autologin username -s %I 115200,38400,9600 vt102
其中username为你要自动登陆的账户
###开机自动执行一条命令
在文件夹/usr/lib/systemd/system/里面新建一个文件example.service
内容为:
[Unit]
Description=example
[Service]
Type=oneshot
ExecStart=/path/to/scriptfile/example.sh
[Install]
WantedBy=multi-user.target
然后设置此服务开机启动
sudo systemctl enable example.service
此方法的好处是:
有以后需要修改命令或者添加什么命令只用修改/path/to/scriptfile/example.sh就可以
/********************************************************************************/
树莓派 Raspbian 系统启动之后,如果要进入图形界面 LXDE,需要在命令行输入用户名密码之后再通过 startx 来加载 LXDE。按照下面的方法,可以将树莓派配置为开机自动进入图形界面。适用于 Raspbian 系统。
1.配置自动登录
在终端输入下面指令,编辑启动文件。
1
|
sudo
nano
/etc/inittab
|
滚动到下面这一行
1
|
1:2345:respawn:/sbin/getty 115200 tty1
|
将它修改为:
1
|
#1:2345:respawn:/sbin/getty 115200 tty1
|
再在这行下面新增一行,内容如下:
1
|
1:2345:respawn:/bin/login -f pi tty1 /dev/tty1 2>&1
|
Ctrl+X 退出编辑器, 按下 Y 确认保存后回车。
2.配置 LXED 自动启动
在终端输入下面指令,编辑启动文件。
1
|
sudo
nano
/etc/rc
.
local
|
滚动到最下面,加入一行,内容如下:
1
|
su -l pi -c startx
|
Ctrl+X 退出编辑器, 按下 Y 确认保存后回车。
这样通电开机之后,系统将自动以账号 pi 登录。
/******************************************************************************/
agetty
打开 tty
端口,为登录名称建立命令控制符,并引出
login
程序
1、省略密码验证
很简单,只需把/etc/passwd中的root:x:0:0:root:/root:/bin/bash,改为root::0:0:root:/root:/bin/bash,就可以了,就是去掉了里面的x,这样root用户就不用密码了。其他用户也一样。
2、省略输入用户名
(1)修改/etc/inittab
在inittab中,有如下配置
1:2345:respawn:/sbin/agetty tty1 9600
2:2345:respawn:/sbin/agetty tty2 9600
3:2345:respawn:/sbin/agetty tty3 9600
4:2345:respawn:/sbin/agetty tty4 9600
5:2345:respawn:/sbin/agetty tty5 9600
6:2345:respawn:/sbin/agetty tty6 9600
表示系统可以有六个控制台,可以用ALT+(F1~F6)来切换。而/sbin/agetty就是一个登陆验证程序,执行它,会提示用户输入用户名和密码,然后启动一个指定的shell(在passwd文件中指定的)。
所以,我们只需将其修改为不执行agettty,而是执行自己编写的一个脚本,就可以跳过用户名和密码的输入。修改如下:
1:2345:respawn:/root/logintest tty1 9600
这里我在/root/下放了一个测试脚本,这样系统启动时就会执行那个脚本,脚本内容:
#!/bin/sh
/bin/login -f root
脚本其实就是执行了一个root用户的登陆而已,如果有其他要求,也可以添加到脚本中。
/****************************************************************************/
本篇是系列文章的一部分。讲的是让linux不经过认证,直接登录。
[@more@]请参见其它系列文章。
由于linux发行版本的不同,可能会有一些不同,请读者细心。
名词:login-----linux用于认证用户的密码是否正确的程序。
agetty----linux用于启动tty终端的程序。
tty终端---这个概念很麻烦,linux启动后,只是内存中程序,如果没有stdin,stdout,就没
法和用户交互。
与自动登录最相关的两个程序是agetty,login。
系统内核加载后,第一个运行的是init程序,init运行系统脚本,然后调用agetty,agetty调用loing。
运行到agetty时,它显示login name: 等你输入用户名,然后把它作为参数传给login。
login显示password:接收你的密码,结合用户名去验证用户的合法性。
最后启用bash,你就会发现自己在提示符$下了。
由于agetty和login程序的作者并没有把它作成可配置的。所以我们必需要修改源代码才能实现自动登录。
它们分别是agetty.c login.c
我们修改之后把它用gcc编译一下,代替原来的程序就好了。
找到agetty.c的调用get_logname函数的地方,把它注释掉。这样就不会去读用户名了。
login.c很复杂,它是让别的程序去取得密码并验证。我没时间研究它,所以呢,直接写一个空的login程序好了,其中,我们自己设定用户的uid sid 环境变量等等。再在login.c的最后调用一个bash就好了。
重启动一个系统吧!~:)
提醒:你的机器上最好有两个linux系统,当你修改其中一个不能进入系统的话,可以另一个linux加载它的分区,并把程序改回去。
累了,不想给的太细。给需要的人一个方向好了。
/**********************************************************************************/http://bbs.archlinuxcn.org/安心.php?id=3203
/*************************************************************************/
1、设置root密码
2、如果lightdm.conf文件存在
可编辑/etc/lightdm/目录下的lightdm.conf文件,如没有此文件,直接创建
注意:如果有lightdm.conf就不需要步骤3了
3、如果lightdm.conf文件不存在
在terminal下输入
内容如下:
4、在terminal下输入
将文件末尾的 “mesg n”,修改为 “tty -s && mesg n”。
注意:如果这里不修改,登录会提示如下信息:
Error found when loading /root/.profile
stdin:is not a tty
5.用reboot命令重启即可