Como dar permissões de execução para o arquivo do usuário root no Ubuntu?

1

Tenho acompanhado este guia do iptables on-line e me deparei com um problema em que tentei me dar permissões de execução para um arquivo que pertence ao root e armazenado na pasta base do root. Aqui está o documento on-line como referência: Guia do iptables

Diz:

Certifique-se de que você pode executar o script

$ chmod +x /root/fw.stop

E então:

Você pode executar o script

$ /root/fw.stop

Quando entrei no comando "chmod + x /root/fw.stop", recebi um erro "chmod: não consigo acessar '/root/fw.stop': Permissão negada".

Obviamente, se eu quiser rodar o script, eu posso simplesmente digitar "sudo /root/fw.stop", mas estou tentando aprender; o escritor do guia apenas cometeu um erro com a sua sintaxe que ele listou, ou estou fazendo algo errado?

Eu tentei "sudo bash -c" chmod + x /root/fw.stop "" e tentei executar o script novamente como eu mesmo com o comando "/root/fw.stop" mas recebi o erro "bash : /root/fw.stop: Permissão negada ".

    
por John 'Shuey' Schuepbach 28.03.2011 / 12:27

4 respostas

2

O autor cometeu vários erros.

  1. O script deve ser criado, chmod'd e executado como root.
  2. O script está faltando o shebang para dizer qual interpretador usar.

Isso é o que você deve fazer:

Como root (sudo -s), crie o arquivo /root/fw.stop:

$ sudo -s
Enter foo's password:
# nano -w /root/fw.stop

Em seguida, digite o seguinte script (observe a mudança na primeira linha):

#!/bin/sh
echo "Stopping firewall and allowing everyone..."
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

Então você pode chmod-lo (ainda como root):

# chmod +x /root/fw.stop

Então você pode executá-lo (sim, ainda como root):

# /root/fw.stop

Se você quiser executá-lo como qualquer um que não seja root, deverá usar o sudo ( sudo /root/fw.stop ). O bit setuid é possível, mas uma falha séria de segurança, pois permitiria que qualquer pessoa executasse o script.

    
por 28.03.2011 / 12:50
1

Eu li o artigo do autor e encontrei estes:

$chmod +x /root/fw.stop

You can run the script

$/root/fw.stop

Autor teve alguns erros aqui, vamos ver o prompt de comando, $ deve ser # , ou iptables deve ser executado como root, também mesmo com fw.stop .

    
por 28.03.2011 / 12:40
1

Sim, onde diz:

$ chmod +x /root/fw.stop
$ /root/fw.stop

o autor deveria ter escrito

# chmod +x /root/fw.stop
# /root/fw.stop

porque o restante do documento usa # para significar um comando que deve ser executado como root e $ para significar um comando que deve ser executado como um usuário, e esses comandos não funcionarão como um não raiz usuário.

O primeiro não funcionaria porque o usuário não poderá alterar as permissões no arquivo de propriedade do root.

O segundo não funcionaria porque

  1. o usuário não terá permissão para acessar o script porque o usuário não tem a permissão +x em /root
  2. o script será executado em iptables e somente o root poderá executar iptables
por 28.03.2011 / 12:36
0

Eu acho que esses erros engraçados sobre permissão negada são porque você não é root quando tenta "chmod + x".

O "sudo -s" ajuda?

HTH

JR

    
por 28.03.2011 / 12:35