Add script 'add_new_user.sh'.
This commit is contained in:
parent
d7eed82bed
commit
c4e91648fd
189
add_new_user.sh
Executable file
189
add_new_user.sh
Executable file
@ -0,0 +1,189 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
working_dir="$(dirname $(realpath $0))"
|
||||
|
||||
if [[ $# -lt 1 ]] ; then
|
||||
echo ""
|
||||
echo " No username given on comand line."
|
||||
echo ""
|
||||
exit
|
||||
fi
|
||||
|
||||
user_name=$1
|
||||
#password=$2
|
||||
#password=${password:="test100"}
|
||||
|
||||
if [[ -z "$2" ]]; then
|
||||
password_needed=true
|
||||
password="test100"
|
||||
else
|
||||
password_needed=false
|
||||
password=$2
|
||||
fi
|
||||
|
||||
replace_files=".bashrc .bash_logout .profile .vimrc"
|
||||
|
||||
templates_base_dir="${working_dir}/supported-files/user_templates"
|
||||
templates_all_dir="${templates_base_dir}/all"
|
||||
|
||||
if [[ -f "/etc/adduser.conf" ]]; then
|
||||
. /etc/adduser.conf
|
||||
home_base_dir="$DHOME"
|
||||
min_uid=$FIRST_UID
|
||||
skel_dir="$SKEL"
|
||||
else
|
||||
home_base_dir=/home
|
||||
min_uid=1000
|
||||
skel_dir=/etc/skel
|
||||
fi
|
||||
|
||||
|
||||
# - Create user if not exists
|
||||
# -
|
||||
if ! id -u "${user_name}" > /dev/null 2>&1 ; then
|
||||
|
||||
# - Get uid/gid
|
||||
# -
|
||||
if [[ "$user_name" = 'sysadm' ]]; then
|
||||
user_uid=1050
|
||||
user_gid=1050
|
||||
elif [[ "$user_name" = 'back' ]]; then
|
||||
user_uid=1060
|
||||
user_gid=1060
|
||||
else
|
||||
|
||||
declare -i _id=$(expr $min_uid - 1)
|
||||
|
||||
while true ; do
|
||||
((_id++))
|
||||
$(id $_id > /dev/null 2>&1) && continue
|
||||
$(cat /etc/group | cut -d ':' -f3 | grep -q $_id 2> /dev/null) && continue
|
||||
break
|
||||
done
|
||||
user_uid=$_id
|
||||
user_gid=$_id
|
||||
fi
|
||||
|
||||
# - Add user to system
|
||||
# -
|
||||
echo "$user_name:${password}:${user_uid}:${user_gid}:${user_name},,,:${home_base_dir}/${user_name}:/bin/bash" | newusers
|
||||
|
||||
if [[ -d "$skel_dir" ]]; then
|
||||
cp -a "${skel_dir}/.bash_logout" "${home_base_dir}/${user_name}/"
|
||||
chown ${user_name}:${user_name} "${home_base_dir}/${user_name}/.bash_logout"
|
||||
|
||||
cp -a "${skel_dir}/.bashrc" "${home_base_dir}/${user_name}/"
|
||||
chown ${user_name}:${user_name} "${home_base_dir}/${user_name}/.bashrc"
|
||||
|
||||
cp -a "${skel_dir}/.profile" "${home_base_dir}/${user_name}/"
|
||||
chown ${user_name}:${user_name} "${home_base_dir}/${user_name}/.profile"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
# - Set new password
|
||||
# -
|
||||
if $password_needed ; then
|
||||
|
||||
# - sysadm
|
||||
# -
|
||||
if [[ "$user_name" = 'sysadm' ]]; then
|
||||
perl -i -n -p -e "s#^(${user_name}):[^:]+:(.+)#\1:\\\$6\\\$vvccwrTc\\\$Sz1HaSb3ujObprltiG7D6U1Rr3fpgfjkKuDDWYdHzPkPx/0pEofCWC.vyTn78hcemkntl.6wVUOnJnNloKt/E/:\2#" /etc/shadow
|
||||
|
||||
# - chris
|
||||
# -
|
||||
elif [[ "$user_name" = 'chris' ]]; then
|
||||
perl -i -n -p -e "s#^(${user_name}):[^:]+:(.+)#\1:\\\$6\\\$5SJpnMml\\\$SKedIm8KbDoG6PPwmoq9jbg4Y5pukPp1lzq9AOgugLGSHMQo3tL6Ih/YvX295mL2svhYi4emf.xZV9t95.72d0:\2#" /etc/shadow
|
||||
|
||||
# - root
|
||||
# -
|
||||
elif [[ "$user_name" = 'root' ]]; then
|
||||
perl -i -n -p -e "s#^(${user_name}):[^:]+:(.+)#\1:\\\$6\\\$JO92p9nG\\\$r/DiHWgK2dZZkSCDDNeLRQwH3Etp0XZeJY9VfX3Tbka0JOXuqWsXkn98V.pCf5BarZjQ4gND.rLs1ARJ7p/P40:\2#" /etc/shadow
|
||||
|
||||
# - Other normal users (uid > $min_uid)
|
||||
# -
|
||||
elif [[ $user_uid -ge $min_uid ]] ; then
|
||||
perl -i -n -p -e "s#^(${user_name}):[^:]+:(.+)#\1:\\\$6\\\$R6DYYcau\\\$TZYgG122V1oDl1wddNb8ieQIUMab35xItyFlnlStkEBV3DS5S6x7co6S/FpwbHzX21c1HF3WCUQ5/5s.umi6I.:\2#" /etc/shadow
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
home_dir="$(cat /etc/passwd | grep ${user_name} | cut -d':' -f6)"
|
||||
|
||||
|
||||
# - Backup existing files befor replacing them..
|
||||
# -
|
||||
if [[ -f "${home_dir}/.bashrc" ]] && [[ ! -f "${home_dir}/.bashrc.ORIG" ]]; then
|
||||
mv "${home_dir}/.bashrc" "${home_dir}/.bashrc.ORIG"
|
||||
fi
|
||||
if [[ -f "${home_dir}/.profile" ]] && [[ ! -f "${home_dir}/.profile.ORIG" ]] ; then
|
||||
mv "${home_dir}/.profile" "${home_dir}/.profile.ORIG"
|
||||
fi
|
||||
if [[ -f "${home_dir}/.bash_logout" ]] && [[ ! -f "${home_dir}/.bash_logout.ORIG" ]] ; then
|
||||
mv "${home_dir}/.bash_logout" "${home_dir}/.bash_logout.ORIG"
|
||||
fi
|
||||
|
||||
|
||||
# - Replace/Add files
|
||||
# -
|
||||
for _file in $replace_files ; do
|
||||
if [[ -f "${templates_base_dir}/${user_name}/${_file}" ]] ; then
|
||||
cp -a "${templates_base_dir}/${user_name}/${_file}" "${home_dir}/"
|
||||
chown ${user_name}:${user_name} "${home_dir}/${_file}"
|
||||
elif [[ -f "${templates_all_dir}/${_file}" ]]; then
|
||||
cp -a "${templates_all_dir}/${_file}" "${home_dir}/"
|
||||
chown ${user_name}:${user_name} "${home_dir}/${_file}"
|
||||
else
|
||||
if [[ -f "${home_dir}/${_file}.ORIG" ]]; then
|
||||
mv "${home_dir}/${_file}.ORIG" "${home_dir}/${_file}"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ -d "${home_dir}/.ssh" ]]; then
|
||||
cp -a "${home_dir}/.ssh" "${home_dir}/.ssh.BAK"
|
||||
else
|
||||
mkdir "${home_dir}/.ssh"
|
||||
fi
|
||||
|
||||
ssh_auhtorized_file=""
|
||||
if [[ -d "${templates_base_dir}/${user_name}/.ssh" ]]; then
|
||||
if [[ -f "${templates_base_dir}/${user_name}/.ssh/authorized_keys2" ]]; then
|
||||
ssh_auhtorized_file="${templates_base_dir}/${user_name}/.ssh/authorized_keys2"
|
||||
elif [[ -f "${templates_base_dir}/${user_name}/.ssh/authorized_keys" ]]; then
|
||||
ssh_auhtorized_file="${templates_base_dir}/${user_name}/.ssh/authorized_keys"
|
||||
fi
|
||||
elif [[ -d "${templates_all_dir}/.ssh" ]] ; then
|
||||
if [[ -f "${templates_all_dir}/.ssh/authorized_keys2" ]]; then
|
||||
ssh_auhtorized_file="${templates_all_dir}/.ssh/authorized_keys2"
|
||||
elif [[ -f "${templates_all_dir}/.ssh/authorized_keys" ]]; then
|
||||
ssh_auhtorized_file="${templates_all_dir}/.ssh/authorized_keys"
|
||||
fi
|
||||
fi
|
||||
if [[ -n "$ssh_auhtorized_file" ]] ; then
|
||||
cp -a "$ssh_auhtorized_file" "${home_dir}/.ssh/"
|
||||
elif [[ -d "${home_dir}/.ssh.BAK" ]] ; then
|
||||
rm -rf "${home_dir}/.ssh.BAK"
|
||||
fi
|
||||
|
||||
chmod 700 ${home_dir}/.ssh
|
||||
chown -R ${user_name}:${user_name} ${home_dir}/.ssh
|
||||
|
||||
if [[ "$user_name" = 'sysadm' ]] || [[ "$user_name" = 'chris' ]] ; then
|
||||
usermod -a -G sudo ${user_name}
|
||||
fi
|
||||
#ls -al ${home_dir}/.ssh
|
||||
echo ""
|
||||
echo -e " User \033[1m${user_name}\033[m added:"
|
||||
echo ""
|
||||
echo -e " Home Dir: \033[1m$home_dir\033[m"
|
||||
echo -e " UID: \033[1m$(id -u ${user_name})\033[m"
|
||||
echo -e " GID: \033[1m$(id -g ${user_name})\033[m"
|
||||
if [[ -n "$2" ]]; then
|
||||
echo -e " Password: \033[1m$2\033[m"
|
||||
else
|
||||
echo -e " Password: \033[1m************\033[m"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
exit 0
|
7
supported-files/user_templates/all/.bash_logout
Normal file
7
supported-files/user_templates/all/.bash_logout
Normal file
@ -0,0 +1,7 @@
|
||||
# ~/.bash_logout: executed by bash(1) when login shell exits.
|
||||
|
||||
# when leaving the console clear the screen to increase privacy
|
||||
|
||||
if [ "$SHLVL" = 1 ]; then
|
||||
[ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
|
||||
fi
|
109
supported-files/user_templates/all/.bashrc
Normal file
109
supported-files/user_templates/all/.bashrc
Normal file
@ -0,0 +1,109 @@
|
||||
# ~/.bashrc: executed by bash(1) for non-login shells.
|
||||
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
|
||||
# for examples
|
||||
|
||||
# If not running interactively, don't do anything
|
||||
[ -z "$PS1" ] && return
|
||||
|
||||
# don't put duplicate lines in the history. See bash(1) for more options
|
||||
# don't overwrite GNU Midnight Commander's setting of `ignorespace'.
|
||||
HISTCONTROL=$HISTCONTROL${HISTCONTROL+:}ignoredups
|
||||
# ... or force ignoredups and ignorespace
|
||||
HISTCONTROL=ignoreboth
|
||||
|
||||
# append to the history file, don't overwrite it
|
||||
shopt -s histappend
|
||||
|
||||
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
|
||||
|
||||
# check the window size after each command and, if necessary,
|
||||
# update the values of LINES and COLUMNS.
|
||||
shopt -s checkwinsize
|
||||
|
||||
# make less more friendly for non-text input files, see lesspipe(1)
|
||||
#[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
|
||||
|
||||
# set variable identifying the chroot you work in (used in the prompt below)
|
||||
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
|
||||
debian_chroot=$(cat /etc/debian_chroot)
|
||||
fi
|
||||
|
||||
# set a fancy prompt (non-color, unless we know we "want" color)
|
||||
case "$TERM" in
|
||||
xterm-color) color_prompt=yes;;
|
||||
esac
|
||||
|
||||
# uncomment for a colored prompt, if the terminal has the capability; turned
|
||||
# off by default to not distract the user: the focus in a terminal window
|
||||
# should be on the output of commands, not on the prompt
|
||||
#force_color_prompt=yes
|
||||
|
||||
if [ -n "$force_color_prompt" ]; then
|
||||
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
|
||||
# We have color support; assume it's compliant with Ecma-48
|
||||
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
|
||||
# a case would tend to support setf rather than setaf.)
|
||||
color_prompt=yes
|
||||
else
|
||||
color_prompt=
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$color_prompt" = yes ]; then
|
||||
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
|
||||
else
|
||||
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
|
||||
fi
|
||||
unset color_prompt force_color_prompt
|
||||
|
||||
# If this is an xterm set the title to user@host:dir
|
||||
case "$TERM" in
|
||||
xterm*|rxvt*)
|
||||
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
|
||||
# enable color support of ls and also add handy aliases
|
||||
if [ -x /usr/bin/dircolors ]; then
|
||||
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
|
||||
alias ls='ls --color=auto'
|
||||
#alias dir='dir --color=auto'
|
||||
#alias vdir='vdir --color=auto'
|
||||
|
||||
#alias grep='grep --color=auto'
|
||||
#alias fgrep='fgrep --color=auto'
|
||||
#alias egrep='egrep --color=auto'
|
||||
fi
|
||||
|
||||
# some more ls aliases
|
||||
alias ll='ls -l'
|
||||
alias la='ls -A'
|
||||
alias l='ls -CF'
|
||||
|
||||
alias ..='cd ..'
|
||||
alias ...='cd ../..'
|
||||
alias ....='cd ../../..'
|
||||
|
||||
# Alias definitions.
|
||||
# You may want to put all your additions into a separate file like
|
||||
# ~/.bash_aliases, instead of adding them here directly.
|
||||
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
|
||||
|
||||
if [ -f ~/.bash_aliases ]; then
|
||||
. ~/.bash_aliases
|
||||
fi
|
||||
|
||||
# enable programmable completion features (you don't need to enable
|
||||
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
|
||||
# sources /etc/bash.bashrc).
|
||||
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
|
||||
. /etc/bash_completion
|
||||
fi
|
||||
|
||||
export EDITOR=vim
|
||||
|
||||
## - set beep more quiet
|
||||
## -
|
||||
#xset b 10 500 50
|
30
supported-files/user_templates/all/.profile
Normal file
30
supported-files/user_templates/all/.profile
Normal file
@ -0,0 +1,30 @@
|
||||
# ~/.profile: executed by the command interpreter for login shells.
|
||||
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
|
||||
# exists.
|
||||
# see /usr/share/doc/bash/examples/startup-files for examples.
|
||||
# the files are located in the bash-doc package.
|
||||
|
||||
# the default umask is set in /etc/profile; for setting the umask
|
||||
# for ssh logins, install and configure the libpam-umask package.
|
||||
#umask 022
|
||||
|
||||
# if running bash
|
||||
if [ -n "$BASH_VERSION" ]; then
|
||||
# include .bashrc if it exists
|
||||
if [ -f "$HOME/.bashrc" ]; then
|
||||
. "$HOME/.bashrc"
|
||||
fi
|
||||
fi
|
||||
|
||||
# set PATH so it includes user's private bin if it exists
|
||||
if [ -d "$HOME/bin" ] ; then
|
||||
PATH="$HOME/bin:$PATH"
|
||||
fi
|
||||
|
||||
# this is for the midnight-commander
|
||||
# to become the last directory the midnight commander was in
|
||||
# as the current directory when leaving the midnight commander
|
||||
#
|
||||
#. /usr/lib/mc/bin/mc.sh
|
||||
. /usr/share/mc/bin/mc.sh
|
||||
|
2
supported-files/user_templates/all/.ssh/authorized_keys2
Normal file
2
supported-files/user_templates/all/.ssh/authorized_keys2
Normal file
@ -0,0 +1,2 @@
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCyWbdnjnN/xfy1F6kPbsRXp8zvJEh8uHfTZuZKyaRV/iRuhsvqRiDB+AhUAlIaPwgQ8itaI6t5hijD+sZf+2oXXbNy3hkOHTrCDKCoVAWfMRKPuA1m8RqS4ZXXgayaeCzVnPEq6UrC5z0wO/XBwAktT37RRSQ/Hq2zCHy36NQEQYrhF3+ytX7ayb10pJAMVGRctYmr5YnLEVMSIREbPxZTNc80H1zqNPVJwYZhl8Ox61U4MoNhJmJwbKWPRPZsJpbTh9W2EU37tdwRBVQP6yxhua3TR6C7JnNPVY0IK23BYlNtQEDY4PHcIuewkamEWpP0+jhEjtwy1TqjRPdU/y+2uQjC6FSOVMsSPxgd8mw4cSsfp+Ard7P+YOevUXD81+jFZ3Wz0PRXbWMWAm2OCe7n8jVvkXMz+KxSYtrsvKNw1WugJq1z//bJNMTK6ISWpqaXDevGYQRJJ8dPbMmbey40WpS5CA/l29P7fj/cOl59w3LZGshrMOm7lVz9qysVV0ylfE3OpfKCGitkpY0Asw4lSkuLHoNZnDo6I5/ulRuKi6gsLk27LO5LYS8Zm1VOis/qHk1Gg1+QY47C4RzdTUxlU1CGesPIiQ1uUX2Z4bD7ebTrrOuEFcmNs3Wu5nif21Qq0ELEWhWby6ChFrbFHPn+hWlDwNM0Nr11ftwg0+sqVw== root@luna
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC5IhVprsvVOcFPbZzD9xR0nCjZ/9qVG6RhLJ7QBSts81nRvLwnmvcMBHSf5Rfaigey7Ff5dLHfJnxRE0KDATn6n2yd/5mXpn2GAA8hDVfhdsmsb5U7bROjZNr8MmIUrP7c3msUGx1FtvzhwxtyvIWOFQpWx+W5biBa6hFjIxT1pkUJqe6fclp7xbGYKZiqZRBS4qKG5CpKnisuOYDsqYPND+OkU+PShoxGVzp1JywIVze7qeKv6GyYbRA9SP9Np+5Mit6B21Io4zOI81c2Rz6sPX7mwEAQEs7iCm2hzG8qJws45Lb4ERqDkVEVhGNUyHjHgGebS1sZx1mLExdurXlPm1l/EamkncDFDCutHXtLP7lsFFiym7fKUjSEgiiLmyu5Xm+mwZvesKa1FYNaeiFWfYZpCJrNzIk+ffs+mgg3kmL4Sd4Ooy7jXPX+WJe5Xyh1KLU/+Wj2TVrhN+LbmupYAti/Wgd3DA1v601svmG82aLmyJRtKC0rGMePH3kDbtqU72kYpzI8mXERe1TIQ00Z77kQBR/7BF/9y5/0YmYDcXt1wNCoSie+mzz3xYcEdLAc7T+DhYpd4M6VgWnuz/exzRzhQwoSdEKkEED8CpEoBrEWEiMdrlElGmlkVomLU7P9i9j1rshX/pAq0asnqeSoPdC3vNbU3keiJQnhIHECvw== chris@luna
|
173
supported-files/user_templates/all/.vimrc
Normal file
173
supported-files/user_templates/all/.vimrc
Normal file
@ -0,0 +1,173 @@
|
||||
" An example for a vimrc file.
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last change: 1999 Sep 09
|
||||
"
|
||||
" To use it, copy it to
|
||||
" for Unix and OS/2: ~/.vimrc
|
||||
" for Amiga: s:.vimrc
|
||||
" for MS-DOS and Win32: $VIM\_vimrc
|
||||
|
||||
" This line should not be removed as it ensures that various options are
|
||||
" properly set to work with the Vim-related packages available in Debian.
|
||||
runtime! debian.vim
|
||||
|
||||
set nocompatible " Use Vim defaults (much better!)
|
||||
set bs=2 " allow backspacing over everything in insert mode
|
||||
set ai " always set autoindenting on
|
||||
" set backup " keep a backup file
|
||||
"set viminfo='20,\"50 " read/write a .viminfo file, don't store more
|
||||
" than 50 lines of registers
|
||||
set viminfo='20,\"50,:20,%,n~/.viminfo
|
||||
set history=50 " keep 50 lines of command line history
|
||||
set ruler " show the cursor position all the time
|
||||
set ignorecase " suchen case-insenitiv
|
||||
set showmatch " zeige passende klammern
|
||||
set shell=/bin/bash " shell to start with !
|
||||
set expandtab " tabs --> blanks
|
||||
set showmode " anzeige INSERT/REPLACE/...
|
||||
|
||||
" set smartcase " Do smart case matching
|
||||
|
||||
set incsearch " Incremental search
|
||||
" Start searching when you type the first character of
|
||||
" the search string. As you type in more characters, the
|
||||
" search is refined.
|
||||
|
||||
set t_Co=256 " To enable 256 colors in vim, put this your .vimrc before setting the colorscheme
|
||||
|
||||
" einrueckung
|
||||
set shiftwidth=3
|
||||
set tabstop=3
|
||||
" Round indent to multiple of 'shiftwidth' for > and < commands
|
||||
set shiftround
|
||||
|
||||
" For Win32 GUI: remove 't' flag from 'guioptions': no tearoff menu entries
|
||||
" let &guioptions = substitute(&guioptions, "t", "", "g")
|
||||
|
||||
" Don't use Ex mode, use Q for formatting
|
||||
map Q gq
|
||||
|
||||
" Make p in isual Visual mode replace the selected text with the "" register.
|
||||
vnoremap p <Esc>:let current_reg = @"<CR>gvdi<C-R>=current_reg<CR><Esc>
|
||||
|
||||
" Switch syntax highlighting on, when the terminal has colors
|
||||
" Also switch on highlighting the last used search pattern.
|
||||
if &t_Co > 2 || has("gui_running")
|
||||
syntax on
|
||||
set hlsearch
|
||||
endif
|
||||
|
||||
" Only do this part when compiled with support for autocommands.
|
||||
if has("autocmd")
|
||||
|
||||
" In text files, always limit the width of text to 78 characters
|
||||
autocmd BufRead *.txt set tw=78
|
||||
|
||||
augroup cprog
|
||||
" Remove all cprog autocommands
|
||||
au!
|
||||
|
||||
" When starting to edit a file:
|
||||
" For C and C++ files set formatting of comments and set C-indenting on.
|
||||
" For other files switch it off.
|
||||
" Don't change the order, it's important that the line with * comes first.
|
||||
autocmd FileType * set formatoptions=tcql nocindent comments&
|
||||
autocmd FileType c,cpp set formatoptions=croql cindent comments=sr:/*,mb:*,el:*/,://
|
||||
augroup END
|
||||
|
||||
augroup gzip
|
||||
" Remove all gzip autocommands
|
||||
au!
|
||||
|
||||
" Enable editing of gzipped files
|
||||
" set binary mode before reading the file
|
||||
autocmd BufReadPre,FileReadPre *.gz,*.bz2 set bin
|
||||
autocmd BufReadPost,FileReadPost *.gz call GZIP_read("gunzip")
|
||||
autocmd BufReadPost,FileReadPost *.bz2 call GZIP_read("bunzip2")
|
||||
autocmd BufWritePost,FileWritePost *.gz call GZIP_write("gzip")
|
||||
autocmd BufWritePost,FileWritePost *.bz2 call GZIP_write("bzip2")
|
||||
autocmd FileAppendPre *.gz call GZIP_appre("gunzip")
|
||||
autocmd FileAppendPre *.bz2 call GZIP_appre("bunzip2")
|
||||
autocmd FileAppendPost *.gz call GZIP_write("gzip")
|
||||
autocmd FileAppendPost *.bz2 call GZIP_write("bzip2")
|
||||
|
||||
" After reading compressed file: Uncompress text in buffer with "cmd"
|
||||
fun! GZIP_read(cmd)
|
||||
let ch_save = &ch
|
||||
set ch=2
|
||||
execute "'[,']!" . a:cmd
|
||||
set nobin
|
||||
let &ch = ch_save
|
||||
execute ":doautocmd BufReadPost " . expand("%:r")
|
||||
endfun
|
||||
|
||||
" After writing compressed file: Compress written file with "cmd"
|
||||
fun! GZIP_write(cmd)
|
||||
if rename(expand("<afile>"), expand("<afile>:r")) == 0
|
||||
execute "!" . a:cmd . " <afile>:r"
|
||||
endif
|
||||
endfun
|
||||
|
||||
" Before appending to compressed file: Uncompress file with "cmd"
|
||||
fun! GZIP_appre(cmd)
|
||||
execute "!" . a:cmd . " <afile>"
|
||||
call rename(expand("<afile>:r"), expand("<afile>"))
|
||||
endfun
|
||||
|
||||
augroup END
|
||||
|
||||
" This is disabled, because it changes the jumplist. Can't use CTRL-O to go
|
||||
" back to positions in previous files more than once.
|
||||
if 0
|
||||
" When editing a file, always jump to the last cursor position.
|
||||
" This must be after the uncompress commands.
|
||||
autocmd BufReadPost * if line("'\"") && line("'\"") <= line("$") | exe "normal `\"" | endif
|
||||
endif
|
||||
|
||||
endif " has("autocmd")
|
||||
|
||||
" toggle syntax highlighting
|
||||
map <F12> :if exists("syntax_on") <Bar> syntax off <Bar> else <Bar> syntax on <Bar> endif <CR><ESC>
|
||||
map <F11> :nohls <CR>
|
||||
|
||||
" use <F6> to toggle line numbers
|
||||
nmap <silent> <F6> :set number!<CR>
|
||||
|
||||
|
||||
" If using a dark background within the editing area and syntax highlighting
|
||||
" turn on this option as well
|
||||
set background=dark
|
||||
|
||||
|
||||
" set color for search
|
||||
hi clear search
|
||||
hi search term=bold,reverse cterm=bold,reverse gui=bold,reverse
|
||||
|
||||
" set color for Comment
|
||||
hi clear Comment
|
||||
"highlight Comment term=bold cterm=bold ctermfg=LightBlue guifg=#80a0ff gui=bold
|
||||
"highlight Comment term=none cterm=none ctermfg=LightBlue guifg=#80a0ff gui=bold
|
||||
"highlight Comment term=bold cterm=bold ctermfg=grey guifg=#80a0ff gui=bold
|
||||
highlight Comment term=none cterm=none ctermfg=grey guifg=#80a0ff gui=bold
|
||||
"highlight Comment term=none cterm=none ctermfg=177 guifg=#80a0ff gui=bold
|
||||
"highlight Comment term=none cterm=none ctermfg=215 guifg=#80a0ff gui=bold
|
||||
|
||||
" Go back to the position the cursor was on the last time this file was edited
|
||||
au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")|execute("normal `\"")|endif
|
||||
|
||||
" visual shifting (does not exit Visual mode)
|
||||
vnoremap < <gv
|
||||
vnoremap > >gv
|
||||
|
||||
" Scroll when cursor gets within 3 characters of top/bottom edge
|
||||
set scrolloff=3
|
||||
|
||||
" Show line, column number, and relative position within a file in the status line
|
||||
" set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [ASCII=\%03.3b]\ [HEX=\%02.2B]\ [POS=%04l,%04v][%p%%]\ [LEN=%L]
|
||||
"set statusline=\ %F\ %(\|\ flags:\ %R%M%H%W\ %)%(\|\ type:\ %Y\ %)%(\|\ format:\ %{&ff}\ %)%(\|\ syntax:\ %{synIDattr(synID(line('.'),col('.'),0),'name')}%)\ \ %=line:\ %l/%L\ \|\ column:\ %c%V\ \|\ relative\:\ %p%%\
|
||||
set statusline=\ %F\ %(\|\ flags:\ %R%M%H%W\ %)%(\|\ type:\ %Y\ %)%(\|\ format:\ %{&ff}\ %)\ \ %=line:\ %l/%L\ \|\ col:\ %c%V\ \|\ %p%%
|
||||
" Always show status line, even for one window
|
||||
set laststatus=2
|
||||
highlight StatusLine cterm=none ctermfg=white ctermbg=blue
|
||||
|
@ -0,0 +1,4 @@
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCyWbdnjnN/xfy1F6kPbsRXp8zvJEh8uHfTZuZKyaRV/iRuhsvqRiDB+AhUAlIaPwgQ8itaI6t5hijD+sZf+2oXXbNy3hkOHTrCDKCoVAWfMRKPuA1m8RqS4ZXXgayaeCzVnPEq6UrC5z0wO/XBwAktT37RRSQ/Hq2zCHy36NQEQYrhF3+ytX7ayb10pJAMVGRctYmr5YnLEVMSIREbPxZTNc80H1zqNPVJwYZhl8Ox61U4MoNhJmJwbKWPRPZsJpbTh9W2EU37tdwRBVQP6yxhua3TR6C7JnNPVY0IK23BYlNtQEDY4PHcIuewkamEWpP0+jhEjtwy1TqjRPdU/y+2uQjC6FSOVMsSPxgd8mw4cSsfp+Ard7P+YOevUXD81+jFZ3Wz0PRXbWMWAm2OCe7n8jVvkXMz+KxSYtrsvKNw1WugJq1z//bJNMTK6ISWpqaXDevGYQRJJ8dPbMmbey40WpS5CA/l29P7fj/cOl59w3LZGshrMOm7lVz9qysVV0ylfE3OpfKCGitkpY0Asw4lSkuLHoNZnDo6I5/ulRuKi6gsLk27LO5LYS8Zm1VOis/qHk1Gg1+QY47C4RzdTUxlU1CGesPIiQ1uUX2Z4bD7ebTrrOuEFcmNs3Wu5nif21Qq0ELEWhWby6ChFrbFHPn+hWlDwNM0Nr11ftwg0+sqVw== root@luna
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC5IhVprsvVOcFPbZzD9xR0nCjZ/9qVG6RhLJ7QBSts81nRvLwnmvcMBHSf5Rfaigey7Ff5dLHfJnxRE0KDATn6n2yd/5mXpn2GAA8hDVfhdsmsb5U7bROjZNr8MmIUrP7c3msUGx1FtvzhwxtyvIWOFQpWx+W5biBa6hFjIxT1pkUJqe6fclp7xbGYKZiqZRBS4qKG5CpKnisuOYDsqYPND+OkU+PShoxGVzp1JywIVze7qeKv6GyYbRA9SP9Np+5Mit6B21Io4zOI81c2Rz6sPX7mwEAQEs7iCm2hzG8qJws45Lb4ERqDkVEVhGNUyHjHgGebS1sZx1mLExdurXlPm1l/EamkncDFDCutHXtLP7lsFFiym7fKUjSEgiiLmyu5Xm+mwZvesKa1FYNaeiFWfYZpCJrNzIk+ffs+mgg3kmL4Sd4Ooy7jXPX+WJe5Xyh1KLU/+Wj2TVrhN+LbmupYAti/Wgd3DA1v601svmG82aLmyJRtKC0rGMePH3kDbtqU72kYpzI8mXERe1TIQ00Z77kQBR/7BF/9y5/0YmYDcXt1wNCoSie+mzz3xYcEdLAc7T+DhYpd4M6VgWnuz/exzRzhQwoSdEKkEED8CpEoBrEWEiMdrlElGmlkVomLU7P9i9j1rshX/pAq0asnqeSoPdC3vNbU3keiJQnhIHECvw== chris@luna
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAxRcrdHX8UHik7l1gpm7Oc4t4+1AKrkcbGtFlzrlwHV4HmMf29nMxYWdOGUv47CFoAHCPSJAH2fnER22HUozsBlMkPrAgXTsMAfpMZB2gP+F7r4c7wiCuK1+uFy2dz2yBIG+1RK+ygJ5GickHPj7baWRQVbYwWeK15YJqL8oxrL6MpmNYr/cVZ7SDLRJp/44ZgnfxC83O00yJf8VEvoOvvj46JkhgnY9RETRfp7RaziIkJGs8EfNRZ6I0vRPC/shVTXf01GH5rdBcklZYZ2ptMvriyUZ2FfMMEOA86jWs73ZGuTcx8ZQGB3m9TCvz8kTBr9CKjz+fAkfKUpMbGOpO5w== root@backup
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAmQffh8lmO69ukeW0hC7wQ8EEqEsKPja5IvYr1fVqmR5gUJDRFQ015sxpIIuLgo4kCbe6pz7aV6rLUAxysMV06PbBRJPzq0SvaXek3Begygt11U0+HFQN7pVw+agxvbdE0YwxhOfJWl8f/wkti+p/G7+G7O0bMyFdzH2eeYXmzh3Nf4NoST8moQ2PVpDaJ73u/s7Z2oPng2LhVneGqyRdV40exiFOBS5pGJZ/10GZthkrhUAEGzPTusenN4+Vw2oriKP3+eyLzsB8qSPX5u7oR4Su9QY2VxTwkuXZDrxTBZwpIB/mXobMRZeRQxDGeSsU1mCf9cquanFLIx4a1ySUDw== root@backup.warenform.de
|
71
supported-files/user_templates/root/.bashrc
Normal file
71
supported-files/user_templates/root/.bashrc
Normal file
@ -0,0 +1,71 @@
|
||||
# ~/.bashrc: executed by bash(1) for non-login shells.
|
||||
|
||||
# don't put duplicate lines in the history. See bash(1) for more options
|
||||
# don't overwrite GNU Midnight Commander's setting of `ignorespace'.
|
||||
export HISTCONTROL=$HISTCONTROL${HISTCONTROL+,}ignoredups
|
||||
# ... or force ignoredups and ignorespace
|
||||
export HISTCONTROL=ignoreboth
|
||||
|
||||
# append to the history file, don't overwrite it
|
||||
shopt -s histappend
|
||||
|
||||
|
||||
# check the window size after each command and, if necessary,
|
||||
# update the values of LINES and COLUMNS.
|
||||
shopt -s checkwinsize
|
||||
|
||||
|
||||
# Note: PS1 and umask are already set in /etc/profile. You should not
|
||||
# need this unless you want different defaults for root.
|
||||
# PS1='${debian_chroot:+($debian_chroot)}\h:\w\$ '
|
||||
# umask 022
|
||||
export PS1='\h:\w \$ '
|
||||
umask 022
|
||||
|
||||
|
||||
# You may uncomment the following lines if you want `ls' to be colorized:
|
||||
export LS_OPTIONS='--color=auto'
|
||||
eval "`dircolors`"
|
||||
alias ls='ls $LS_OPTIONS'
|
||||
alias ll='ls $LS_OPTIONS -l'
|
||||
alias la='ls $LS_OPTIONS -al'
|
||||
alias l='ls $LS_OPTIONS -lA'
|
||||
#
|
||||
# Some more alias to avoid making mistakes:
|
||||
#alias rm='rm -i'
|
||||
#alias cp='cp -i'
|
||||
#alias mv='mv -i'
|
||||
|
||||
alias ..='cd ..'
|
||||
alias ...='cd ../..'
|
||||
alias ....='cd ../../..'
|
||||
|
||||
|
||||
alias poweroff='echo -e "\n\tplease use: /sbin/poweroff\n"'
|
||||
alias reboot='echo -e "\n\tplease use: /sbin/reboot\n"'
|
||||
|
||||
|
||||
# Alias definitions.
|
||||
# You may want to put all your additions into a separate file like
|
||||
# ~/.bash_aliases, instead of adding them here directly.
|
||||
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
|
||||
|
||||
if [ -f ~/.bash_aliases ]; then
|
||||
. ~/.bash_aliases
|
||||
fi
|
||||
|
||||
# enable programmable completion features (you don't need to enable
|
||||
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
|
||||
# sources /etc/bash.bashrc).
|
||||
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
|
||||
. /etc/bash_completion
|
||||
fi
|
||||
|
||||
|
||||
export EDITOR=vim
|
||||
|
||||
export LINES=64
|
||||
|
||||
## - set beep more quiet
|
||||
## -
|
||||
#xset b 10 500 50
|
24
supported-files/user_templates/root/.profile
Normal file
24
supported-files/user_templates/root/.profile
Normal file
@ -0,0 +1,24 @@
|
||||
# ~/.profile: executed by Bourne-compatible login shells.
|
||||
|
||||
if [ "$BASH" ]; then
|
||||
if [ -f ~/.bashrc ]; then
|
||||
. ~/.bashrc
|
||||
fi
|
||||
fi
|
||||
|
||||
# set PATH so it includes user's private bin if it exists
|
||||
if [ -d "$HOME/bin" ] ; then
|
||||
PATH="$HOME/bin:$PATH"
|
||||
fi
|
||||
if [ -d "$HOME/bin/admin-stuff" ] ; then
|
||||
PATH="$HOME/bin/admin-stuff:$PATH"
|
||||
fi
|
||||
|
||||
# this is for the midnight-commander
|
||||
# to become the last directory the midnight commander was in
|
||||
# as the current directory when leaving the midnight commander
|
||||
#
|
||||
# . /usr/lib/mc/bin/mc.sh
|
||||
. /usr/share/mc/bin/mc.sh
|
||||
|
||||
mesg n
|
Loading…
Reference in New Issue
Block a user