Permissões dependendo dos parâmetros passados para a aplicação

0

Eu tenho um aplicativo java que grava em uma tabela muito importante que eu tenho. Este é sudo protegido, mas este aplicativo leva um parâmetros para onde a saída deve ir. O padrão é o REAL DEAL, mas o parâmetro "output" tem prioridade sobre o padrão, portanto, se um usuário fornecer um caminho para o qual tenha permissão de gravação, digamos: /home/username/mystuff , gostaria que os usuários gravassem nesses arquivos. diretórios.

O aplicativo é iniciado em um script de shell, por isso estou querendo saber se posso verificar se a string não é igual a /path/to/real/deal e não vazia (pois /path/to/real/deal é o padrão) e permitir que os usuários gravem em lugares permissões para.

Minha impressão de permissões do Linux é que ele está ligado ao aplicativo em si e não pode ser aprovado condicionalmente, mas gostaria de saber se existe algum método bash fu ou alternativo que eu possa realizar para obter o resultado desejado.

Usando Ubuntu 10.04.4 LTS

    
por Engineiro 26.03.2013 / 17:31

1 resposta

0

As permissões do Linux estão vinculadas ao usuário (não ao aplicativo). Você pode obter o resultado desejado iniciando o script como um usuário normal:

OUTFILE="/home/username/mystuff"
DEFAULT="/path/to/real/deal"
touch "$OUTFILE" || OUTFILE="$DEFAULT"
sudo java_app "$OUTFILE"

O toque não funcionará em um diretório em que o usuário não tenha permissão de gravação. Nesse caso, o toque falhará e o arquivo de saída terá o caminho / nome padrão.
Sudo é invocado após este teste.

    
por thom 29.10.2013 / 04:37