⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 autologin.c

📁 Linux下的修改用于取代必须输入用户名才能登陆的autologin程序,系统启动后可直接进入,不需输入帐户名.
💻 C
字号:
/****  autologin.c  ****
*********************/
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <pwd.h>

int main(int argc, char **argv)
{
        struct stat st;
        FILE *f;
        char *cfg;
        struct passwd *pw;
        uid_t uid;
        gid_t gid;
        char *dir, *shell;
        char *user=NULL;
        char *cmd=NULL;

        user="root";
        cmd="/usr/X11R6/bin/startx";

        pw = getpwnam(user);
        if(pw) 
		{
			uid=pw->pw_uid;                
			gid=pw->pw_gid;  
			dir=strdup(pw->pw_dir);
			shell=strdup(pw->pw_shell);
        }
		else 
		{
			printf("ERROR: No such user %s!n", user);
			return 1;
        }

        chown("/dev/console", uid, gid);
        chown("/dev/tty", uid, gid);                
        setregid(gid, gid);
        setegid(gid);
        setgid(gid);
        setreuid(uid, uid);
        seteuid(uid);
        setuid(uid);                

        setenv("HOME", dir, 1);
        setenv("SHELL", shell, 1);
        setenv("USER", user, 1);
        setenv("LOGNAME", user, 1);

        chdir(dir);
        user=NULL;

        execvp(cmd, argv);
        printf("ERROR: Couldn't exec %s: %sn", cmd, strerror(errno));
        return 2;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -