O Linux em geral está se movendo lentamente em direção a um sistema onde /
pode ser montado como "somente leitura" e outras partições podem ser montadas como "graváveis".
Este movimento é feito movendo coisas para diretórios com "run" como um sub-diretório. Aqueles são "graváveis". Quando você olhar para df -h
, verá alguns deles:
$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 5,8G 0 5,8G 0% /dev
tmpfs 1,2G 9,5M 1,2G 1% /run
/dev/sda2 46G 8,1G 36G 19% /
tmpfs 5,9G 31M 5,8G 1% /dev/shm
tmpfs 5,0M 4,0K 5,0M 1% /run/lock
tmpfs 5,9G 0 5,9G 0% /sys/fs/cgroup
/dev/sda1 47M 3,6M 43M 8% /boot/efi
/dev/sda5 34G 11G 22G 34% /home
/dev/sdb1 917G 235G 636G 27% /discworld
cgmfs 100K 0 100K 0% /run/cgmanager/fs
tmpfs 1,2G 76K 1,2G 1% /run/user/1000
Como outra medida, eles são (frequentemente) montados como um sistema de arquivos temporário (tmpfs).
Agora, para chegar ao ponto.
Como os arquivos no momento não são definidos por serem graváveis ou não, eles estão espalhados por todo o sistema de arquivos.
Seguindo o FHS e seguindo os diretórios principais:
-
/bin
,/lib
,/sbin
e/usr
podem ser montados somente leitura. -
/etc
,/home
,/srv
,/tmp
,/var
deve ser gravável. -
/dev
,/proc
,/selinux
e/sys
são manipulados por sistemas de arquivos especiais.
Readonlyroot nas páginas do Debian tem um artigo mais aprofundado sobre arquivos específicos que impedem que um diretório seja somente de leitura. Por exemplo, /etc/
é praticamente uma bagunça no que diz respeito a separá-lo em arquivos somente para leitura e graváveis.
O comando no final do link funciona apenas para zsh
. No chat @serg surgiu isso como uma alternativa:
{ lsof +L1; lsof|sed -n '/SYSV/d; /DEL\|(path /p;' ; } |grep -Ev '/(dev|home|tmp|var)'
Esta lista de comandos está aberta:
lsof /
E aqui está um filtro para mostrar apenas os IDs do processo que impedem que você monte como somente leitura:
lsof -F pa /home | awk '/^p/ {pid = substr($0, 2)} /^a.*w/ {print pid}'
Gilles apareceu com o último então vote na sua resposta:)