Мне установили его на моем веб-сервере. У меня есть полномочия на каталоге d---------
если я не должен получать доступ к нему, затем я:
at
задание для возврата ихЯ также удостоверяюсь, что держал его в курсе.
Эта маленькая однострочная строка выскакивает, если существует файловая система ro.
grep "[[:space:]]ro[[:space:],]" /proc/mounts
Предполагая, что у вас обычно нет файловой системы ro, такой как компакт-диск в приводе, этого достаточно для некоторых базовых типов мониторинга и не требуется изменять файловую систему для определения текущего состояния. Он также не предполагает тип вашей файловой системы. Вставьте его в grep -v iso9660, если вы хотите, чтобы ваши компакт-диски не записывались.
Если файловая система смонтирована, я был бы CD к временному каталогу и попытке создать файл. Код возврата скажет Вам, если файловая система будет Только для чтения или Чтение-запись при условии, что файловая система не полна (благодарит Willem).
У меня только что возникла эта проблема, и это настоящие пасты ...
Взгляните на / proc / mounts -
egrep " ro,|,ro " /proc/mounts
/dev/sda3 / ext4 ro,seclabel,relatime,barrier=1,data=ordered 0 0
/dev/sda5 /var ext4 ro,seclabel,relatime,barrier=1,data=ordered 0 0
FYI - Эти два раздела отображаются как монтируемые rw, когда просто с помощью команды mount.
Старый вопрос, но я наткнулся на него в поисках той же помощи и, похоже, нашел еще более простой способ без необходимости создания файла.
[ -w /root-rw ] && echo "rw" || echo "ro"
rw
[ -w /root-ro ] && echo "rw" || echo "ro"
ro
Конечно, root-ro смонтирован ro fs, а root-rw - это rw fs.
На основе ответа мерцающей мухи, под влиянием комментария WhiteKnight
Создайте функцию детектора мухи.
eval "function is_readonly () {
$( grep -P "\sro[\s,]" /proc/mounts | awk '{print "if echo $1 | grep -q \""$2"\"; then return 0;fi"}' )
return 1;}";
используйте ее для определения, находится ли путь на прочитанном только fs
is_readonly /path/to/file/on/read/only/fs && echo "sorry. can't delete that"
, и избавьтесь от него, когда это будет сделано
#dump temp function
unset -f is_readonly;
Вот мое решение:
if findmnt -n -o OPTIONS ${YOUR_MOUNT_POINT} | egrep "^ro,|,ro,|,ro$"; then
echo "Read only!"
fi
Подобно Антонио, вы можете использовать / proc / mounts, чтобы сделать то же самое. Используйте свой собственный диск вместо sda4.
cat / proc / mounts | grep / dev / sda4 | awk '{print substr ($ 4,1,2)}'