7
votes

Bash: permission refusée lors de la tentative d'ouverture d'un fichier

J'ai récemment décidé d'essayer d'apprendre des scripts Bash et un exercice amusant, j'ai décidé de faire un script pour ouvrir un fichier quotidien pour que je puisse écrire des notes dans chaque fois que le script est exécuté.

Cela a bien fonctionné jusqu'à ce que je me suis déconnecté et revenait plus tard dans le système, lorsque j'ai reçu une erreur

/ usr / local / bin / notes: ligne 45: / home / my_username / notes / 2010-10-01: permission refusée

code

Je pourrais me tromper, mais cela ne semble certainement pas comme quelque chose qui ne devrait pas nécessiter des autorisations supplémentaires, n'est-ce pas?

Editor est défini sur nano

Les autorisations du fichier sont -rw-rw-r -

Les autorisations du script sont -rwxr-xr-x


3 commentaires

Comment est votre éditeur $? Quelles sont les autorisations sur le fichier? En outre, il est préférable d'inclure le code dans la question elle-même (dans un bloc de code) afin que la question archive mieux, et ne devienne pas de sens une fois que la pâte est éloignée.


Tout nécessite des autorisations. Il n'y a pas d'autorisations «supplémentaires». Vous devez faire un ls -l ou ls -ld pour voir quelles autorisations les fichiers ont.


Vous devez mettre à jour pour inclure le code d'exhaustivité de la question. L'ID PASTBIN n'est plus valide.


3 Réponses :


9
votes

Vérifiez la permission sur le fichier avec xxx pré>

Vous devez voir quelque chose comme p> xxx pré>

r moyen lisible, w writable, et x exécutable. p>

Le premier jeu est destiné à votre utilisateur, le second ensemble de trois est destiné à votre groupe, et le troisième jeu est pour quiconque. P>

donc dans mon exemple, le fichier i Ont montré est lu / écrit pour moi et ne lisez que pour mon groupe et pour tout autre utilisateur. p>

Utilisez la commande chmod pour modifier les autorisations. P>

chmod 744 file


0 commentaires

7
votes

Je suppose que c'est que dans xxx

$ Editor est null, il est donc tenter d'exécuter $ quotidien_filename

Utilisez l'option -x pour le prouver. < / p>


1 commentaires

Oui, je suppose que je n'ai pas défini de manière permanente la variable de l'éditeur, je n'avais que défini pour cette session. Merci



0
votes

Si je devais deviner, je suggérerais que la variable Editeur est indéfinie pour une raison quelconque. Il semble que votre script tente d'exécuter le fichier Notes - car ce n'est pas exécutable, vous obtenez le message d'erreur inutile.


0 commentaires