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
|
||||
}
|
||||
|
||||
# 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 ####
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
printf '\e[1;31m%-6s\e[m' "À lancer avec les droits administrateur "
|
||||
|
|
Loading…
Reference in New Issue