J'exécute un serveur Web et un serveur FTP, où /var/www
est lié à /home/user/www
.
Je mets les deux répertoires à chmod 777
(ce qui est bien car c'est pour les tests seulement).
Je peux télécharger des fichiers /home/user/www
, mais chaque fois que je crée un nouveau répertoire, je dois toujours exécuter chmod 777
ce dossier.
Sinon, quand j'essaye de le parcourir, j'obtiens le message d'erreur
Vous n'êtes pas autorisé à accéder à / tester / sur ce serveur.
Est-il possible de rendre tous les sous-dossiers /var/www
accessibles à l' intérieur ? Ou leurs autorisations pourraient-elles être automatiquement définies 777
? C'est agaçant que je doive taper à chmod 777
chaque fois.
permissions
apache2
chmod
utilisateur1645034
la source
la source
Réponses:
C'est une mauvaise pratique, mais j'espère que vous l'utilisez uniquement pour le développement ou que vous avez une autre bonne raison. Vous pouvez spécifier les autorisations lorsque vous créez un répertoire à l'aide de l'
-m
option:Ou vous pouvez définir les autorisations de manière récursive.
Avant d’utiliser l’une ou l’autre de ces méthodes, déterminez si vous souhaitez que votre système de fichiers soit aussi accessible.
Edit: Comme mentionné par Rinzwind, voici un meilleur moyen d’accomplir ce que vous voulez.
Vérifiez quel groupe est propriétaire de votre
/var/www
répertoire et ajoutez votre utilisateur à ce groupe.Le groupe est probablement
www-data
.Ensuite, vous pourrez régler vos autorisations sur 775.
la source
Les fichiers et les répertoires sous Unix peuvent avoir trois types d'autorisations: read (
r
), write (w
) et execute (x
). Chaque autorisation peut êtreon
ouoff
pour chacune des trois catégories d’utilisateurs: le propriétaire du fichier ou du répertoire; d'autres personnes du même groupe que le propriétaire; et tous les autres. Pour changer le mode d'un fichier, utilisez la commande chmod. La forme générale est chmod X @ Y fichier1 fichier2 ...la source
pour le ftp créant tous les fichiers avec des permissions différentes, vous pouvez chercher l'umask de ftpd, comment ce démon est lancé
Jetez un coup d'œil à ce site https://linuxaria.com/article/linux-shell-understanding-umask-with-examples
la source
Message d'intéret public:
N'utilisez jamais chmod 777 pour résoudre des problèmes
C'est un risque de sécurité majeur si vous exécutez des services accessibles au public, en particulier des applications Web (par exemple, PHP).
Le modèle de sécurité du système d'exploitation suppose que de nombreux services (tels que votre serveur Web) s'exécutent avec des privilèges réduits pour les empêcher de pouvoir modifier les fichiers. La définition de 777 sur les fichiers casse cette conception.
Un utilisateur distant peut écrire ou télécharger des fichiers puis inciter le serveur (ou un autre processus de votre système) à les lire ou à les exécuter. Les scripts ou les logiciels peuvent avoir des failles qui le permettent. Il est très difficile de verrouiller toutes les manières possibles si des répertoires peuvent être écrits dans le monde entier.
Utilisé dans certains répertoires système (/ usr, / etc, / var, etc.), il peut endommager votre système de manière surprenante.
Certains fichiers système essentiels nécessitent des autorisations spéciales, telles que les autorisations setuid / setgid, pour pouvoir s'exécuter. Par exemple, sudo. Évitez de modifier les autorisations de fichier sur les répertoires et les fichiers configurés par le système lui-même.
Il n'y a aucun moyen de l'annuler et de récupérer toutes les anciennes autorisations.
Autrement dit, si vous aviez auparavant des fichiers et des dossiers avec différentes autorisations, il n’était pas possible de revenir à ces autorisations spécifiques, mais simplement de les changer toutes de la même manière, ce qui risquerait de faire perdre les paramètres d’autorisation spécifiques nécessaires pour des fichiers spécifiques.
Il y a toujours un moyen plus approprié de réaliser ce que vous voulez réaliser.
Dans ce cas, il semblerait que vous souhaitiez uniquement que votre serveur Web puisse lire un répertoire. Donner une autorisation en écriture au monde est bien plus que ce que vous devez faire.
Cherchez à savoir pourquoi le serveur Web ne peut pas lire ce répertoire (astuce: c'est probablement parce que votre répertoire personnel n'est pas lisible par tout le monde. Ce dernier est beaucoup plus sûr que ce qu'il est possible d'écrire dans le monde - définissez votre répertoire personnel sur 755 ou déplacez ce répertoire www à l'extérieur de votre domicile dans un emplacement tel que / var / www ou / srv).
la source
Cela ne fonctionne pas pour moi.
Je dois utiliser
-f
aussi.la source
Si vous souhaitez copier les autorisations et / ou la propriété d'un autre fichier dont vous êtes satisfait, vous pouvez le faire en utilisant sudo chmod --reference = chemin / vers / fichier / vers / chemin de référence / vers / fichier / vous / voulez / to / change / permissino / to
Et vous pouvez également faire la même chose pour la propriété de fichier.
la source