bash -w (доступен для записи в файл) не возвращает ожидаемый результат - PullRequest
0 голосов
/ 26 апреля 2018

У меня есть файл, который переключает разрешения по желанию, поэтому я пытаюсь его проверить. Я создал простой скрипт bash, чтобы проверить, доступен ли файл для записи с использованием [ -w $FILE], но результаты не такие, как ожидалось.

Чтобы сломать это, я тестирую его на файле anaconda-ks.cfg в корне, который я запустил chmod 000 на:

----------. 1 root root     2222 Apr  6 12:38 anaconda-ks.cfg

Очевидно, не для записи. Но вывод следующий:

# test -w anaconda-ks.cfg ; echo $?
0

Запуск test -w от имени обычного пользователя дает ожидаемый результат. Глядя на stat в этом файле возвращается:

  File: ‘anaconda-ks.cfg’
  Size: 2222            Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 640843      Links: 1
Access: (0000/----------)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:admin_home_t:s0
...
#

Если это поможет, это в bash v4.2.46

...