Ich erhalte einen Berechtigungsfehler in CentOS 7, wenn ich versuche, einen festen Link zu erstellen. Mit den gleichen Berechtigungen, die in CentOS 6 festgelegt wurden, wird der Fehler nicht angezeigt. Das Problem konzentriert sich auf Gruppenberechtigungen. Ich bin nicht sicher, welche Betriebssystemversion richtig und welche falsch ist.
Lassen Sie mich veranschaulichen, was passiert. In meinem aktuellen Arbeitsverzeichnis habe ich zwei Verzeichnisse: Quelle und Ziel. Zu Beginn ist das Ziel leer. Quelle enthält eine Textdatei.
[root@tc-dlx-nba cwd]# ls -l
total 0
drwxrwxrwx. 2 root root 6 Jun 12 14:33 destination
drwxrwxrwx. 2 root root 21 Jun 12 14:33 source
[root@tc-dlx-nba cwd]# ls -l destination/
total 0
[root@tc-dlx-nba cwd]# ls -l source/
total 4
-rw-r--r--. 1 root root 8 Jun 12 14:20 test.txt
[root@tc-dlx-nba cwd]#
Wie Sie sehen können, sind die beiden Verzeichnisse in Bezug auf die Berechtigungen 777, wobei sowohl der Eigentümer als auch die Gruppe auf root festgelegt sind. Der Eigentümer und die Gruppe der Textdatei sind ebenfalls auf root festgelegt. Die Berechtigungen der Textdatei sind jedoch für den Eigentümer schreibgeschützt, für die Gruppe jedoch schreibgeschützt.
Wenn ich als root angemeldet bin, kann ich problemlos einen Hardlink im Zielverzeichnis erstellen, der auf die Textdatei (im Quellverzeichnis) verweist.
[root@tc-dlx-nba cwd]# ln source/test.txt destination/
[root@tc-dlx-nba cwd]# ls destination/
test.txt
Wenn ich mich jedoch als ein anderer Benutzer anmelde, in diesem Fall als Administrator, kann ich den Link nicht erstellen. Ich bekomme: "Operation nicht erlaubt."
[root@tc-dlx-nba cwd]# rm -f destination/test.txt
[root@tc-dlx-nba cwd]# su admin
bash-4.2$ pwd
/root/cwd
bash-4.2$ ln source/test.txt destination/
ln: failed to create hard link ‘destination/test.txt’ => ‘source/test.txt’: Operation not permitted
Was passiert, macht für mich tatsächlich Sinn, aber da das oben Genannte in CentOS 6 erlaubt ist, wollte ich überprüfen, ob ich etwas falsch verstanden habe. Für mich scheint es ein Fehler in CentOS 6 zu sein, der in CentOS 7 behoben wurde.
Weiß jemand was gibt? Habe ich recht, dass das obige Verhalten das richtige ist? Ist CentOS 6 richtig? Oder haben beide Recht und vielleicht fehlt mir ein subtiles Problem mit Gruppenberechtigungen? Vielen Dank.
Bearbeiten: Ich habe den gleichen Test gerade auf einer Debian v7-VM versucht, die ich habe. Debian stimmt CentOS 7 zu: "Betrieb nicht erlaubt."
Edit # 2: Ich habe gerade dasselbe unter Mac OS X (Yosemite) versucht. Das hat genauso funktioniert wie CentOS 6. Mit anderen Worten, der Link konnte erstellt werden. (Hinweis: Unter OS X heißt die Stammgruppe "Rad". Soweit ich das beurteilen kann, ist dies der einzige Unterschied.)