|
OS X的自动登录的过程是这样的,OS X首先查看/Library/Preferences/com.apple.loginwindow.plist文件里面是否设置autoLoginUser,如果设置了而且是一个用户,那么系统从/etc/kcpassword文件中提取该用户的密码,然后自动登录。
要想设置自动登录的用户名使用下面命令:
defaults write /Library/Preferences/com.apple.loginwindow autoLoginWindow -string "root"
如何生成kcpassword文件呢?Apple没有提供官方的工具,下面有一个程序员自己开发的shell脚本文件。
#!/usr/bin/perluse strict;use warnings;use Foundation;#==============================================================================#sub kcpassword_xor {my ($pass) = @_;### The magic 11 bytes - these are just repeated # 0x7D 0x89 0x52 0x23 0xD2 0xBC 0xDD 0xEA 0xA3 0xB9 0x1Fmy @key = qw( 125 137 82 35 210 188 221 234 163 185 31 );my $key = pack "C*", @key;my $key_len = length $key;for (my $n=0; $n<length($pass); $n+=$key_len) {substr($pass,$n,$key_len) ^= $key;}return $pass;}#==============================================================================#sub write_pass {my ($enc) = @_;my $file = '/etc/kcpassword';open(my $kcp, '>', $file) || die;print $kcp $enc;close($kcp);chmod(0600, $file);}#==============================================================================#my $user = "root";my $pass = "mysecretpassword";my $enc = kcpassword_xor($pass);write_pass($enc);exit 0;#==============================================================================#
只要是把其中的$user和$pass两个变量换成自己的运行就好了。重新启动系统后,就会自动登录了。 |
|
|