# srunauth **Repository Path**: qihexiang/srunauth ## Basic Information - **Project Name**: srunauth - **Description**: 北京化工大学校园网无GUI登录客户端 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2019-11-16 - **Last Updated**: 2022-04-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 无GUI北京化工大学校园网登陆工具 在没有GUI/需要无人值守的情况下登陆校园网时,使用浏览器访问网关并登陆的方法并不方便,但可以使用此工具来实现这个功能。 此工具本身为北京化工大学的校园网设计,但实际上可以应用于所有深澜网关的认证上,只需要将代码中的tree.buct.edu.cn修改为对应的网关地址即可。 ## 如何使用(容器) 推荐使用Docker/Podman容器来运行本工具,以下介绍以Docker为例。部署大致分为3步: 1. 下载和构建镜像 2. 生成容器和初始化 3. 配置systemd计时器 ### 下载和构建镜像 克隆此仓库,然后使用`docker build`来构建镜像: ```bash git clone https://gitee.com/qihexiang/srunauth.git cd srunauth docker build . -t srunauth:latest ``` 构建过程需要联网,可以在已经联网的设备上构建好后传输到目标设备上。 ### 生成容器和初始化 由于Chrome要求shim空间大于64MiB,因此需要指定该参数。 ```bash docker run -it --shm-size 128m --name srunauth srunauth:latest ``` 在速度较慢的设备上,启动需要较长的时间。 启动后,会要求填入用户名和密码(密码是不可见的),然后完成配置。 作为CLI工具登陆: ```bash # 自动,后台登陆完成后退出 docker start srunauth # 手动,等待用户命令(超时也会自动退出) docker start -ia srunauth ``` ### 配置systemd计时器 之前的容器已经被构建成了一个CLI工具,此时使用一般的定时任务工具就可以实现自动登录了,此处以systemd为例。 首先,构建一个服务单元,放到/etc/systemd/system/目录下: ```ini # /etc/systemd/system/srunauth.service [Unit] Description=校园网登陆工具 [Service] # 若使用的是Podman的rootless容器,除去修改docker为podman外,还应该在此处指定运行容器的用户名 # User=aranlope Type=simple ExecStart=docker start -a srunauth ExecStop=docker stop -t 60 srunauth [Install] WantedBy=multi-user.target ``` 然后创建一个与服务单元同名的定时器单元: ```ini # /etc/systemd/system/srunauth.timer [Unit] Description=夜间自动登录校园网计时器 [Timer] # 如果是常开设备,通常用OnCalendar来指定具体启动时间,例如夜间同步数据的服务器,设置为2:30登录 OnCalendar=2:30 # 对于树莓派一类的单片设备实现开机后自动登录,由于设备开机时并不能得到准确时间,因此使用OnStartupSec参数来代替OnCalendar # OnStartupSec=10m # Persistent参数设置为True,若错过了上一次启动,会立刻运行命令 Persistent=true [Install] WantedBy=multi-user.target ``` ## 非容器化运行 不建议这样做,因为程序中的代码并不“干净“,若要使用,请阅读代码并修改各个配置文件的位置后再使用。