以非特权用户rustdesk运行RustDesk服务,出现的异常处理。
异常1:RustDesk signal服务日志显示无法存储配置文件
[2025-10-04 15:42:22.155753 +08:00] ERROR [libs/hbb_common/src/config.rs:538] Failed to store config: Failed to create directory
异常2:RustDesk relay服务无法启动
[root@rd ~]# systemctl status rustdeskrelay.service
○ rustdeskrelay.service - Rustdesk Relay Server
Loaded: loaded (/etc/systemd/system/rustdeskrelay.service; enabled; preset: disabled)
Active: inactive (dead)
[root@rd ~]#
错误说明:
[root@rd ~]# id rustdesk
uid=986(rustdesk) gid=986(rustdesk) groups=986(rustdesk)
[root@rd ~]# cat /etc/passwd |grep rustdesk
rustdesk:x:986:986::/home/rustdesk:/sbin/nologin
[root@rd ~]# ls /home
lighthouse
[root@rd ~]# usermod -m -d /home/rustdesk rustdesk
usermod: no changes
[root@rd ~]#
手动创建家目录并初始化
[root@rd ~]# mkdir /home/rustdesk
[root@rd ~]# cp -rT /etc/skel/ /home/rustdesk
[root@rd ~]# chown -R rustdesk:rustdesk /home/rustdesk
[root@rd ~]# systemctl restart rustdesksignal.service
[root@rd ~]# less /var/log/rustdesk/signalserver.log
[root@rd ~]#
查看正常启动服务时rustdesk用户家目录的文件写入情况
[root@rd ~]# ls -al /home/rustdesk/
total 28
drwxr-xr-x 3 rustdesk rustdesk 4096 Oct 4 16:12 .
drwxr-xr-x. 4 root root 4096 Oct 4 16:11 ..
-rw-r--r-- 1 rustdesk rustdesk 18 Oct 4 16:11 .bash_logout
-rw-r--r-- 1 rustdesk rustdesk 141 Oct 4 16:11 .bash_profile
-rw-r--r-- 1 rustdesk rustdesk 492 Oct 4 16:11 .bashrc
drwxr-xr-x 3 rustdesk rustdesk 4096 Oct 4 16:12 .config
-rw-r--r-- 1 rustdesk rustdesk 658 Oct 4 16:11 .zshrc
[root@rd ~]# ls -al /home/rustdesk/.config/
total 12
drwxr-xr-x 3 rustdesk rustdesk 4096 Oct 4 16:12 .
drwxr-xr-x 3 rustdesk rustdesk 4096 Oct 4 16:12 ..
drwxr-xr-x 2 rustdesk rustdesk 4096 Oct 4 16:12 rustdesk
[root@rd ~]# ls -al /home/rustdesk/.config/rustdesk/
total 12
drwxr-xr-x 2 rustdesk rustdesk 4096 Oct 4 16:12 .
drwxr-xr-x 3 rustdesk rustdesk 4096 Oct 4 16:12 ..
-rw------- 1 rustdesk rustdesk 141 Oct 4 16:12 RustDesk.toml
[root@rd ~]#
关于/etc/skel目录
/etc/skel 目录在 Linux 系统中扮演着非常重要的角色,它是新用户家目录的蓝本(skeleton)或模板。
/etc/skel 目录的作用
当系统管理员使用 useradd 或 adduser 等命令创建一个新的系统用户,并且指定要创建家目录时,/etc/skel 目录中的所有文件和子目录都会被自动复制到新用户的家目录中。
简而言之,/etc/skel 的作用是:
- 提供默认配置: 它确保每个新用户都有一个功能完整且一致的初始环境。
- 标准化用户体验: 无论哪个管理员创建用户,新用户都会得到相同的默认设置。
/etc/skel 目录中的常见内容
/etc/skel 目录下通常包含用户登录和使用 shell 所需的隐藏配置文件(以点 . 开头),这些文件为用户提供了基本的环境变量、命令别名和登录行为设置。
常见的文件和目录包括:
| 文件/目录 | 作用 |
.bashrc | Bash shell 的配置文件。用户每次启动一个新的非登录交互式 shell 时会执行它,用于设置别名、函数和 shell 选项。 |
.profile 或 .bash_profile | 用户登录时(登录 shell)执行的配置文件,用于设置全局环境变量(如 PATH)。 |
.bash_logout | 用户退出登录 shell 时执行的脚本。 |
Desktop/, Documents/, Downloads/ 等 | 如果系统是桌面发行版(如 Ubuntu、Fedora),这些默认的用户子目录也会包含在 /etc/skel 中,以便在新用户登录时创建。 |
如何修改和利用 /etc/skel
如果你想让所有新用户都拥有特定的配置或文件,你可以通过修改 /etc/skel 目录来实现:
- 添加自定义配置: 如果你想为所有新用户添加一个特定的 Bash 别名或环境变量,只需编辑或创建
/etc/skel/.bashrc文件。 - 添加默认文件/目录: 如果你希望新用户家目录下默认有一个名为
projects的目录,只需在/etc/skel下创建一个名为projects的目录。
示例:
# 添加一个默认的 projects 目录到 skel
sudo mkdir /etc/skel/projects
# 添加一个自定义的配置文件 (例如 .vimrc)
sudo cp /path/to/my/default/.vimrc /etc/skel/
发表回复