Alterando permissões para / var / www / html

12

Estudei este tópico https://help.ubuntu.com/community/FilePermissions por um tempo e não consigo fazê-lo funcionar por algum motivo.

Particularmente, essas linhas me interessam mais:

Para alterar todas as permissões de cada arquivo e pasta em um diretório especificado de uma só vez, use sudo chmod com -R

$ sudo chmod 777 -R /path/to/someDirectory
$ ls -l
total 3
-rwxrwxrwx  1 user user 0 Nov 19 20:13 file1
drwxrwxrwx  2 user user 4096 Nov 19 20:13 folder
-rwxrwxrwx  1 user user 0 Nov 19 20:13 file2

Aqui está o que eu digitei:

mark@ubuntuserver:~$ sudo chmod 755 /var/www/html
mark@ubuntuserver:~$ ls -l
total 0

Depois verifiquei as alterações no sftp:

sftp> cd /
sftp> cd var/www/html
sftp> pwd
Remote working directory: /var/www/html
sftp> ls -l
-rw-r--r--    1 root     root        11321 Apr 10 20:07 index.html

A partir da saída, fica claro que o diretório html ainda pode ser modificado apenas pela raiz.

Como posso mudar isso da maneira que eu (não root) posso enviar arquivos para o diretório html?

Eu também testei:

O proprietário de um arquivo pode ser alterado usando o comando chown. Por exemplo, para alterar o proprietário do arquivo foobar para tux:

$ sudo chown tux foobar

Eu digitei no servidor:

sudo chown mark owner

sem efeito.

Mark Alexa
fonte
Está faltando a opção -r para recursiva. E 777 é - nunca - a alteração correta a ser feita (a menos que você também defina a opção t (bit fixo).) Pergunta: por que o dir está vazio no segundo comando e preenchido com index.html no terceiro comando? Esses comandos NÃO são . emitido com as mesmas situações sudo chown mark owner? o que é que devo fazer Como é que você introduzir um ficheiro ou dir chamado "proprietário" lá?
Rinzwind
Para se apropriar de um arquivo ou diretório, é necessário especificar quem é o novo proprietário, o grupo (opcional) e o arquivo ou diretório. Por exemplo sudo chown user:user mydocs, onde o novo proprietário e grupo é usereo diretório estiver a tomar posse de émydocs
Gansheim
1
Neste caso, eu iria deixar a propriedade diretório sozinho, para modificar as permissões para esse diretório específico para que você possa escrever nele, conjunto de permissões de leitura / escrita, o comando que está sendosudo chmod 766 -r /var/www/html
Gansheim
@Rinzwind parece que ele emitiu o ls -lcomando do diretório inicial. @ Mark A menos que você está no diretório que você está tentando ver / manipular, você precisa especificar o caminho, neste caso, você deveria ter emitido o comando comols -l /var/www/html
Gansheim
1
Como os caras apontaram, chmodaltera as permissões, chownaltera o proprietário. 755 primeiro dígito (7) significa que 'proprietário' tem todas as permissões, enquanto segundo e último dígitos (5) significam que 'grupo' e 'outro' ambos têm permissões de leitura e execução. Você pode adicionar seu usuário ao grupo e conceder permissões completas para o grupo também, para que você não precise fazer muitas alterações.
Samuel

Respostas:

10

Nesse caso, eu deixaria a propriedade do diretório sozinha. Para modificar as permissões desse diretório específico para poder gravá-lo, defina as permissões de leitura / gravação, sendo o comando sudo chmod 766 -R /var/www/html. Isso atribuirá permissões completas 7ao proprietário, leitura / gravação 6para o grupo e leitura / gravação para todos 6, recursivamente.

Gansheim
fonte
9

Você pode se tornar o proprietário desse diretório

sudo chown pi /var/www/html

Mas você definitivamente deseja definir as permissões

chmod 755 -R /var/www/html

O uso da opção -R (recursiva) garantirá que os arquivos de script e o arquivo .htaccess estejam todos iguais.


Sempre que você adicionar um novo script, não deixe de configurá-lo dessa maneira também.

chmod 755 /var/www/html/cgi-bin/newscript.cgi

Observe que alguns programas de CGI têm seus próprios requisitos, como o

Registrador de visitantes do site da Bestdam + contador de visitas

Excerto:

Abra o arquivo bdlogger.pl em um editor de texto e, se necessário, modifique a linha shebang.

No servidor, crie um subdiretório bdlogger no diretório cgi-bin e envie por FTP os arquivos de script e dados usando o modo ASCII

Se você estiver usando um servidor UNIX / Linux, chmod os arquivos:

bdlogger.pl to 755
all other files to 666

Adicione a seguinte tag de diretiva SSI às suas páginas da Web:

<!--#exec cgi="/cgi-bin/bdlogger/bdlogger.pl" -->
SDsolar
fonte
5

Você precisa definir o proprietário da pasta www de 'root' para 'Me'.

No seu terminal, execute o comando:

sudo chown -R your_system_username /var/www

Espero que funcione!!

Gênio
fonte
2

Embora as respostas acima funcionem, essa é uma abordagem mais saudável. Provavelmente, você deseja modificar arquivos dentro de / var / www / html porque deseja adicionar um aplicativo Web para veiculação Apache2. Para conseguir isso, você precisa das seguintes etapas

  1. Adicione o usuário ao grupo de usuários www-dataque possui a propriedade padrão da pasta. Por quê? Causa Se você pretende fazer alterações no aplicativo Web dinamicamente, mesmo se estiver dentro wordpress, será necessário que os usuários deste grupo tenham permissões de gravação. Para fazer isso, basta escrever: sudo adduser username grouptoaddNo nosso caso, será sudo adduser username www-data.
  2. Em seguida, você precisa alterar o read/write permissionsuso do chmodcomando Lembre-se agora de que você faz parte do grupo de usuários e não precisa alterar a propriedade usando chown. Para fazer isso, basta executar:, sudo chmod -R 766 directoryneste caso, será sudo chmod -R 766 html. Se você se sentir esportivo, poderá obter permissões completas de gravação (777), dependendo da segurança do seu aplicativo.

O -Rsignificado é uma função recursiva, permitindo que o comando seja aplicado a todos os subdiretórios. Espero que isso ajude alguém em necessidade.

AntonyMN
fonte