Seu script está alterando a permissão de 2 arquivos, / etc / sudoers e tempfl.log. Dividir o comando em duas linhas e você deve ficar bem.
Eu tenho um script Unix que cria um arquivo de log temporário, digamos tempfl.log
.
Quando este arquivo é criado, ele tem permissão rw-r--r--
.
Existe uma linha
chmod 0440 /etc/sudoers tempfl.log 2>&1
Mas quando o script é concluído, a permissão muda para r--r--r--
, mas deve ser rw-r--r--
. Se eu mudar a linha para
chmod 0644 /etc/sudoers tempfl.log
As permissões estão corretas para tempfl.log
, mas gera erros dizendo:
sudo: /usr/local/etc/sudoers is mode 0644, should be 0440
Eu não entendo o que o sudoers está fazendo e o que está errado.
Seu script está fazendo exatamente o que você está mandando fazer:
chmod 0440 /etc/sudoers tempfl.log
aplicará r--r-----
a ambos os arquivos.
Você realmente não deve ficar mexendo no arquivo sudoers
, a menos que esteja escrevendo scripts de administração e, mesmo assim, as permissões devem ser deixadas em paz, pois isso ajuda a proteger seu sistema. O próprio programa sudo
verifica as permissões do arquivo de configuração e avisa (como você viu). Escute isto. Obviamente sabe melhor que você: -)
Tem a certeza de que não está apenas a tentar executar determinadas partes do seu script em sudo
, como em:
sudo chmod 0440 tempfl.log 2>&1
Se não, e você realmente quer modificar ambos os arquivos (mas com permissões diferentes, use dois comandos separados:
chmod 0440 /etc/sudoers 2>&1
chmod 0644 tempfl.log 2>&1
Quando você escreve chmod 0440 /etc/sudoers tempfl.log
, altera as permissões de /etc/sudoers
e tempfl.log
para ambas as 0440, o que está errado.
Quando você escreve chmod 0644 /etc/sudoers tempfl.log
, as permissões de /etc/sudoers
e tempfl.log
são alteradas para ambos, sendo 0644, o que está errado.
Você precisa alterar as permissões em /etc/sudoers
? Você realmente queria escrever chmod 0644 tempfl.log
?