Sat 04 Oct 2008 05:18:05 AM UTC, comment #3:
Actually, that previous comment was from 2.6.25.
But this one is from 2.6.26:
commit 2d518f84e5ecd1d71df0e6ac5176d212f68c27ce
Author: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Date: Thu Jun 12 15:21:28 2008 -0700
fat: relax the permission check of fat_setattr()
New chmod() allows only acceptable permission, and if not acceptable, it
returns -EPERM. Old one allows even if it can't store permission to on
disk inode. But it seems too strict for users.
E.g. https://bugzilla.redhat.com/show_bug.cgi?id=449080: With new one,
rsync couldn't create the temporary file.
So, this patch allows like old one, but now it doesn't change the
permission if it can't store, and it returns 0.
Also, this patch fixes missing check.
Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
commit e97e8de388723f9491514fa0434ddf1fd713a188
Author: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Date: Mon Apr 28 02:16:26 2008 -0700
fat: fat_setattr() fix
Fix fat_setattr() on the case of showexec option. If user specified
showexec option, inode->i_mode may not have S_IXUGO. This just use
inode->i_mode to fix it.
And with this patch, we don't allow chmod() on memory inode, it's just
bad behaviour. IOW, we allow changing S_IWUGO only which can be stored
to disk.
Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
Sat 04 Oct 2008 05:12:27 AM UTC, comment #2:
In the Linux Kernel 2.6.26 ChangeLog, I found:
commit 19c561a60ffe52df88dd63de0bff480ca094efe4
Author: Jan Engelhardt <jengelh@computergmbh.de>
Date: Wed Feb 6 01:36:08 2008 -0800
fs/fat/: refine chmod checks
Prohibit mode changes in non-quiet mode that cannot be stored reliably with
the on-disk format.
Suppose a vfat filesystem is mounted with umask=0 and [not-quiet]. Then
all files will have mode 0777. Trying to change the owner will fail,
because fat does not know about owners or groups. chmod 0770, on the other
hand, will succeed, even though fat does not know about the permission
triplet [user/group/other].
So this patch changes fat's not-quiet behavior so that only UNIX modes are
accepted that can be mapped lossless between the fat disk format and the
local system. There is only one attribute, and that is the readonly
attribute, which is mapped to the UNIX write permission bit(s). chmod 0555
is therefore valid (taking away the +w bits <=> setting the readonly
attribute). Since chmod 0775 and chmod 0755 is an ambiguous case as to
whether to set or clear the readonly bit, these modes are also denied.
In quiet mode, chmod and chown will continue to "succeed" as they did
before, meaning that a subsequent stat() will temporarily return the new
mode as long as the inode is not reread from disk, and chown will silently
do nothing, not even return the new uid/gid in stat().
Signed-off-by: Jan Engelhardt <jengelh@computergmbh.de>
Cc: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
Mon 04 Aug 2008 09:01:01 AM UTC, original submission:
Hi
I am backing up my ext3 drive to a fat32 usb drive. Since I am not doing it very regularly, I don't know exaktly when it stopped working. Around that time Debian testing moved from 1.1.15 to 1.1.16. In case this is a Debian only problem just tell me and I will go to them.
I created a test directory containing nothing but the empty file test.dat and tried to back it up. (see below)
Thank you for your efforts
using Debian testing
$ rdiff-backup -v9 . /backup/test/
Mon Aug 4 10:36:44 2008 Using rdiff-backup version 1.1.17
Mon Aug 4 10:36:44 2008 Cannot change permissions on target directory.
Mon Aug 4 10:36:44 2008 Making directory /backup/test/rdiff-backup-data
Mon Aug 4 10:36:44 2008 ACLs not supported by filesystem at .
Mon Aug 4 10:36:44 2008 Unable to import win32security module. Windows ACLs
not supported by filesystem at .
Mon Aug 4 10:36:44 2008 escape_dos_devices not required by filesystem at .
Mon Aug 4 10:36:44 2008 -----------------------------------------------------------------
Detected abilities for source (read only) file system:
Access control lists Off
Extended attributes On
Windows access control lists Off
Case sensitivity On
Escape DOS devices Off
Mac OS X style resource forks Off
Mac OS X Finder information Off
-----------------------------------------------------------------
Mon Aug 4 10:36:44 2008 Making directory /backup/test/rdiff-backup-data/rdiff-backup.tmp.0
Mon Aug 4 10:36:44 2008 Touching /backup/test/rdiff-backup-data/rdiff-backup.tmp.0/5-_ a.snapshot.gz
Mon Aug 4 10:36:44 2008 Deleting /backup/test/rdiff-backup-data/rdiff-backup.tmp.0/5-_ a.snapshot.gz
Mon Aug 4 10:36:44 2008 Touching /backup/test/rdiff-backup-data/rdiff-backup.tmp.0/uniᄉ
Mon Aug 4 10:36:44 2008 Deleting /backup/test/rdiff-backup-data/rdiff-backup.tmp.0/uniᄉ
Mon Aug 4 10:36:44 2008 Touching /backup/test/rdiff-backup-data/rdiff-backup.tmp.0/:\"
Mon Aug 4 10:36:44 2008 Touching /backup/test/rdiff-backup-data/rdiff-backup.tmp.0/A
Mon Aug 4 10:36:44 2008 Deleting /backup/test/rdiff-backup-data/rdiff-backup.tmp.0/A
Mon Aug 4 10:36:44 2008 Touching /backup/test/rdiff-backup-data/rdiff-backup.tmp.0/foo
Mon Aug 4 10:36:44 2008 Deleting /backup/test/rdiff-backup-data/rdiff-backup.tmp.0/foo
Mon Aug 4 10:36:44 2008 Making directory /backup/test/rdiff-backup-data/rdiff-backup.tmp.0/hl
Mon Aug 4 10:36:44 2008 Touching /backup/test/rdiff-backup-data/rdiff-backup.tmp.0/hardlinked_file1
Mon Aug 4 10:36:44 2008 Hard linking /backup/test/rdiff-backup-data/rdiff-backup.tmp.0/hl/hardlinked_file2 to /backup/test/rdiff-backup-data/rdiff-backup.tmp.0/hardlinked_file1
Mon Aug 4 10:36:44 2008 Warning: hard linking not supported by filesystem at /backup/test/rdiff-backup-data
Mon Aug 4 10:36:44 2008 Extended attributes not supported by filesystem at /backup/test/rdiff-backup-data/rdiff-backup.tmp.0
Mon Aug 4 10:36:44 2008 ACLs not supported by filesystem at /backup/test/rdiff-backup-data/rdiff-backup.tmp.0
Mon Aug 4 10:36:44 2008 Unable to import win32security module. Windows ACLs
not supported by filesystem at /backup/test/rdiff-backup-data/rdiff-backup.tmp.0
Mon Aug 4 10:36:44 2008 Touching /backup/test/rdiff-backup-data/rdiff-backup.tmp.0/dir_inc_check
Mon Aug 4 10:36:44 2008 Deleting /backup/test/rdiff-backup-data/rdiff-backup.tmp.0/dir_inc_check
Mon Aug 4 10:36:44 2008 Touching /backup/test/rdiff-backup-data/rdiff-backup.tmp.0/regfile
Mon Aug 4 10:36:44 2008 Deleting /backup/test/rdiff-backup-data/rdiff-backup.tmp.0/regfile
Mon Aug 4 10:36:44 2008 Touching /backup/test/rdiff-backup-data/rdiff-backup.tmp.0/high_perms_file
Mon Aug 4 10:36:44 2008 Touching /backup/test/rdiff-backup-data/rdiff-backup.tmp.0/high_perms_dir
Mon Aug 4 10:36:44 2008 Deleting /backup/test/rdiff-backup-data/rdiff-backup.tmp.0/high_perms_file
Mon Aug 4 10:36:44 2008 Deleting /backup/test/rdiff-backup-data/rdiff-backup.tmp.0/high_perms_dir
Mon Aug 4 10:36:44 2008 Touching /backup/test/rdiff-backup-data/rdiff-backup.tmp.0/symlinked_file1
Mon Aug 4 10:36:44 2008 Deleting /backup/test/rdiff-backup-data/rdiff-backup.tmp.0/symlinked_file1
Mon Aug 4 10:36:44 2008 escape_dos_devices not required by filesystem at /backup/test/rdiff-backup-data/rdiff-backup.tmp.0
Mon Aug 4 10:36:44 2008 Deleting /backup/test/rdiff-backup-data/rdiff-backup.tmp.0
Mon Aug 4 10:36:44 2008 Removing directory /backup/test/rdiff-backup-data/rdiff-backup.tmp.0
Mon Aug 4 10:36:44 2008 -----------------------------------------------------------------
Detected abilities for destination (read/write) file system:
Ownership changing Off
Hard linking N/A
fsync() directories On
Directory inc permissions Off
High-bit permissions Off
Symlink permissions Off
Extended filenames On
Windows reserved filenames On
Access control lists Off
Extended attributes Off
Windows access control lists Off
Case sensitivity On
Escape DOS devices Off
Mac OS X style resource forks Off
Mac OS X Finder information Off
-----------------------------------------------------------------
Mon Aug 4 10:36:44 2008 Backup: must_escape_dos_devices = 0
Mon Aug 4 10:36:44 2008 Making directory /backup/test/rdiff-backup-data/increments
Mon Aug 4 10:36:44 2008 Starting mirror . to /backup/test
Mon Aug 4 10:36:44 2008 Processing changed file .
Mon Aug 4 10:36:44 2008 Processing changed file test.dat
Mon Aug 4 10:36:44 2008 Regular copying ('test.dat',) to /backup/test/rdiff-backup.tmp.1
Mon Aug 4 10:36:44 2008 Writing file object to /backup/test/rdiff-backup.tmp.1
Mon Aug 4 10:36:44 2008 Copying attributes from ('test.dat',) to /backup/test/rdiff-backup.tmp.1
Mon Aug 4 10:36:44 2008 Exception '[Errno 1] Operation not permitted: '/backup/test/rdiff-backup.tmp.1'' raised of class '<type 'exceptions.OSError'>':
File "/var/lib/python-support/python2.5/rdiff_backup/Main.py", line 302, in error_check_Main
try: Main(arglist)
File "/var/lib/python-support/python2.5/rdiff_backup/Main.py", line 322, in Main
take_action(rps)
File "/var/lib/python-support/python2.5/rdiff_backup/Main.py", line 278, in take_action
elif action == "backup": Backup(rps[0], rps[1])
File "/var/lib/python-support/python2.5/rdiff_backup/Main.py", line 344, in Backup
backup.Mirror(rpin, rpout)
File "/var/lib/python-support/python2.5/rdiff_backup/backup.py", line 38, in Mirror
DestS.patch(dest_rpath, source_diffiter)
File "/var/lib/python-support/python2.5/rdiff_backup/backup.py", line 232, in patch
ITR(diff.index, diff)
File "/var/lib/python-support/python2.5/rdiff_backup/rorpiter.py", line 281, in _call_
last_branch.fast_process(*args)
File "/var/lib/python-support/python2.5/rdiff_backup/backup.py", line 529, in fast_process
if self.patch_to_temp(mirror_rp, diff_rorp, tf):
File "/var/lib/python-support/python2.5/rdiff_backup/backup.py", line 556, in patch_to_temp
rpath.copy_attribs(diff_rorp, new)
File "/var/lib/python-support/python2.5/rdiff_backup/rpath.py", line 185, in copy_attribs
rpout.chmod(rpin.getperms())
File "/var/lib/python-support/python2.5/rdiff_backup/rpath.py", line 898, in chmod
self.conn.os.chmod(self.path, permissions & Globals.permission_mask)
Traceback (most recent call last):
File "/usr/bin/rdiff-backup", line 23, in <module>
rdiff_backup.Main.error_check_Main(sys.argv[1:])
File "/var/lib/python-support/python2.5/rdiff_backup/Main.py", line 302, in error_check_Main
try: Main(arglist)
File "/var/lib/python-support/python2.5/rdiff_backup/Main.py", line 322, in Main
take_action(rps)
File "/var/lib/python-support/python2.5/rdiff_backup/Main.py", line 278, in take_action
elif action == "backup": Backup(rps[0], rps[1])
File "/var/lib/python-support/python2.5/rdiff_backup/Main.py", line 344, in Backup
backup.Mirror(rpin, rpout)
File "/var/lib/python-support/python2.5/rdiff_backup/backup.py", line 38, in Mirror
DestS.patch(dest_rpath, source_diffiter)
File "/var/lib/python-support/python2.5/rdiff_backup/backup.py", line 232, in patch
ITR(diff.index, diff)
File "/var/lib/python-support/python2.5/rdiff_backup/rorpiter.py", line 281, in _call_
last_branch.fast_process(*args)
File "/var/lib/python-support/python2.5/rdiff_backup/backup.py", line 529, in fast_process
if self.patch_to_temp(mirror_rp, diff_rorp, tf):
File "/var/lib/python-support/python2.5/rdiff_backup/backup.py", line 556, in patch_to_temp
rpath.copy_attribs(diff_rorp, new)
File "/var/lib/python-support/python2.5/rdiff_backup/rpath.py", line 185, in copy_attribs
rpout.chmod(rpin.getperms())
File "/var/lib/python-support/python2.5/rdiff_backup/rpath.py", line 898, in chmod
self.conn.os.chmod(self.path, permissions & Globals.permission_mask)
OSError: [Errno 1] Operation not permitted: '/backup/test/rdiff-backup.tmp.1'
|