Maneira de não apagar o crontab ao executar o crontab -r

Iniciado por lsilva, 04 de Janeiro de 2014, 16:42

tópico anterior - próximo tópico

lsilva

Ola pessoal,

Há alguma Maneira de não apagar o crontab ao executar o crontab -r
Pelo menos solicitar, que ele peça uma confirmação?

sei que a opção -i do crontab pede uma confirmação antes de apagar o cron
criei um alias pro crontab:

alias crontab-r='crontab -r -i'

só que o alias não aceita que você crie nome de alias com espaço nem com caracter especial
Com isso não tem como criar um alias com o seguinte nome: crontab -r
Ai não adianta pois um usuário digitaria no prompt: crontab -r para apagar o cron e não o comando que criei
atraves do alias que foi: crontab-r

Alguem tem mais alguma ideia, de como fazer isso?
Obrigado.



irtigor


zekkerj

Respondendo à pergunta direta, vc não pode criar um alias para "crontab -r", mas pode criar um alias para "crontab", de forma que todo comando crontab vire um "crontab -i", e o "crontab -r" vire um "crontab -i -r".

alias crontab="crontab -i"

mas veja que tem várias formas de contornar o alias, como chamar o comando com caminho completo, usar o comando "unalias" ou ainda não carregar os scripts de inicialização que fazer a pré-carga dos aliases.

O que nos leva à pergunta que não quer calar... pq vc está colocando comandos no crontab do usuário, pra ele os apagar? Pq não os coloca num dos arquivos centrais?
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

lsilva

Ola zekkerj, obrigado pela resposta,

Na empresa que trabalho, ja usamos assim há algum tempo, pois temos um usuário padrão e colocamos no crontab deste usuário.


Tota

Citação de: lsilva online 06 de Janeiro de 2014, 11:18
Na empresa que trabalho, já usamos assim há algum tempo, pois temos um usuário padrão e colocamos no crontab deste usuário.

Já tentou marcar o arquivo como "somente leitura"? assim o usuário não tem permissão de apagar o arquivo sem usar "sudo"

Citar-rwx-r--r-- 1 root root 722 /<pasta>/crontab

assim feito um usuário sem uso do "sudo" não pode remover o pacote.

Faça um teste aí para ver no que dá...

[]'s

zekkerj

Citação de: lsilva online 06 de Janeiro de 2014, 11:18
Ola zekkerj, obrigado pela resposta,

Na empresa que trabalho, ja usamos assim há algum tempo, pois temos um usuário padrão e colocamos no crontab deste usuário.

Rapá... usuário padrão é sempre uma péssima idéia. Um bando de gente usando o mesmo usuário é pedir pra ter problema, mais cedo ou mais tarde, e nessa hora todo mundo tira o cego da reta, pq qualquer um poderia ter feito a bobagem.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

lsilva

Pessoal, depois que eu criar a função abaixo:


function crontab() {
  case $* in
    -r* ) shift 1; command crontab -r -i "$@" | more ;;
    * ) command crontab "$@" ;;
  esac
}


como devo fazer para criar o alias usando a função?

zekkerj

Vc tem que colocar esse script num arquivo que vc garanta que seja lido sempre que uma nova sessão de terminal seja aberta, como o ".bashrc" do usuário.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D