Ich arbeite mit Ubuntu und habe eine JAR-Datei in diesem Ordner/export/home/david
machineB
Und ich bin als Benutzer angemeldet david
.
Ein anderer Benutzer ist ebenfalls auf derselben Maschine angemeldet. Und ich möchte, dass der andere Benutzer die obige JAR-Datei von meinem Standort kopiert.
Aber irgendwie können sie das nicht tun, da ihnen die Berechtigung verweigert wird. Gibt es eine Möglichkeit, dieser JAR-Datei oder meinem Ordner eine Berechtigung hinzuzufügen, sodass jeder die Dateien aus diesem Ordner kopieren kann?
Aktualisieren:-
Unten ist das Ergebnis, das ich erhalten habe -
david@machineB:~$ groups david
david : uucp
otheruser@machineB:~$ groups otheruser
otheruser : app
david@machineB:~$ ls -l foo.jar
-rw-r--r-- 1 david uucp 6543346 2014-03-07 18:27 foo.jar
david@machineB:~$ ls -ld $(echo "/home/david/foo.jar" | sed -r ':a; s#(.*)/[^/]*$#\1#;p;ta')
drwxr-xr-x 22 root root 4096 2014-05-04 08:04 /home
drwx------ 4 david uucp 4096 2014-03-07 18:36 /home/david
Antwort1
Aus irgendeinem seltsamen Grund $HOME
ist Ihr Verzeichnis nur für Sie zugänglich. Dies ist auf keinem mir bekannten System die Standardeinstellung. Sie oder Ihr Systemadministrator haben es wahrscheinlich so eingerichtet.
Wie dem auch sei, Sie müssen nur jedem Lese-/Ausführungszugriff auf Ihre geben $HOME
. Das ist auf den meisten Mehrbenutzersystemen üblich, damit die Leute ihre Arbeit teilen können. Führen Sie einfach diesen Befehl aus:
chmod a+rx ~/
Dadurch werden die Berechtigungen Ihres Home-Kontos auf festgelegt rwxr-xr-x
und jeder kann Dateien von Ihrem kopieren $HOME
.
Antwort2
Damit jemand Lesezugriff auf eine Ihrer Dateien hat, muss er Leseberechtigung für die Datei und Ausführungsberechtigung für alle Verzeichnisse haben, die zu der Datei führen. Um Alice beispielsweise das Lesen von zu ermöglichen /home/david/for_alice/foo.jar
, müssen Sie sicherstellen, dass Alice Leseberechtigung für foo.jar
und Ausführungsberechtigung für /home/david
und hat /home/david/for_alice
. Die Ausführungsberechtigung für ein Verzeichnis ist erforderlich, um über den Namen auf Dateien in diesem Verzeichnis zuzugreifen; die Leseberechtigung für ein Verzeichnis ist erforderlich, um die Namen der Dateien im Verzeichnis aufzulisten. Leseberechtigung für die Verzeichnisse ist nicht unbedingt erforderlich, aber praktischer, insbesondere wenn Alice eine GUI zum Durchsuchen der Dateien verwenden wird.
Momentan verfügt Ihr Home-Verzeichnis über die Berechtigungen rwx------
, d. h. nur Sie können auf die darin enthaltenen Dateien zugreifen.
Wenn die Dateien lokal sind und ACL-Tools verfügbar sind, können Sie Alice Zugriff gewähren. Die folgenden Befehle geben Alice Lesezugriff auf for_alice
alle darunter liegenden Dateien, erlauben ihr aber nicht, die Dateien in Ihrem Home-Verzeichnis aufzulisten (sie kann trotzdem auf Dateien in Ihrem Home-Verzeichnis zugreifen, wenn sie deren Namen errät):
setfacl -m user:alice:x ~
setfacl -Rd -m user:alice:rX ~/for_alice
setfacl -R -m user:alice:rX ~/for_alice
Wenn ACLs nicht möglich sind, müssen Sie gruppenweiten oder systemweiten Zugriff erlauben.
chmod +x ~
chmod -R a+rX ~/public
Antwort3
chmod o+r /path/to/file
gewährt allgemeinen Lesezugriff auf die Datei, die Ihre Freunde kopieren können sollen.
chmod -R o+r /path/to/directory; find /path/to/directory -type d -exec chmod o+x {} \+
um anderen Benutzern das Lesen aller Dateien in zu ermöglichen /path/to/directory
. Wie Patrick anmerkte, müssen Sie chmod o+rx
auch in allen übergeordneten Verzeichnissen world read und execute () hinzufügen. Mir fällt nicht spontan die einfachste Möglichkeit ein, dies zu skripten, aber ich bin sicher, dass es möglich ist.