Package: etckeeper
Version: 0.48
Severity: important
Tags: squeeze

`etckeeper init` assumes, that `git checkout` sets permissions to either 644
or to 755, and, hence, does not remember mode for files with such modes.  But
this is true only, if umask was 022. Otherwise, some files, which were
originally 644 or 755, can become something like 640 or 750 (umask 027) after
`git checkout`.  `etckeeper init` can not restore mode for these files,
because it simply does not save mode for them.

How to reproduce:
root@shilvana:/etc# ls -l passwd
-rw-r--r-- 1 root root 2472 Nov 22 14:05 passwd
root@shilvana:/etc# umask 027
root@shilvana:/etc# git checkout passwd
root@shilvana:/etc# ls -l passwd
-rw-r----- 1 root root 2472 Nov 23 14:41 passwd
root@shilvana:/etc# etckeeper init
root@shilvana:/etc# ls -l passwd
-rw-r----- 1 root root 2472 Nov 23 14:41 passwd


-- System Information:
Debian Release: 6.0.3
  APT prefers stable-updates
  APT policy: (990, 'stable-updates'), (990, 'stable'), (100, 'unstable'), 
(100, 'testing')
Architecture: i386 (i686)

Kernel: Linux 2.6.32-5-686-bigmem (SMP w/2 CPU cores)
Locale: LANG=en_US.utf8, LC_CTYPE=ru_RU.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages etckeeper depends on:
ii  debconf [debconf-2.0]        1.5.36.1    Debian configuration management sy
ii  git [git-core]               1:1.7.2.5-3 fast, scalable, distributed revisi

Versions of packages etckeeper recommends:
ii  cron                          3.0pl1-116 process scheduling daemon

etckeeper suggests no packages.

-- Configuration Files:
/etc/etckeeper/etckeeper.conf changed:
VCS="git"
GIT_COMMIT_OPTIONS=""
HG_COMMIT_OPTIONS=""
BZR_COMMIT_OPTIONS=""
DARCS_COMMIT_OPTIONS="-a"
AVOID_COMMIT_BEFORE_INSTALL=1
HIGHLEVEL_PACKAGE_MANAGER=apt
LOWLEVEL_PACKAGE_MANAGER=dpkg

/etc/etckeeper/init.d/20restore-etckeeper changed:
set -e
maybe () {
        command="$1"
        shift 1
        if eval [ -e "\"\$$#\"" ]; then
                "$command" "$@"
        fi
}
if [ -e .etckeeper ]; then
        . ./.etckeeper
else
        touch .etckeeper
        chmod 600 .etckeeper
fi


-- debconf information:
  etckeeper/commit_failed:
  etckeeper/purge: true



-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to