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
, ci
e co
porque temos operadores que precisam ... operar. A verificação de bits de permissão ( -w
conforme detalhado por test(1)
) seria a primeira linha de falha, trabalhando com base no que ci -u
deixa um arquivo somente leitura. Estou abandonando isso e indo direto para rcsdiff -q
e verificando $?
. Desastroso dhcpd
? Seria propriedade de dhcpd
.
bash
e test
me levaram a acreditar que [ -w
é para isso.
4.1.2(1)-release
) e RHEL7 (4.2.46(2)-release
).