Add script 'add_new_user.sh'.
This commit is contained in:
		
							
								
								
									
										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 | ||||||
		Reference in New Issue
	
	Block a user