Tem direitos durante o shell, mas não em um script (a menos que eu sudo)

0

Eu tenho uma confusão muito básica. Como funciona sudo ?

Eu notei que quando eu corri um script ele falhou, pois ele tentou gravar um arquivo em um diretório com as seguintes permissões:

$ ls -l thedir
drwxr--r-- usr grp

Mas quando executo o script como sudo -u usr , funcionou.

Se eu conseguir executar o script com êxito com o sudo, por que o script falhou em primeiro lugar?

Quero dizer, se eu tiver direitos suficientes para ser executado como esse usuário, devo ser capaz de executar o script com sucesso, em primeiro lugar, eu acho.

    
por Jim 02.07.2013 / 22:14

2 respostas

1

Só porque você tem a capacidade de agir como outro usuário, isso não dá ao seu usuário atual as mesmas permissões. As permissões não ocorrem em cascata para o usuário atual com base na capacidade da sua conta de usuário atual para atuar como outro usuário. sudo e su permitem que você "se torne" ou "atue como" outro usuário. Em outras palavras, quando você sudo você está realmente se tornando aquele usuário por um momento.

Mesmo se você fizer login na máquina como root e, em seguida, sudo ou su com outro usuário, como usuário, você terá as mesmas restrições (e permissão), pois para o sistema você é esse usuário, não root .

    
por 02.07.2013 / 23:44
0

Acho que a primeira coisa seria descobrir se o script está sendo executado como você.

#!/bin/bash
whoami

Chame da mesma forma que você chama o script em que está trabalhando (por exemplo, cronjob). Isso pode lhe dar uma pista caso o script esteja sendo executado como outro usuário.

    
por 02.07.2013 / 22:50