Hallo Wikiteam,
ich würde Baustelle/Verlassen/sed überarbeiten. Bitte in die Baustelle verschieben.
Gruß, barcc
|
Anmeldungsdatum: Beiträge: 696 |
Hallo Wikiteam, ich würde Baustelle/Verlassen/sed überarbeiten. Bitte in die Baustelle verschieben. Gruß, barcc |
||||
|
Anmeldungsdatum: Beiträge: 4763 |
👍 Viel Spaß dabei.
done Gruß, cornix |
||||
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 696 |
Gibt es so etwas wie ein "geschütztes Leerzeichen", so dass in der Tabelle innerhalb von Ich habe den Artikel möglichst knapp gehalten und stattdessen ein paar Links angegeben. Hoffentlich trifft der Satz aus dem ursprünglichen Artikel
nicht auf meine Version zu. Ansonsten halte ich den Artikel für fertig. Gruß, barcc |
||||
|
Anmeldungsdatum: Beiträge: 29567 |
Hallo, habe ein paar Korrekturen / Ergänzungen gemacht. Gruß, noisefloor |
||||
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 696 |
Den Satz verstehe ich nicht. |
||||
|
Anmeldungsdatum: Beiträge: 4763 |
barcc schrieb:
quasi verstehe ich aber, was gemeint ist 😀 sed findet man als Urgestein unter den Kommandozeilen-Werkzeugen auf (fast?) allen Unix-artigen Betriebssystemen, in der Regel sogar vorinstalliert. Als Standard-Werkzeug der Spezifikation der Linux Standard Base 🇬🇧 steht es in jeder Ubuntu-Variante zur Verfügung. Die "Kette der Abhängigkeiten" sieht dabei wie folgt aus:
Gruß, cornix |
||||
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 696 |
Ok, mit den zwei zusätzlichen Buchstaben von loh.tar versteh ichs auch ☺ . Von mir aus kann man den Artikel verschieben. Gruß, barcc |
||||
|
Anmeldungsdatum: Beiträge: 29567 |
|||||
|
Anmeldungsdatum: Beiträge: 1388 |
Die Option
nicht wie erwartet, die Datei
werden schreibgeschützte Dateien ausgespart. |
||||
|
Supporter, Wikiteam
Anmeldungsdatum: Beiträge: 9837 |
Ich wollte es nicht glauben und habe es deshalb nachgestellt. Leider stimmt es und es stimmt sogar, wenn man alle Schreibrechte mit chmod a-w y.dat entfernt. In schockierender Weise erfolgt nicht einmal eine Sicherheitsabfrage. Der Warnhinweis ist also gerechtfertigt und sollte m.M. sogar als Warnbox formatiert werden. |
||||
|
Supporter, Wikiteam
Anmeldungsdatum: Beiträge: 9837 |
Es ist sogar noch schlimmer! Es funktioniert sogar, wenn einem die schreibgeschützte Datei nicht einmal gehört! Und nach der Änderung gehört einem die vorher fremde Datei. Das ist jetzt aber kein exotisches Feature mehr, sondern doch wohl ein Bug oder ein Sicherheitsproblem? |
||||
|
Anmeldungsdatum: Beiträge: 29567 |
Hallo,
Kann ich bestätigen. Es funktioniert allerdings _nicht_, wenn man a) nicht der Eigentümer der Datei ist unb b) man keine Leserechte hat (also z.B. wenn die Datei die Berechtigung Scheinbar "reicht" es Gruß, noisefloor |
||||
|
Anmeldungsdatum: Beiträge: 11278 |
Wenn ich das aus dem strace richtig herauslese, spielen die Dateirechte keine Rolle, weil die alte Datei mit einer neu angelegten temporären Datei per rename überschrieben wird - dafür zählen nur die Verzeichnisrechte, nicht die Dateirechte. $ echo "foo bar" | sudo tee test.txt
$ echo "spam" > .tmpfile
foo bar
$ ls -la
insgesamt 8
drwxr-xr-x 2 demo demo 80 17. Jun 14:52 .
drwxrwxrwt 12 root root 240 17. Jun 14:45 ..
-rw-r--r-- 1 root root 8 17. Jun 14:52 test.txt
-rw-r--r-- 1 alexander alexander 5 17. Jun 14:52 .tmpfile
$ strace sed -i 's/foo/spam/' test.txt
execve("/usr/bin/sed", ["sed", "-i", "s/foo/spam/", "test.txt"], 0xbe930c0c /* 22 vars */) = 0
brk(NULL) = 0xce8000
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f60000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
statx(3, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=87031, ...}) = 0
mmap2(NULL, 87031, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb6f12000
close(3) = 0
openat(AT_FDCWD, "/usr/lib/libacl.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\230\23\0\0004\0\0\0"..., 512) = 512
statx(3, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0755, stx_size=26008, ...}) = 0
mmap2(NULL, 155672, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6eeb000
mmap2(0xb6ef0000, 90136, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0xb6ef0000
munmap(0xb6eeb000, 20480) = 0
munmap(0xb6f07000, 40984) = 0
mprotect(0xb6ef6000, 61440, PROT_NONE) = 0
mmap2(0xb6f05000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x5000) = 0xb6f05000
close(3) = 0
openat(AT_FDCWD, "/usr/lib/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0,\334\1\0004\0\0\0"..., 512) = 512
statx(3, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0755, stx_size=1566196, ...}) = 0
mmap2(NULL, 1724520, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6d4a000
mmap2(0xb6d50000, 1658984, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0xb6d50000
munmap(0xb6d4a000, 24576) = 0
munmap(0xb6ee6000, 36968) = 0
mprotect(0xb6ec9000, 65536, PROT_NONE) = 0
mmap2(0xb6ed9000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x179000) = 0xb6ed9000
mmap2(0xb6edc000, 36968, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb6edc000
close(3) = 0
set_tls(0xb6f61520) = 0
set_tid_address(0xb6f61008) = 1346
set_robust_list(0xb6f61010, 12) = 0
rseq(0xb6f61500, 0x20, 0, 0xe7f5def3) = 0
mprotect(0xb6ed9000, 8192, PROT_READ) = 0
mprotect(0xb6f05000, 4096, PROT_READ) = 0
mprotect(0x505000, 4096, PROT_READ) = 0
mprotect(0xb6f62000, 8192, PROT_READ) = 0
ugetrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
munmap(0xb6f12000, 87031) = 0
getrandom("\x4c\x78\x15\x2f", 4, GRND_NONBLOCK) = 4
brk(NULL) = 0xce8000
brk(0xd09000) = 0xd09000
openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
statx(3, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=3735920, ...}) = 0
mmap2(NULL, 2097152, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb6b50000
mmap2(NULL, 2596864, PROT_READ, MAP_PRIVATE, 3, 0x6f000) = 0xb68d6000
close(3) = 0
openat(AT_FDCWD, "/usr/lib/gconv/gconv-modules.cache", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
openat(AT_FDCWD, "/usr/lib/gconv/gconv-modules", O_RDONLY|O_CLOEXEC) = 3
statx(3, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=3808, ...}) = 0
read(3, "# GNU libc iconv configuration.\n"..., 4096) = 3808
read(3, "", 4096) = 0
close(3) = 0
openat(AT_FDCWD, "/usr/lib/gconv/gconv-modules.d", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_CLOEXEC|O_DIRECTORY) = 3
statx(3, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0755, stx_size=4096, ...}) = 0
getdents64(3, 0xceac98 /* 3 entries */, 32768) = 96
openat(AT_FDCWD, "/usr/lib/gconv/gconv-modules.d/gconv-modules-extra.conf", O_RDONLY|O_CLOEXEC) = 4
statx(4, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=53974, ...}) = 0
read(4, "# GNU libc iconv configuration.\n"..., 4096) = 4096
read(4, "B1002//\tJUS_I.B1.002//\nmodule\tJU"..., 4096) = 4096
read(4, "59-5//\nalias\tISO_8859-5//\t\tISO-8"..., 4096) = 4096
read(4, "59-16//\t\tINTERNAL\t\tISO8859-16\t1\n"..., 4096) = 4096
read(4, "-SE-A\t1\nmodule\tINTERNAL\t\tEBCDIC-"..., 4096) = 4096
read(4, "97\t\t1\n\n#\tfrom\t\t\tto\t\t\tmodule\t\tcos"..., 4096) = 4096
read(4, "1\n\n#\tfrom\t\t\tto\t\t\tmodule\t\tcost\nal"..., 4096) = 4096
read(4, "6//\t\tIBM1046//\nalias\tCP1046//\t\tI"..., 4096) = 4096
read(4, "\tto\t\t\tmodule\t\tcost\nalias\tRUSCII/"..., 4096) = 4096
read(4, "03//\nmodule\tCSN_369103//\t\tINTERN"..., 4096) = 4096
read(4, "\tmodule\t\tcost\nalias\tISO-IR-8-1//"..., 4096) = 4096
read(4, "IBM1156\t\t1\n\n#\tfrom\t\t\tto\t\t\tmodule"..., 4096) = 4096
read(4, "\t\tIBM1166//\nalias\tCP1166//\t\tIBM1"..., 4096) = 4096
read(4, "alias\tROMAN9//\t\tHP-ROMAN9//\nalia"..., 4096) = 726
read(4, "", 4096) = 0
close(4) = 0
getdents64(3, 0xceac98 /* 0 entries */, 32768) = 0
close(3) = 0
futex(0xb6edbd18, FUTEX_WAKE_PRIVATE, 2147483647) = 0
openat(AT_FDCWD, "test.txt", O_RDONLY|O_LARGEFILE) = 3
ioctl(3, TCGETS, 0xbe94d8c8) = -1 ENOTTY (Unpassender IOCTL (I/O-Control) für das Gerät)
fstat64(3, {st_mode=S_IFREG|0644, st_size=8, ...}) = 0
umask(077) = 022
getrandom("\x29\xdf\xa8\x7f\x10\xd2\x42\xcc", 8, GRND_NONBLOCK) = 8
openat(AT_FDCWD, "./sedjig5mR", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600) = 4
umask(022) = 077
fcntl64(4, F_GETFL) = 0x20002 (flags O_RDWR|O_LARGEFILE)
statx(3, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=8, ...}) = 0
read(3, "foo bar\n", 4096) = 8
statx(4, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0600, stx_size=0, ...}) = 0
read(3, "", 4096) = 0
fchown32(4, 0, 0) = -1 EPERM (Die Operation ist nicht erlaubt)
fchown32(4, -1, 0) = -1 EPERM (Die Operation ist nicht erlaubt)
fgetxattr(3, "system.posix_acl_access", 0xbe94d7d0, 132) = -1 ENODATA (Keine Daten verfügbar)
fstat64(3, {st_mode=S_IFREG|0644, st_size=8, ...}) = 0
fsetxattr(4, "system.posix_acl_access", "\2\0\0\0\1\0\6\0\377\377\377\377\4\0\4\0\377\377\377\377 \0\4\0\377\377\377\377", 28, 0) = 0
close(3) = 0
write(4, "spam bar\n", 9) = 9
close(4) = 0
rename("./sedjig5mR", "test.txt") = 0
close(1) = 0
exit_group(0) = ?
+++ exited with 0 +++ Wenn die Datei für den Nutzer nicht lesbar ist, schlägt das Lesen der Datei fehl und damit kommt sed erst gar nicht soweit, dass es eine Temporäre Datei anlegt, die später umbenannt werden kann: $ rm test.txt
$ echo "foo bar" > test.txt
$ sudo chown root:root test.txt
$ sudo chmod 0600 test.txt
$ strace sed -i 's/foo/spam/' test.txt
execve("/usr/bin/sed", ["sed", "-i", "s/foo/spam/", "test.txt"], 0xbefc5c0c /* 22 vars */) = 0
brk(NULL) = 0x2406000
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fd9000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
statx(3, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=87031, ...}) = 0
mmap2(NULL, 87031, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb6f8b000
close(3) = 0
openat(AT_FDCWD, "/usr/lib/libacl.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\230\23\0\0004\0\0\0"..., 512) = 512
statx(3, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0755, stx_size=26008, ...}) = 0
mmap2(NULL, 155672, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f64000
mmap2(0xb6f70000, 90136, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0xb6f70000
munmap(0xb6f64000, 49152) = 0
munmap(0xb6f87000, 12312) = 0
mprotect(0xb6f76000, 61440, PROT_NONE) = 0
mmap2(0xb6f85000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x5000) = 0xb6f85000
close(3) = 0
openat(AT_FDCWD, "/usr/lib/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0,\334\1\0004\0\0\0"..., 512) = 512
statx(3, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0755, stx_size=1566196, ...}) = 0
mmap2(NULL, 1724520, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6dca000
mmap2(0xb6dd0000, 1658984, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0xb6dd0000
munmap(0xb6dca000, 24576) = 0
munmap(0xb6f66000, 36968) = 0
mprotect(0xb6f49000, 65536, PROT_NONE) = 0
mmap2(0xb6f59000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x179000) = 0xb6f59000
mmap2(0xb6f5c000, 36968, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb6f5c000
close(3) = 0
set_tls(0xb6fda520) = 0
set_tid_address(0xb6fda008) = 1390
set_robust_list(0xb6fda010, 12) = 0
rseq(0xb6fda500, 0x20, 0, 0xe7f5def3) = 0
mprotect(0xb6f59000, 8192, PROT_READ) = 0
mprotect(0xb6f85000, 4096, PROT_READ) = 0
mprotect(0x4d5000, 4096, PROT_READ) = 0
mprotect(0xb6fdb000, 8192, PROT_READ) = 0
ugetrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
munmap(0xb6f8b000, 87031) = 0
getrandom("\x93\xaa\x07\x46", 4, GRND_NONBLOCK) = 4
brk(NULL) = 0x2406000
brk(0x2427000) = 0x2427000
openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
statx(3, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=3735920, ...}) = 0
mmap2(NULL, 2097152, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb6bd0000
mmap2(NULL, 2596864, PROT_READ, MAP_PRIVATE, 3, 0x6f000) = 0xb6956000
close(3) = 0
openat(AT_FDCWD, "/usr/lib/gconv/gconv-modules.cache", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
openat(AT_FDCWD, "/usr/lib/gconv/gconv-modules", O_RDONLY|O_CLOEXEC) = 3
statx(3, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=3808, ...}) = 0
read(3, "# GNU libc iconv configuration.\n"..., 4096) = 3808
read(3, "", 4096) = 0
close(3) = 0
openat(AT_FDCWD, "/usr/lib/gconv/gconv-modules.d", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_CLOEXEC|O_DIRECTORY) = 3
statx(3, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0755, stx_size=4096, ...}) = 0
getdents64(3, 0x2408c98 /* 3 entries */, 32768) = 96
openat(AT_FDCWD, "/usr/lib/gconv/gconv-modules.d/gconv-modules-extra.conf", O_RDONLY|O_CLOEXEC) = 4
statx(4, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=53974, ...}) = 0
read(4, "# GNU libc iconv configuration.\n"..., 4096) = 4096
read(4, "B1002//\tJUS_I.B1.002//\nmodule\tJU"..., 4096) = 4096
read(4, "59-5//\nalias\tISO_8859-5//\t\tISO-8"..., 4096) = 4096
read(4, "59-16//\t\tINTERNAL\t\tISO8859-16\t1\n"..., 4096) = 4096
read(4, "-SE-A\t1\nmodule\tINTERNAL\t\tEBCDIC-"..., 4096) = 4096
read(4, "97\t\t1\n\n#\tfrom\t\t\tto\t\t\tmodule\t\tcos"..., 4096) = 4096
read(4, "1\n\n#\tfrom\t\t\tto\t\t\tmodule\t\tcost\nal"..., 4096) = 4096
read(4, "6//\t\tIBM1046//\nalias\tCP1046//\t\tI"..., 4096) = 4096
read(4, "\tto\t\t\tmodule\t\tcost\nalias\tRUSCII/"..., 4096) = 4096
read(4, "03//\nmodule\tCSN_369103//\t\tINTERN"..., 4096) = 4096
read(4, "\tmodule\t\tcost\nalias\tISO-IR-8-1//"..., 4096) = 4096
read(4, "IBM1156\t\t1\n\n#\tfrom\t\t\tto\t\t\tmodule"..., 4096) = 4096
read(4, "\t\tIBM1166//\nalias\tCP1166//\t\tIBM1"..., 4096) = 4096
read(4, "alias\tROMAN9//\t\tHP-ROMAN9//\nalia"..., 4096) = 726
read(4, "", 4096) = 0
close(4) = 0
getdents64(3, 0x2408c98 /* 0 entries */, 32768) = 0
close(3) = 0
futex(0xb6f5bd18, FUTEX_WAKE_PRIVATE, 2147483647) = 0
openat(AT_FDCWD, "test.txt", O_RDONLY|O_LARGEFILE) = -1 EACCES (Keine Berechtigung)
openat(AT_FDCWD, "/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3
statx(3, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=2998, ...}) = 0
read(3, "# Locale name alias data base.\n#"..., 4096) = 2998
read(3, "", 4096) = 0
close(3) = 0
openat(AT_FDCWD, "/usr/share/locale/de_DE.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
openat(AT_FDCWD, "/usr/share/locale/de_DE/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
openat(AT_FDCWD, "/usr/share/locale/de.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
openat(AT_FDCWD, "/usr/share/locale/de/LC_MESSAGES/libc.mo", O_RDONLY) = 3
statx(3, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=150826, ...}) = 0
mmap2(NULL, 150826, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb6931000
close(3) = 0
openat(AT_FDCWD, "/usr/share/locale/de_DE.utf8/LC_MESSAGES/sed.mo", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
openat(AT_FDCWD, "/usr/share/locale/de_DE/LC_MESSAGES/sed.mo", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
openat(AT_FDCWD, "/usr/share/locale/de.utf8/LC_MESSAGES/sed.mo", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
openat(AT_FDCWD, "/usr/share/locale/de/LC_MESSAGES/sed.mo", O_RDONLY) = 3
statx(3, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=16373, ...}) = 0
mmap2(NULL, 16373, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb6fd5000
close(3) = 0
write(2, "sed: test.txt kann nicht gelesen"..., 60sed: test.txt kann nicht gelesen werden: Keine Berechtigung
) = 60
close(1) = 0
exit_group(2) = ?
+++ exited with 2 +++ Aus dem selben Grund kann man Dateien, für die man keine Rechte hat auch mit mv oder rm (die warnen lediglich, wenn man nicht den Schalter $ rm test.txt $ echo "foo bar" | sudo tee test.txt $ echo "spam" > .tmpfile foo bar $ ls -la insgesamt 8 drwxr-xr-x 2 demo demo 80 17. Jun 14:52 . drwxrwxrwt 12 root root 240 17. Jun 14:45 .. -rw-r--r-- 1 root root 8 17. Jun 14:52 test.txt -rw-r--r-- 1 demo demo 5 17. Jun 14:52 .tmpfile $ mv .tmpfile test.txt mv: Überschreiben von 'test.txt', über Modus 0644 (rw-r--r--) hinwegsetzen? y $ ls -la insgesamt 4 drwxr-xr-x 2 demo demo 60 17. Jun 14:52 . drwxrwxrwt 12 root root 240 17. Jun 14:45 .. -rw-r--r-- 1 demo demo 5 17. Jun 14:52 test.txt |
||||
|
Supporter, Wikiteam
Anmeldungsdatum: Beiträge: 9837 |
Das erklärt wenigstens, wieso es so funktioniert. Und nebenbei auch, dass die Option |
||||
|
Anmeldungsdatum: Beiträge: 1388 |