Pages : 1
#1 Le 12/08/2015, à 01:18
- shana
bash: Permission non accordée
Bonjour,
Je débute en programmation et manipulation des lignes de commande, et jusqu'à aujourd'hui, j'utilisais une machine virtuelle linux pour écrire et exécuter mes programmes (je suis le MOOC CS50 sur edX). Mais aujourd'hui, j'ai voulu essayer de lancer un programme à partir du terminal de mon propre linux (mint cinnamon version 17.2 je crois...), sachant que ce programme fonctionne parfaitement dans la machine virtuelle.
J'ai installé clang pour pouvoir "make" mon fichier "generate.c" et utilisé la commande
./generate
pour lancer mon programme. J'obtiens :
bash: ./generate: Permission non accordée
Quand je fais ls -l, j'obtiens :
-rw------- 1 shana shana 8810 août 12 00:59 generate
J'ai lu la doc et plusieurs topics et ai essayé de changer les permissions sur le fichier. Mes tentatives :
sudo chmod u+x generate
sudo chmod a+x generate
$sh ./generate
(Je ne sais pas vraiment à quoi sert la dernière ligne mais j'ai testé quand même )
Et, ce qui me fait le plus "peur", c'est que quand j'essaie de cocher la case "Autoriser l'exécution du fichier comme un programme" (dans Propriétés > Permissions), la case se coche 1 sec et se décoche immédiatement. Pareil quand j'essaie de modifier les Groupe et accès juste au dessus, ça ne se modifie pas...
Je ne comprends vraiment pas ce qu'il se passe
Merci d'avance pour vos réponses !
Dernière modification par shana (Le 12/08/2015, à 01:48)
Hors ligne
#2 Le 12/08/2015, à 04:30
- pingouinux
Re : bash: Permission non accordée
Bonjour,
Normalement, pour donner au fichier la permission d'exécution, cette commande suffit (si ton nom d'utilisateur est bien shana, et si tu es placé dans le bon répertoire) :
chmod u+x generate
(Inutile de donner la permission à tout le monde, et n'utiliser sudo que si c'est nécessaire).
Hors ligne
#3 Le 12/08/2015, à 06:59
- serged
Re : bash: Permission non accordée
Ton script semble être sur une partition non-linux (FAT32 ou NTFS) qui ne gère pas les droits. Il faut le mettre sur une partition de type Linux (ext3, ext4...). Comme par exemple celles qu'à créé l'installation de ton Linux.
LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)
Hors ligne
#4 Le 12/08/2015, à 09:01
- ar barzh paour
Re : bash: Permission non accordée
peut être un problème de droit sur le répertoire ou la partition ?
j'ai un répertoire "bash" qui se trouve sur une partition NTFS et qui contient des scripts shell
parted -l
Modèle: ATA ST1000DM003-1CH1 (scsi)
Disque /dev/sdd : 1000GB
Taille des secteurs (logiques/physiques): 512B/4096B
Table de partitions : msdos
Numéro Début Fin Taille Type Système de fichiers Fanions
1 32,3kB 64,4GB 64,4GB primary ntfs démarrage
2 64,4GB 129GB 64,4GB primary ntfs
3 129GB 193GB 64,4GB primary ext4
4 193GB 1000GB 807GB extended
5 193GB 202GB 8587MB logical linux-swap(v1)
6 202GB 309GB 107GB logical ntfs
7 309GB 417GB 107GB logical ntfs
8 417GB 846GB 429GB logical ntfs
9 846GB 867GB 21,0GB logical ext4
10 867GB 972GB 105GB logical ext4
(Data est la partition 8 , mais en dehors de gparted je ne sais plus comment relier l'info
il faut extraire l'info de sudo lshw
*-logicalvolume:3
description: HPFS/NTFS partition
identifiant matériel: 8
nom logique: /dev/sdc8
nom logique: /media/Data
capacité: 400GiB
configuration: mount.fstype=fuseblk mount.options=rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096 state=mounted
jpb@jpb-desktop:/media$ ls -ails
total 64
1048577 4 drwxr-xr-x 7 root root 4096 nov. 19 2014 .
2 4 drwxr-xr-x 24 root root 4096 août 4 12:28 ..
5 8 drwxr-xr-x 1 jpb users 8192 juil. 19 16:01 Data
(j'ai attribué à Data a les droits rwxr-xr-x)
le contenu du fichier "head" (c'est un exemple)
jpb@jpb-desktop:/media/Data/shell/bash$ cat head
#!/bin/bash
head -n 1 /var/log/syslog
jpb@jpb-desktop:/media/Data/shell/bash$
les droits du fichier head
jpb@jpb-desktop:/media/Data/shell/bash$ ls -ails head
45353 1 -rwxr-xr-x 1 jpb users 38 août 12 09:25 head
jpb@jpb-desktop:/media/Data/shell/bash$
le fichier "head" s'exécute bien
jpb@jpb-desktop:/media/Data/shell/bash$ ./head
Aug 12 08:36:05 jpb-desktop anacron[1003]: Job `cron.daily' terminated
jpb@jpb-desktop:/media/Data/shell/bash$
Dernière modification par ar barzh paour (Le 13/08/2015, à 08:18)
PC : B760M DS3H DDR4, 12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 20.04, 22.04, 24.04 (en test )
Portable1 : ThinkPad P50 I7-6820HQ, 16G0 Ram Ubuntu 22.04 Ubuntu 24.04 , W10-PRO( en voyage )
Portable2 : T5750 @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )
Hors ligne
#5 Le 12/08/2015, à 12:32
- serged
Re : bash: Permission non accordée
peut être un problème de droit sur le répertoire ou la partition ?
j'ai un répertoire "bash" qui se trouve sur une partition NTFS et qui contient des scripts shell
Pas la peine d'aller plus loin : Linux ne gère pas les droits sur les partitions NTFS...
Il faut les mettre dans la partition ext4. Ou alors les exécuter par :
source monscript
LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)
Hors ligne
#6 Le 12/08/2015, à 13:57
- shana
Re : bash: Permission non accordée
C'est effectivement une partition ntfs. Mais du coup, j'ai pas très bien compris.
serged > en mettant mon fichier dans la bonne partition, ça marche bien ! Mais du coup, y a-t-il une commande pour changer les permissions de tous les fichiers d'un dossier ? (une commande récursive ? comme "chmod -r u+x nom_du_dossier" ? je ne sais pas très bien comment utiliser tout ça)
ar barzh paour > visiblement tu as réussi à exécuter un fichier dans une partition ntfs. Il y a donc une solution ?
(Une autre petite question, comment on fait pour lister les partitions comme tu l'as fait ?)
Hors ligne
#7 Le 12/08/2015, à 21:03
- derderder
Re : bash: Permission non accordée
Il suffit de remonter la partition avec les bon droits. Par exemple pour une partition monté en /mnt/example, utilise mount -o remount,rw,exec /mnt/example
Hors ligne
#8 Le 13/08/2015, à 00:48
- shana
Re : bash: Permission non accordée
derderder > ça ne marche pas, aucun changement après avoir exécuté la commande.
En cherchant un peu d'infos sur mount, j'ai cru comprendre qu'il y avait un lien avec le répertoire /etc/fstab.d/ : il semblerait qu'il y ait un problème entre mount et ce fstab.d (les topics que j'ai vu datent de 2012 donc ça a du changer...). Je n'ai pas compris grand chose de plus mais j'ai remarqué que mon /etc/fstab.d/ est vide, ça peut peut-être aider.
Hors ligne
#9 Le 13/08/2015, à 05:19
- ar barzh paour
Re : bash: Permission non accordée
@serged : effectivement si c'est ça , je comprends maintenant pourquoi j'ai été obligé de mettre dans fstab
UUID=47FB9C03336449C6 /media/Data ntfs rw,user,auto,exec,gid=100,uid=1000,nls=utf8,umask=022 0 0
du coup tous les fichiers de ma partition Data sont rwxr-xr-x (donc exécutables)
@shana
ci-dessus la réponse possible , mais je vois que c'est pas terrible même si "ça fonctionne " pour mes scripts
le listage est fait via la commande parted
jpb@jpb-desktop:~$ sudo parted
GNU Parted 2.3
Utilisation de /dev/sda
Bievenue sur GNU Parted ! Tapez 'help' pour voir la liste des commandes.
(parted) print
Modèle: ATA ST3500418AS (scsi)
Disque /dev/sda : 500GB
Taille des secteurs (logiques/physiques): 512B/512B
Table de partitions : msdos
Numéro Début Fin Taille Type Système de fichiers Fanions
1 32,3kB 41,9GB 41,9GB primary ntfs démarrage
2 41,9GB 500GB 458GB extended
9 41,9GB 61,9GB 20,0GB logical ext4
10 61,9GB 76,9GB 15,0GB logical ext4
11 76,9GB 140GB 63,3GB logical ext4
12 140GB 191GB 50,9GB logical ext4
7 205GB 247GB 42,0GB logical ext4
14 247GB 252GB 4855MB logical ext4
5 252GB 300GB 47,7GB logical ext4
13 300GB 331GB 31,5GB logical ext4
15 331GB 351GB 20,0GB logical ext4
16 351GB 378GB 27,0GB logical ext4
8 378GB 491GB 113GB logical ext4
6 491GB 500GB 9278MB logical linux-swap(v1)
(parted) q
jpb@jpb-desktop:~$
print all au lieu de print donne toutes les partitions ===> voir man de parted
Dernière modification par ar barzh paour (Le 13/08/2015, à 05:37)
PC : B760M DS3H DDR4, 12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 20.04, 22.04, 24.04 (en test )
Portable1 : ThinkPad P50 I7-6820HQ, 16G0 Ram Ubuntu 22.04 Ubuntu 24.04 , W10-PRO( en voyage )
Portable2 : T5750 @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )
Hors ligne
#10 Le 15/08/2015, à 21:31
- shana
Re : bash: Permission non accordée
ar barzh paour > Merci beaucoup pour ta solution, en revanche, comment savoir ce qu'il faut écrire dans le fichier fstab ? J'ai compris les différentes catégories mais par exemple, comment obtient-on le UUID= ? De même pour les options...
Merci à tous pour vos réponses !
Hors ligne
#11 Le 16/08/2015, à 05:56
- ar barzh paour
Re : bash: Permission non accordée
pour obtenir l'UUID de tous les dev
dans un terminal :
sudo blkid
que mettre dans fstab ? : les partitions que tu veux monter au démarrage de la machine
attention avant de modifier fstab : faire une sauvegarde
personnellement je monte 3 partitions extrait de mon fstab
UUID=c0837c4e-b3c8-4920-9cf2-2e820f159289 /media/SH ext4 defaults 0 2
UUID=47FB9C03336449C6 /media/Data ntfs rw,user,auto,exec,gid=100,uid=1000,nls=utf8,umask=022 0 0
UUID=079B6B49295F7AD1 /media/photos ntfs rw,user,auto,gid=100,uid=1000,nls=utf8,umask=022 0 0
et prendre en compte le post3 de serged (droit non gérés sur ntfs)
Dernière modification par ar barzh paour (Le 16/08/2015, à 06:00)
PC : B760M DS3H DDR4, 12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 20.04, 22.04, 24.04 (en test )
Portable1 : ThinkPad P50 I7-6820HQ, 16G0 Ram Ubuntu 22.04 Ubuntu 24.04 , W10-PRO( en voyage )
Portable2 : T5750 @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )
Hors ligne
Pages : 1