Je suis un administrateur système sur la machine Kubuntu 11.10. Où dois-je configurer la configuration de base pour un nouvel utilisateur (par exemple, appartenant au groupe "utilisateurs")?
Éditez 1 :
Je souhaite configurer des langues. Actuellement, mes nouveaux utilisateurs ont l’anglais et le bulgare. Je veux qu’ils maîtrisent l’anglais et le russe - et définissent également Alt-CapsLock - comme étant la combinaison de commutation de langue d’entrée.
Éditez 2 :
Comment puis-je configurer les choses dans
/usr/share/kde4
Quand je fais
kdesudo systemsettings
et enregistrer les configurations - seuls les paramètres racine ont été modifiés - pas ceux /usr/share/kde4
.
Éditez 3 :
Un nouvel utilisateur obtient les fichiers /etc/skel
contrôlant l’apparence du comportement de bash. Qu'en est-il des fichiers par défaut du nouvel utilisateur KDE - où sont-ils stockés?
Éditez 4 :
Oh, j'ai trouvé des indices:
kde4-config --path config
donne une liste de dossiers (séparés par deux points) où KDE recherche les configs. Ma machine a répondu avec:
/home/boris/.kde/share/config/
/etc/kde4/
/usr/share/kubuntu-default-settings/kde4-profile/default/share/config/
/usr/share/kde4/config/
/usr/share/desktop-base/profiles/kde-profile/share/config/
Il semble que KDE prenne les options par défaut sur la troisième ligne. J'ai donc trouvé ces zilions de paramètres, mais aucun moyen graphique de le configurer ((.
Éditez 5 :
Enfin, j'ai créé un utilisateur factice, je l'ai configuré et j'ai écrit un script qui donne ses paramètres à un ou plusieurs utilisateurs donnés. L'astuce consiste à chown
après avoir transféré les fichiers de points d'un utilisateur à un autre. Je l'ai testé - cela fonctionne bien.
J'ai fini d'écrire un script qui transfère les fichiers de points, et ensuite chown
s tout.
Modifier :
J'ai réécrit ce script à Bash il y a environ trois ans. Et je l'utilisais depuis un certain temps. Cependant, je n'ai pas utilisé ce script depuis des années et je ne le maintiens plus. Je n'ai pas revu ce script pour le moment, mais j'imagine qu'il n'est pas de grande qualité, vu que je l'ai écrit il y a longtemps.
L'idée de base est de stocker les fichiers de points de base sur github, de les télécharger par script, de corriger le nom d'utilisateur et d'attribuer les autorisations appropriées.
#!/bin/bash
# to get description use the -h flag
# You can see the structure of this code in emacs. For that eval the
# following lines:
# (mapc
# (lambda (language-mode-hook)
# (add-hook language-mode-hook
# (lambda ()
# (make-local-variable 'outline-regexp)
# (setq outline-regexp "^## ")
# (make-local-variable 'outline-heading-end-regexp)
# (setq outline-heading-end-regexp ":\n")
# (outline-minor-mode 1))))
# '(Shell-script-mode-hook sh-mode-hook))
# this makes use of outline-minor-mode and the default keys are:
# C-c @ C-t show top level structure
# C-c @ C-a show all
# for more see the Outline menu.
# TODO:
# update routine documntation?
# exit after a single error:
set -e
# ===========
## preambula:
PROGNAME=${0##*/}
PROGVERSION=4.02
NoColors=false
Dependencies=false
Root=false
Internet=false
Localhost=false
Base=`logname`
Update=false
Source=boris
Autostart=false
usage()
{
cat << EO
Usage: $PROGNAME <user>
This script install bkubuntu kubuntu set of programs and settings. It
assumes the user have x86_64 archeticture.
It does back-up all the configs, but it keeps only the latest back-up
-- so if You'll run this script twice in a row -- You'll lose Your
files. You might want to back up the original thing manually.
All of the options except for -u/--update require root privilages.
Examples
========
To install bkubuntu for Yourself::
cd /path/to/bkubuntu.bash
Sudo ./bkubuntu.bash -i
To install Your bkubuntu to root::
cd /path/to/bkubuntu.bash
Sudo ./bkubuntu.bash -r
To install bkubuntu from other user at localhost::
cd /path/to/bkubuntu.bash
Sudo ./bkubuntu.bash -l -s <that user>
To update Your bkubuntu::
bkubuntu.bash -u # provided bkubuntu.bash is in the PATH
Add -a if You want to have emacs, firefox, krusader, libreoffice
quickstart to run at start-up.
Options
=======
EO
cat << EO | column -s\& -t
-i, --internet & fetchs bkubuntu from the internet and installs it for the current user
-l, --localhost & fetchs bkubuntu from other user (-s)
-a, --autostart & also turn on the autostart script (starts emacs, firefox, krusader at start up)
-s, --source & source repository user, default to $Source
-u, --update & updates Your bkubuntu git repos from the internet (should not be done under Sudo)
-r, --root & transfers subset of Your bkubuntu to the root
-h, --help & show this output
-v, --version & show version information
--no-colors & disables coloring in output
EO
}
SHORTOPTS="hvars:ilu"
LONGOPTS="help,version,no-colors,autostart,root,source:,internet,localhost,update"
ARGS=$(getopt -s bash --options $SHORTOPTS --longoptions $LONGOPTS --name $PROGNAME -- "$@")
eval set -- "$ARGS"
while true; do
case $1 in
-a|--autostart)
Autostart=true;;
-r|--root)
Root=true;;
-s|--source)
Source=$2; shift;;
-i|--internet)
Internet=true;;
-l|--localhost)
Localhost=true;;
-u|--update)
Update=true;;
-h|--help)
usage; exit 0;;
-v|--version)
echo "$PROGVERSION"; exit 0;;
--no-colors)
NoColors=true;;
--)
shift; break;;
*)
shift; break;;
esac
shift
done
if $NoColors; then
BLUE=''
GREEN=''
RED=''
BLACK=''
else
BLUE='\033[94m'
GREEN='\e[0;32m'
RED='\033[91m'
BLACK='\033[0m'
fi
# ===========
## functions:
autostart () {
if [ -e /home/$Base/.kde/Autostart/bkubuntu_startup_simple.bash ]; then
rm /home/$Base/.kde/Autostart/bkubuntu_startup_simple.bash
fi
if ! [ -d /home/$Base/.kde/Autostart ]; then
mkdir /home/$Base/.kde/Autostart
fi
ln /home/$Base/cmp/devs/bk_automates/bkubuntu/bk_runs_at/bkubuntu_startup_simple.bash /home/$Base/.kde/Autostart/bkubuntu_startup_simple.bash
}
back-up_and_clean () {
if [ -d "$Base~" ]; then
rm -rf "$Base~"
fi
mkdir "$Base~"
mv -T $Base "$Base~"
mkdir $Base
cd $Base
echo -e "${RED}${PROGNAME}: ${GREEN}Done with backing up $Base (to $Base~).${BLACK}"
}
rebase () {
# these files should have ho spaces!
FILES="\
$PWD/.kde/share/config/plasma-desktoprc
$PWD/.kde/share/config/plasma-desktop-appletsrc
$PWD/.kde/share/apps/kfileplaces/bookmarks.xml
$PWD/.kde/share/config/krusaderrc
$PWD/.kde/share/apps/krusader/krbookmarks.xml
$PWD/.kde/share/apps/krusader/useractions.xml
$PWD/.kde/share/apps/krusader/krusaderui.rc
$PWD/.config/libreoffice/3/user/registrymodifications.xcu
$PWD/.kde/share/apps/kfileplaces/bookmarks.xml
$PWD/.kde/share/config/khotkeysrc
$PWD/.Thunderbird/n8fe137g.default/secmod.db
$PWD/.Thunderbird/n8fe137g.default/prefs.js
$PWD/.Thunderbird/n8fe137g.default/extensions.ini
$PWD/.Thunderbird/n8fe137g.default/extensions.sqlite
$PWD/.Thunderbird/n8fe137g.default/panacea.dat
$PWD/.Thunderbird/n8fe137g.default/startupCache/startupCache.8.little
$PWD/.mozilla/firefox/kkhrci0w.default/secmod.db
$PWD/.mozilla/firefox/kkhrci0w.default/prefs.js
$PWD/.mozilla/firefox/kkhrci0w.default/extensions.ini
$PWD/.mozilla/firefox/kkhrci0w.default/search.json
$PWD/.mozilla/firefox/kkhrci0w.default/extensions.sqlite
$PWD/.mozilla/firefox/kkhrci0w.default/startupCache/startupCache.8.little
$PWD/.mozilla/firefox/kkhrci0w.default/zotero/locate/engines.json"
# root doesn't have all these files:
if [ $Base = "root" ]; then
FILES=`echo $FILES | Perl -pe 's/ /\n/g' | Perl -pe 's/.*(emacs|libreoffice|autokey|bkubuntu|mozilla|Thunderbird).*//' | Perl -pe 's/^\n//'`
fi
for fileName in $FILES; do
sed -i "s/$Source/$Base/g" "$fileName"
done
echo -e "${RED}${PROGNAME}: ${GREEN}Done with rebasing.${BLACK}"
}
chown_logout () {
# ------
# chown:
chown -R $Base $PWD
echo -e "${RED}${PROGNAME}: ${GREEN}chown: everything went fine.\n You may wish to restart now.${BLACK}"
sleep 1
# ---------------
# finally logout:
secsTilLogout=10
while [ $secsTilLogout -gt 0 ]; do
sleep 1 &
clear
echo -e "${RED}${PROGNAME}: ${GREEN}Done. Documentation for hotkeys is available at:\n ~/bks/computer/HotKeyPoetry/index.html\n\n Unless You kill me with Ctrl-c --\n I'll logout computer in $secsTilLogout seconds.${BLACK}"
secsTilLogout=$(( $secsTilLogout - 1 ))
wait # the point of 'sleep 1 & -- wait' construct is not to take into account the time of `sleep' execution
done
qdbus org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.logout 0 0 0
}
# ==========
## internet:
if $Internet; then
# -------------
# adding repos:
echo -e \\n | Sudo add-apt-repository ppa:kubuntu-ppa/ppa
echo -e \\n | Sudo add-apt-repository ppa:kubuntu-ppa/backports
echo -e \\n | add-apt-repository ppa:cassou/emacs
wget -q http://download.virtualbox.org/virtualbox/debian/Oracle_vbox.asc -O- | Sudo apt-key add -
# perhaps I should add
# deb http://download.virtualbox.org/virtualbox/debian precise contrib
# to /etc/apt/sources.list
wget -q "http://deb.playonlinux.com/public.gpg" -O- | apt-key add -
wget http://deb.playonlinux.com/playonlinux_squeeze.list -O /etc/apt/sources.list.d/playonlinux.list
apt-get update
echo -e "${RED}${PROGNAME}: ${GREEN}Done with repos.\n Now the back-up phase...${BLACK}"
sleep 1
# -----------
# installing:
echo -e \\n | apt-get install emacs-snapshot konsole krusader okular kolourpaint4 smplayer vlc audacious gwenview k3b synaptic kopete keepassx xclip firefox Thunderbird procps tree xsel libreoffice wmctrl git virtualbox playonlinux build-essential kubuntu-restricted-extras gfortran parallel sshfs ssh
echo -e "${RED}${PROGNAME}: ${GREEN}Done with installing prerequisites.\n Now the cloning stage...${BLACK}"
sleep 1
# --------------------
# preparing the place:
cd /home
back-up_and_clean
# -----------------
# clonning configs:
git clone https://github.com/bk322/bk_dots .
cp -R .bkubuntu/* . # copying dir structure
git clone https://github.com/bk322/bk_automates /home/$Base/cmp/devs/bk_automates
echo -e "${RED}${PROGNAME}: ${GREEN}Done with cloning configs.${BLACK}"
sleep 1
# parallel:
# dpkg -i /home/$Base/cmp/repo/parallel*.deb
# -----------------
# applying configs:
# autostart?
if $Autostart; then
autostart
fi
# ----------
# XULRunner:
mv /home/$Base/cmp/repo/.mozilla .
mv /home/$Base/cmp/repo/.Thunderbird .
rebase
chown_logout
fi
# =========
## copying:
if $Localhost; then
cd /home
back-up_and_clean
# ----------------------------------
# cloning configs from user $Source:
cd /home/$Base
git clone /home/$Source .
cp -R .bkubuntu/* . # copying dir structure
git clone /home/$Source/cmp/devs/bk_automates /home/$Base/cmp/devs/bk_automates
echo -e "${RED}${PROGNAME}: ${GREEN}Done with cloning configs from $Source.${BLACK}"
sleep 1
# -----------------
# applying configs:
# autostart?
if $Autostart; then
autostart
fi
# ----------
# XULRunner:
mv /home/$Base/cmp/repo/.mozilla .
mv /home/$Base/cmp/repo/.Thunderbird .
# -----------------------
# rebase, chown, restart:
rebase
chown_logout
fi
# ==========
## updating:
if $Update; then
# -------------
# update repos:
cd /home/$Base
git checkout -- . && git pull -u Origin master
cd /home/$Base/cmp/devs
git checkout -- . && git pull -u Origin master
cd /home/$Base
echo -e "${RED}${PROGNAME}: ${GREEN}Done with syncing gits.${BLACK}"
sleep 1
# ---------
# rebasing:
rebase
fi
# ======
## root:
if $Root; then
cd /
Base=root
back-up_and_clean
Source=`logname`
cd /home/$Source
listOfFiles=`git ls-files | Perl -pe 's/.*(libreoffice|autokey|bkubuntu|mozilla|Thunderbird).*//' | Perl -pe 's/^\n//'`
for File in $listOfFiles; do
Parents=${File#/home/$Source/}
cp --parents "$Parents" /root
done
# -----------------------
# rebase, chown, restart:
cd /root
rebase
chown_logout
fi
Tout dans/etc/skel est copié. Par conséquent, si vous incluez un .bashrc
ou de la même manière, il sera copié dans le répertoire de base du nouvel utilisateur et deviendra le nouveau paramètre de l'utilisateur. Jetez un coup d'œil aux fichiers cachés de votre propre répertoire personnel et voyez ce qui s'y trouve. KDE et la plupart des autres applications y placeront les paramètres par utilisateur.
ls -la /home/$(whoami)/