diff -pur eject-1/eject.c eject/eject.c --- eject-1/eject.c 2011-08-19 11:42:22.697388647 +0400 +++ eject/eject.c 2011-08-19 11:57:27.636724026 +0400 @@ -911,7 +911,12 @@ static void Unmount(const char *fullName /* Open a device file. */ static int OpenDevice(const char *fullName) { - int fd = open(fullName, O_RDONLY|O_NONBLOCK); + int fd = open(fullName, O_RDWR|O_NONBLOCK); + if (fd == -1 && errno == EACCES) { + if (v_option) + printf(_("%s: unable to open `%s' for R/W, SCSI commands can be fail. Trying Read-Only\n"), programName, fullName); + fd = open(fullName, O_RDONLY|O_NONBLOCK); + } if (fd == -1) { fprintf(stderr, _("%s: unable to open `%s'\n"), programName, fullName); exit(1);