Add functions for backuppc user
Create the user. Allow the backuppc user to use rsync with sudo without password.
This commit is contained in:
parent
4d41973e92
commit
febfa4ecc4
|
@ -94,6 +94,63 @@ function ListUsers() {
|
||||||
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 userLogin='backuppc'
|
||||||
|
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"
|
||||||
|
id "$newid" &> /dev/null
|
||||||
|
if [ $? = 0 ]; then
|
||||||
|
echo "unable to find a suitable uid for user backuppc ($newid is already used)"
|
||||||
|
exit $ERROR
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create user
|
||||||
|
#dscl . -create "/Users/$userLogin"
|
||||||
|
#dscl . -create "/Users/$userLogin" UserShell /bin/bash
|
||||||
|
#dscl . -create "/Users/$userLogin" RealName "backuppc"
|
||||||
|
#dscl . -create "/Users/$userLogin" UniqueID "$newid"
|
||||||
|
#dscl . -create "/Users/$userLogin" PrimaryGroupID "$groupId"
|
||||||
|
#dscl . -create "/Users/$userLogin" NFSHomeDirectory "$homeDir"
|
||||||
|
#dscl . -create "/Users/$userLogin" IsHidden 1 # hide from login window
|
||||||
|
printf '\e[1;31m%-6s\e[m\n' "DEBUG : Création de l'utilisateur ${userLogin}."
|
||||||
|
|
||||||
|
# Homedir permissions
|
||||||
|
#chown -R "$userLogin:$groupId" "$homeDir"
|
||||||
|
printf '\e[1;31m%-6s\e[m\n' "DEBUG : chown -R $userLogin:$groupId $homeDir"
|
||||||
|
|
||||||
|
allowUserToConnectToThisMachineUsingSsh "${userLogin}"
|
||||||
|
|
||||||
|
AllowBackuppcSudo
|
||||||
|
}
|
||||||
|
# }}}
|
||||||
|
|
||||||
|
# AllowBackuppcSudo {{{
|
||||||
|
function AllowBackuppcSudo() {
|
||||||
|
# Get the configuration directory for sudoers
|
||||||
|
if [ -f /etc/sudoers ]; then
|
||||||
|
local sudoersDir=$(grep "^#includedir " /etc/sudoers | cut -d" " -f2)
|
||||||
|
elif [ -f /private/etc/sudoers ]; then
|
||||||
|
local sudoersDir=$(grep "^#includedir " /private/etc/sudoers | cut -d" " -f2)
|
||||||
|
else
|
||||||
|
printf '\e[1;31m%-6s\e[m\n' "Unable to find sudo configuration file."
|
||||||
|
return "$ERROR"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#sudo mkdir -p -- "${sudoersDir}"
|
||||||
|
printf '\e[1;31m%-6s\e[m\n' "DEBUG : Création du dossier ${sudoersDir}."
|
||||||
|
|
||||||
|
# Allow 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;31m%-6s\e[m\n' "DEBUG : ajout de '${userLogin} ALL=(ALL:ALL) NOEXEC:NOPASSWD: /usr/bin/rsync'"
|
||||||
|
printf '\e[1;31m%-6s\e[m\n' "DEBUG : dans le fichier ${sudoersDir}/backuppc_noexec."
|
||||||
|
}
|
||||||
|
# }}}
|
||||||
|
|
||||||
#### VÉRIFIER QUE L’ON A BIEN LES DROITS ADMIN ####
|
#### VÉRIFIER QUE L’ON A BIEN LES DROITS ADMIN ####
|
||||||
if [ "$EUID" -ne 0 ]; then
|
if [ "$EUID" -ne 0 ]; then
|
||||||
printf '\e[1;31m%-6s\e[m' "À lancer avec les droits administrateur "
|
printf '\e[1;31m%-6s\e[m' "À lancer avec les droits administrateur "
|
||||||
|
|
Loading…
Reference in New Issue