Fix the way to get the sudoers directory

This commit is contained in:
Jeremy Gardais 2018-04-26 11:38:44 +02:00
parent 738e690582
commit 67b67e117b
Signed by: jegardai
GPG Key ID: E759BAA22501AF32
1 changed files with 29 additions and 16 deletions

View File

@ -10,7 +10,7 @@ ERROR=1
## GetDefaultUser {{{
function GetDefaultUser() {
for user in $(ListUsers); do
echo $user
echo "${user}"
return
done
}
@ -75,21 +75,20 @@ function GetMyHostKey() {
## IpAddress {{{
function IpAddress() {
local strMyIpAddress=''
local strOsName=$( uname )
strMyIpAddress=$(dig +short myip.opendns.com @resolver1.opendns.com)
if [ "$strMyIpAddress" == '' ]; then
if [ "${strMyIpAddress}" == '' ]; then
error "failed to retrieve the ip address of this machine"
return 1
fi
echo $strMyIpAddress
echo "{$strMyIpAddress}"
}
## }}}
## MyFqdn {{{
function MyFqdn() {
local strMyIpAddress=$( IpAddress ) # eg '129.20.27.49'
local strMyFqdn=$(host $strMyIpAddress | awk '{print $5}')
echo ${strMyFqdn%?} # remove the trailing '.'
local strMyFqdn=$(host "${strMyIpAddress}" | awk '{print $5}')
echo "${strMyFqdn%?}" # remove the trailing '.'
}
## }}}
@ -97,8 +96,8 @@ function MyFqdn() {
function ListUsers() {
local users=''
for user in $(ls -d /Users/[a-zA-Z]*); do
user=$(basename $user)
case "$user" in
user=$(basename "${users}")
case "${users}" in
'Shared'|'admin')
;;
*)
@ -106,16 +105,16 @@ function ListUsers() {
;;
esac
done
echo $users
echo "${users}"
}
## }}}
## AddUserBackuppc {{{
function AddUserBackuppc() {
local userToBackup="$1" # the login of the user to backup
local homeDir="$2" # par exemple '/var/lib/backuppc'
local homeDir="$2" # eg. '/var/lib/backuppc'
local userLogin='backuppc'
local groupId=$(id -g $userToBackup)
local groupId=$(id -g "${userToBackup}")
maxid=$(dscl . -list /Users UniqueID | awk '$2 < 1000 {print $2}' | sort -ug | tail -1)
newid=$((maxid+1))
mkdir -p "$homeDir"
@ -147,20 +146,34 @@ function AddUserBackuppc() {
## AllowBackuppcSudo {{{
function AllowBackuppcSudo() {
# Get the configuration directory for sudoers
# Get sudoers directory from the configuration
local sudoersDir=$(grep "^#includedir " /etc/sudoers | cut -d" " -f2)
if [ -f /etc/sudoers ]; then
local sudoersDir=$(grep "^#includedir " /etc/sudoers | cut -d" " -f2)
if [ ! "${sudoersDir}" == '' ]; then
printf "%b\n" "Configuration de sudo pour BackupPC."
else
echo "#includedir /etc/sudoers.d" >> /etc/sudoers
printf '\e[1;33m%-6s\e[m\n' "DEBUG: Ajout de ${sudoersDir} dans le fichier sudoers."
fi
elif [ -f /private/etc/sudoers ]; then
local sudoersDir=$(grep "^#includedir " /private/etc/sudoers | cut -d" " -f2)
if [ ! "${sudoersDir}" == '' ]; then
printf "%b\n" "Configuration de sudo pour BackupPC."
else
printf '\e[1;31m%-6s\e[m\n' "ERREUR: Impossible de trouver le fichier de configuratio de sudo."
echo "#includedir /private/etc/sudoers.d" >> /private/etc/sudoers
printf '\e[1;33m%-6s\e[m\n' "DEBUG: Ajout de ${sudoersDir} dans le fichier sudoers."
fi
else
printf '\e[1;31m%-6s\e[m\n' "ERREUR: Impossible de trouver un fichier de configuratio pour sudo."
return "$ERROR"
fi
# Ensure to create the sudoers directory
sudo mkdir -p -- "${sudoersDir}"
printf '\e[1;33m%-6s\e[m\n' "DEBUG: Création du dossier ${sudoersDir}."
printf '\e[1;33m%-6s\e[m\n' "DEBUG: Création du dossier pour les sudoers ${sudoersDir}."
# Allow user to use rsync with sudo
# Allow backuppc user to use rsync with sudo
sudo sh -c "echo '${userLogin} ALL=(ALL:ALL) NOEXEC:NOPASSWD: /usr/bin/rsync' > ${sudoersDir}/backuppc_noexec"
printf '\e[1;33m%-6s\e[m\n' "DEBUG: ajout de '${userLogin} ALL=(ALL:ALL) NOEXEC:NOPASSWD: /usr/bin/rsync'"
printf '\e[1;33m%-6s\e[m\n' "DEBUG: dans le fichier ${sudoersDir}/backuppc_noexec."
@ -294,7 +307,7 @@ AddUserBackuppc "${input_login}" "${homebackuppc}"
mkdir -p -- "${homebackuppc}"/.ssh
printf '\e[1;33m%-6s\e[m\n' "DEBUG: Création du répertoire .ssh de l'utilisateur: ${homebackuppc}/.ssh"
echo "from=\"129.20.203.16\" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDIhMc8ixQXfWDACJy4q0v8T877UxahhCjO51PQFzylwVpf88LX3yWeDrWIW0NRu0zoSm396mig918OpD5ggqML/QbYbQsoDdAFUV/tK4JU6UJgEQIl25MOcUBCFepsFBGS09CH/V07xSUqSP/+beeTRLNO2CQzk3S2y3YfkXpM7KmOGfeLgoCaQAcxIkgLXeM3TpCZEzJDlZ8c8k/DjVvsgwCpQktYzNo2b37KHLLfgyW9KSo6N9sReUuNQjS6lu8rjrXfc6+J0pY2D6IxWptTWL/JVrhFCUqe4QQy+xYjoR41wqnAQyl/kOcyBNhSvojMKwQT6vlPwru6pOno16/X backuppc@backuppc.ipr.univ-rennes1.fr" > "${homebackuppc}"/.ssh/authorized_keys
printf '\e[1;33m%-6s\e[m\n' "DEBUG: Ajout de la clef SSH du serveur dans "${homebackuppc}"/.ssh/authorized_keys."
printf '\e[1;33m%-6s\e[m\n' "DEBUG: Ajout de la clef SSH du serveur dans ${homebackuppc}/.ssh/authorized_keys"
chown -R backuppc "${homebackuppc}"/.ssh/
printf '\e[1;33m%-6s\e[m\n' "DEBUG: chown -R backuppc ${homebackuppc}/.ssh/"