Neues mit Vi erstelltes File hat seltsame Benutzerrechte

mahed

Aktives Mitglied
Thread Starter
Dabei seit
26.03.2006
Beiträge
411
Reaktionspunkte
1
Hallo zusammen
Wenn ich mit Vi ein neues File eröffne und etwas rein schreibe, dann hat anschliessend die Benutzerrechte
-rw-r--r--
kann also standardmässig nicht ausgeführt werden. Ich erstelle das File mit einem Account, der nicht Admin ist. Wie kann man erreichen, das neu erstellte Files standardmässig vom Besitzer ausgeführt werden dürfen?

Besten Dank für Hinweise.
 
Ja, das ist schon klar. Was ich mich frage ist, wieso eine (Text-)Datei, die ein User erstellt, nicht automatisch auch von ihm ausgeführt werden darf, obwohl er deren Besitzer ist. Was ist denn der Sinn dahinter?
Unter dem von dir angegebenen Link wird genau so ein Beispiel gezeigt (touch bla.txt), allerdings gerade NICHT darauf eingegangen, weshalb die 'initial'- Benutzerrechte so sind wie sie sind.
Ich weiss mittlerweile schon, was die Kürzel am Anfang einer ls -l Ausgabe bedeuten, bloss deren Hintergrund interpretieren fällt mir noch etwas schwer.
 
die zugriffsrechte ermittelt das betriebssystem anhand des programms mit dem files erstellt werden. und textfiles werden für gewöhnlich nicht ausgeführt. daher sind die zugriffsrechte eben -rw-r--r--.
 
ok, gut. In meinem Fall handelt es sich konkret um ein kleines Skript für Bash, dass mir einen SSH Login erleichtern soll. Das File hat keine Endung, ähnlich wie ls zum Beispiel.
 
dann sollte dir das tutorial weiterhelfen, die entsprechenden zugriffsrechte zu setzen. ansonsten die manpages zu chmod bzw. chown
 
ich versteh wie man Zugriffsrechte setzt, das ist ja nicht das Problem. Ich versteh nicht, weshalb es Sinn machen sollte, einem Skript per Default Zugriffsrechte zu geben, die es mir nicht ermöglichen es auszuführen, gleich nachdem ich es geschreiben habe.
 
Bitte für UNIX-Fragen das UNIX-Forum nutzen → verschoben.
 
weil das nun mal so üblich ist!?
folgendes script in deiner vimrc sollte alle dateien die #! und /bin/ in der ersten zeile enthalten ausführbar machen.
au BufWritePost * if getline(1) =~ "^#!.*/bin/" | silent !chmod a+x <afile> | endif
 
die zugriffsrechte ermittelt das betriebssystem anhand des programms mit dem files erstellt werden. und textfiles werden für gewöhnlich nicht ausgeführt. daher sind die zugriffsrechte eben -rw-r--r--.

Ich will ja nichts sagen, aber dem Betriebsystem ist das völlig egal, ob das n Textfile ist, in Binaryfile, oder sonst was. Das macht lediglich n Unterschied zwischen Ordnern und Dateien.
Ordner werden normalerweise mit 777 angelegt, Dateien immer mit 666. Außer anders vorgegeben.

Und an dem Threadstarter: Wenn du 'umask' (http://en.wikipedia.org/wiki/Umask) setzt, kannst du beim Erstellen der dateien die Rechte anpassen.

Code:
 xen@ radon ~ 507
 $ mkdir test
 xen@ radon ~ 508
 $ cd test/
 xen@ radon ~/test 509
 $ ls -lha
total 0
drwx------   2 xen  xentric    68B Oct  3 09:30 .
drwxr--r--  82 xen  xentric   2.8K Oct  3 09:30 ..
 xen@ radon ~/test 510
 $ touch test1
 xen@ radon ~/test 511
 $ vim test2
 xen@ radon ~/test 512
 $ ls -lha
total 8
drwx------   4 xen  xentric   136B Oct  3 09:31 .
drwxr--r--  82 xen  xentric   2.8K Oct  3 09:30 ..
-rw-------   1 xen  xentric     0B Oct  3 09:30 test1
-rw-------   1 xen  xentric     3B Oct  3 09:31 test2
 xen@ radon ~/test 513
 $ cat .bashrc |grep umask
umask 077

Aber immer nur restriktiver. Wll heißen, Umask limitiert rechte, und ich bekomm auch bei dateien kein +x als user, auch wenn ich es so setze in meiner umask.
 
Man kann auch nicht ausführbare Dateien mit . ./file ausführen, (falls $PWD 'passt').
 
Zurück
Oben Unten