Puncte:0

Permisiunea Script-ului Bash a fost refuzată când se leagă de rulare

drapel in

Sunt conștient de faptul că există postări similare, dar am urmărit ceea ce au făcut, dar am continuat să primesc aceeași problemă de refuz al permisiunii atunci când încerc să execut scriptul meu bash.

Mi-am modificat fișierele cu comanda, de exemplu:

chmod u+x bash_script1.sh 

și a obținut următoarele după:

-rwxr--r-- 1 grup de utilizatori 18 iunie 1947 16:04 bash_script1.sh
-rwxr--r-- 1 grup de utilizatori 2430 18 iunie 15:59 bash_script2.sh
-rw-r--r-- 1 grup de utilizatori 1 18 iunie 10:57 runs.txt

Cu toate acestea, continui să primesc următoarea eroare când rulez din linia de comandă:

Comandă

./bash_script1.sh

Eroare

-sh: ./bash_script1.sh: Permisiune refuzată

Când rulez următoarea comandă de mai jos, nu primesc eroarea, dar nu vreau să folosesc bash pentru a-mi rula scriptul:

bash bash_script1.sh

#!/usr/bin/env bash este plasat la poziția mea

drapel hr
I-ați dat permisiunea de execuție doar lui `user` - sunteți de fapt autentificat ca `user` când încercați acest lucru? care este rezultatul comenzii `id`? care este comanda exactă care produce eroarea `-sh: ./bash_script1.sh: Permission denied`?
Joe_Informatics avatar
drapel in
Da, este exact acea eroare pe care o primesc când încerc să rulez `./file_script1.sh` în linia de comandă. Rezultatul este după cum urmează: `uid=19979(user) gid=867800079(group) groups=867800079(group),11226(search),11765(omics)`
Joe_Informatics avatar
drapel in
Tocmai le-am dat permisiunea tuturor utilizatorilor să execute chmod uga+rwx file.sh și încă îmi dă eroarea permisiunii refuzate....
drapel hr
OK, deci singura altă cauză la care mă pot gândi este că sistemul de fișiere pe care este stocat este montat cu opțiunea `noexec` - verificați cu `findmnt -T .` (rulate din directorul care conține scriptul)
Joe_Informatics avatar
drapel in
`/home /dev/md126p2 xfs rw,noexec,relatime,attr2,inode64,noquota` asta este ceea ce primesc. Cum pot schimba asta? sau trebuie să-mi întreb administratorul de sistem?
Puncte:4
drapel hr

După cum putem vedea din rezultatul lui findmnt -T ., sistemul de fișiere pe care este stocat scriptul este montat cu noexec opțiune. Acest lucru împiedică scripturile (precum și executabilele binare) să fie executate direct, în timp ce bash bash_script1.sh încă funcționează pentru că bash executabilul este stocat în altă parte și trebuie doar să o facă citit scenariul.

Pentru a modifica temporar comportamentul, puteți utiliza montură comanda:

sudo mount -o remount,exec /home

Pentru ca schimbarea să fie persistentă, va trebui să vă modificați /etc/fstab fișier și eliminați fișierul noexec opțiunea de montare pentru acest dispozitiv bloc.

Joe_Informatics avatar
drapel in
totul este cu siguranță nou pentru mine, așa că va trebui să mă uit la el mai profund cu siguranță. Din păcate, nu am drepturi sudo, așa că va trebui să mă adresez administratorului meu de sistem pentru mai multe îndrumări. Multumesc mult cel putin pentru precizare :D
drapel hr
@Joe_Informatics sunteți binevenit - tbh am fost ușor surprins că opțiunea `noexec` are acest efect asupra scripturilor (nu doar executabilelor binare) - pagina de manual `mount` spune doar `noexec Nu permiteți executarea directă a niciunui fișier binar pe sistem de fișiere montat.`. Dar am confirmat comportamentul pe propriul meu sistem și este discutat mai detaliat aici, de exemplu [Executarea unui script bash sau a unui binar c pe un sistem de fișiere cu opțiunea noexec](https://unix.stackexchange.com/questions/490402/ executând-un-script-bash-sau-un-c-binar-pe-un-sistem-de-fișiere-cu-opțiune-noexec)
Joe_Informatics avatar
drapel in
da, acest lucru este cu siguranță nou pentru mine, dar mă bucur să cunosc rădăcina problemei. Voi arunca o privire la adresa URL furnizată :D

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.