Permissões do usuário

2

Existe alguma maneira com a qual, usando scripts de shell, eu posso executar um programa como outro usuário, em um diretório nomeado (aleatoriamente) de forma única, onde o usuário tem acesso rwx a todos os arquivos nesse diretório, mas não pode alterar nada fora dele.

i.e. Quando um programa é executado usando esse script em uma pasta, ele só pode acessar arquivos dentro da pasta e não pode alterar as configurações do sistema ou navegar para fora dessa pasta

    
por Akash 10.04.2011 / 12:43

2 respostas

2

Você pode usar rbash (ou bash -r ): é uma versão restrita de bash que impõe algumas limitações ao usuário em relação ao bash completo. De rbash man page:

  

Ele se comporta de forma idêntica ao bash com a exceção de que os seguintes itens não são permitidos ou não são executados:

   o      changing directories with cd
   o      setting or unsetting the values of SHELL, PATH, ENV, or BASH_ENV
   o      specifying command names containing /
   o      specifying a file name containing a / as an argument to the . builtin command
   o      Specifying a filename containing a slash as an argument to the -p option to the hash builtin command
   o      importing function definitions from the shell environment at startup
   o      parsing the value of SHELLOPTS from the shell environment at startup
   o      redirecting output using the >, >|, <>, >&, &>, and >> redirection operators
   o      using the exec builtin command to replace the shell with another command
   o      adding or deleting builtin commands with the -f and -d options to the enable builtin command
   o      Using the enable builtin command to enable disabled shell builtins
   o      specifying the -p option to the command builtin command
   o      turning off restricted mode with set +r or set +o restricted.

Para usar rbash de forma transparente, inicie seu script com #!/bin/rbash .

Espero que isso ajude.

    
por enzotib 10.05.2011 / 14:30
0

Uso:

sudo -u USERNAME

EDITAR: Para usar este comando sem digitar a senha, use:

echo PASSWORD | sudo -u USERNAME COMMAND

Substitua PASSWORD pela senha de USERNAME. Substitua USERNAME pelo nome de usuário. Substitua COMMAND pelo comando que você deseja executar.

Por exemplo:

echo password123 | sudo -u daniel cp ./file ./dir/filecopied

Espero que isso tenha ajudado você Daniel

    
por omnidan 10.04.2011 / 12:57