Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 smile )

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 sad

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 smile

              *-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 22.04, 22.04, 23.04
Portable1 : Intel(R) Core(TM)2 Duo CPU     T6570  @ 2.10GHz RAM 4GiB DDR2 667 MHz Ubuntu 23.04 ( 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

ar barzh paour a écrit :

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 22.04, 22.04, 23.04
Portable1 : Intel(R) Core(TM)2 Duo CPU     T6570  @ 2.10GHz RAM 4GiB DDR2 667 MHz Ubuntu 23.04 ( 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 22.04, 22.04, 23.04
Portable1 : Intel(R) Core(TM)2 Duo CPU     T6570  @ 2.10GHz RAM 4GiB DDR2 667 MHz Ubuntu 23.04 ( 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