我如何运行脚本来为新用户做一些配置?

我如何运行脚本来为新用户做一些配置?

我想为新用户执行一些配置任务,例如应用默认设置。

例如,我想通过翻译名称创建一些默认目录(Documents、、和,就像在 Windows 中一样)(因此,对于巴西用户,他或她实际上会获得名为、、和的Downloads目录)。这可以使用类似 shell 脚本中的命令来实现:MusicPicturesVideosxdg-user-dirDocumentosDownloadsMúsicasImagensVídeos

music="`xdg-user-dir MUSIC 2>/dev/null`"
if test -z "$music"; then
    music=$HOME/Music
fi
mkdir -p "$music"

我正在使用带有 KDE Plasma 5.4.2 的 openSUSE Leap 42.1。

在旧但有用的 openSUSE 13.2 上,我可以使用脚本进行此类配置/usr/share/kde4/env/startkde.suse.sh,如您所见:

https://github.com/openSUSE/kdebase-opensuse/blob/master/config-files/usr/share/kde4/env/startkde.suse.sh

此外,可以使用 中的脚本完成 LiveCD 用户特定设置/usr/share/opensuse-kiwi/live_user_scripts/。这在 openSUSE Leap 42.1 中仍然可行。示例:

https://github.com/openSUSE/kdebase-opensuse/blob/master/config-files/usr/share/opensuse-kiwi/live_user_scripts/kde4.sh

但如果可能的话,我想为每个新创建的用户创建这些目录,包括 LiveCD 用户和/或在硬盘上通常安装 Linux 的用户。

有没有办法通过 shell 脚本或配置文件来实现这一点?只要能达到预期效果,我不介意使用与 KDE Plasma 5 或 openSUSE 绑定的解决方案。谢谢您的建议!

答案1

对于主目录的默认框架,在 Linux 中您有“/etc/skel/”目录。

部分摘录自这里

/etc/skel 目录包含文件和目录,当 useradd 程序创建新用户时,这些文件和目录会自动复制到新用户的主目录中。

/etc/skel 允许系统管理员为计算机或网络上的所有新用户创建默认主目录,从而确保所有用户都以相同的设置或环境开始。

这是来自 rhel7 克隆的:

# ls -la /etc/skel/
total 28
drwxr-xr-x.   2 root root  4096 Apr  1  2015 .
drwxr-xr-x. 140 root root 12288 Nov  6 11:52 ..
-rw-r--r--.   1 root root    18 Mar  6  2015 .bash_logout
-rw-r--r--.   1 root root   193 Mar  6  2015 .bash_profile
-rw-r--r--.   1 root root   231 Mar  6  2015 .bashrc

您可以在此处添加任何您想要的内容,它将被复制到每个新用户的主目录

答案2

我没有使用 Suse,但是“xdg-user-dirs”和“xdg-user-dirs-gtk”这两个包似乎正是您要找的。

解决方案从这里开始:

https://forums.opensuse.org/showthread.php/477147-Adding-users-what-c​​reates-their-default-subdirectories-%28Suse-11-4%29

相关内容