Se eu criar um arquivo como um usuário não privilegiado e alterar o modo de permissões para 400, ele será visto como somente leitura, corretamente:
$ touch somefile
$ chmod 400 somefile
$ [ -w somefile ] && echo rw || echo ro
ro
Tudo está bem.
Mas então a raiz aparece:
# [ -w somefile ] && echo rw || echo ro
rw
Que diabos? Claro, o root pode gravar em arquivos somente leitura, mas não deve ter o hábito: as práticas recomendadas tendem a exigir que eu seja capaz de testar o bit de permissão de gravação e, se não for, foi definido dessa maneira por uma razão.
Acho que quero entender por que isso está acontecendo e como posso obter um código de retorno falso ao testar um arquivo que não possui o bit de gravação definido?
/etc/dhcp/dhcpd.conf, que pertence à raiz. Estou usando o fornecido pelo fornecedor dhcpd. Desastre total, não é? O arquivo é verificado em RCS, estou automatizar uso de rcsdiff, cie coporque temos operadores que precisam ... operar. A verificação de bits de permissão ( -wconforme detalhado por test(1)) seria a primeira linha de falha, trabalhando com base no que ci -udeixa um arquivo somente leitura. Estou abandonando isso e indo direto para rcsdiff -qe verificando $?. Desastroso dhcpd? Seria propriedade de dhcpd.
bashe testme levaram a acreditar que [ -wé para isso.
4.1.2(1)-release) e RHEL7 (4.2.46(2)-release).