为ubuntu创建一个管理用户用来管理user用户
假设该setting 用户名为vmsetup 。
系统安装时创建user用户
如果没有创建可以用以下命令
sudo useradd -m -s /bin/bash -G sudo user
sudo passwd user
登录user后创建vmsetup用户
sudo useradd -m -s /bin/bash -G sudo vmsetup
sudo passwd vmsetup
为user和vmsetup用户添加权限
sudo visudo
命令sudo visudo 实际是在修改 /etc/sudoers 文件,在末尾添加以下两行,保存退出。
user ALL=NOPASSWD:ALL
vmsetup ALL=NOPASSWD:ALL
安装以后配置脚本可能会用到的工具(可选)
sudo apt install gnome-session
sudo apt install git
sudo apt install vim-scripts
sudo apt install vim-common
sudo apt install vim-doc
sudo apt install python-is-python3
sudo apt install python3
sudo apt install python3-pip
将用户配置脚本放到/usr/local/bin/目录
如/usr/local/bin/run_setup_user.sh ,其目的就是gnome终端全屏模式执行另一个shell脚本。
#! /bin/bash
gnome-terminal --full-screen -- /usr/local/bin/vmsetup.sh
其中vmsetup.sh 用来进行user用户的权限管理,最后会调用vmsetup_user.sh 进行用户信息配置包括git配置等。 配置结束时退出当前gnome-session ,退出方法如下
function desktop_logout() {
# Logout the vmsetup user
dbus-send --session --type=method_call --print-reply --dest=org.gnome.SessionManager /org/gnome/SessionManager org.gnome.SessionManager.Logout uint32:1
if [ "$(which gnome-session-quit)" != '' ] ;then
gnome-session-quit --logout --no-prompt
return
fi
# before version 11.10 it's gnome-session-save
if [ "$(which gnome-session-save)" != '' ] ;then
gnome-session-save --kill --silent
return
fi
# finally even no gnome session, still can terminate current shell.
exit
}
完成以上配置后,先登录vmsetup用户并手动运行命令run_setup_user.sh 进行调试,确保运行正常。
在vmsetup用户登录时自动启动run_setup_user.sh
若想实现程序自启动,可通过以下两个目录解决~/.config/autostart 和 /etc/xdg/autostart/ ; 前者是用户的,后者是系统的。两者都可以通过复制*.desktop 到目录下来添加启动程序到会话。
为用户vmsetup 创建目录~/.config/autostart
登录vmsetup用户
mkdir -p /home/vmsetup/.config/autostart/
编写desktop文件
如 /home/vmsetup/.config/autostart/run_setup_user.sh.desktop
[Desktop Entry]
Type=Application
Exec=/usr/local/bin/run_setup_user.sh
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[en_US]=run_setup_user
Name=run_setup_user
Comment[en_US]=Setup VM user account
Comment=Setup VM user account
通过以上步骤,即可以实现在登录vmsetup 用户时自动启动配置程序,且配置结束自动退出vmsetup 登录。
|