Package: dash
Version: 0.5.5.1-7.4
Severity: normal

While DASH properly reports that a *file* on a READONLY mount is not
writeable through its builtin 'test' function, it does not properly
detect that a *directory* is not writeable.

(filesystem type is not important, as this is true on NFS and EXT4
at least, and suspect it's fstype agnostic)

### filesystem is currently read-write
BASH:~# awk '$2=="/d2"{print $0}' /proc/mounts
/dev/sdd2 /d2 ext4 
rw,nosuid,nodev,relatime,errors=remount-ro,barrier=1,journal_checksum,nodelalloc,data=journal
 0 0

### remount filesystem read-only
BASH:~# mount -o remount,ro /d2

### See that 'bash' performs as expected...
### confirm filesystem is now read-only
BASH:~# awk '$2=="/d2"{print $0}' /proc/mounts
/dev/sdd2 /d2 ext4 
ro,nosuid,nodev,relatime,errors=remount-ro,barrier=1,journal_checksum,nodelalloc,data=journal
 0 0

### attempt to touch a file to confirm
BASH:~# touch /d2/foompy
touch: cannot touch `/d2/foompy': Read-only file system

### use our builtin command 'test' (as [) to confirm
### expected behaviour that files and directories are
### not writeable
BASH:~# [ ! -w /d2/foompy ] && echo "Not Writeable"
Not Writeable
BASH:~# [ ! -w /d2 ] && echo "Not Writeable"
Not Writeable

### invoke 'dash' to see the bug
BASH:~# /bin/dash
### use our builtin command 'test' (as [) to confirm
### that files are not writeable as expected
DASH# [ ! -w /d2/foompy ] && echo "Not Writeable"
Not Writeable

### use out builtin command 'test' (as [) to confirm
### that directories are not writeable as expected,
### however, we do NOT get the expected response.
DASH# [ ! -w /d2 ] && echo "Not Writeable"
# [ -w /d2 ] && echo "Writeable"
Writeable
### Not even if the directory is fully declared:
# [ ! -w /d2/. ] && echo "Not Writeable"
#

Unless i'm wrong, the POSIX spec shows nothing for 'test'
that would indicate that behaviour should be different
for file versus directory.


-- System Information:
Debian Release: 6.0.4
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.32-5-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1)
Shell: /bin/sh linked to /bin/dash

Versions of packages dash depends on:
ii  debianutils                   3.4        Miscellaneous utilities specific t
ii  dpkg                          1.15.8.12  Debian package management system
ii  libc6                         2.11.3-3   Embedded GNU C Library: Shared lib

dash recommends no packages.

dash suggests no packages.

-- debconf information:
* dash/sh: true



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to