vreemde permissions /var/named ?

Pagina: 1
Acties:

  • marcellos
  • Registratie: Juni 2002
  • Laatst online: 11-05 08:49
code:
1
2
3
4
5
6
7
8
]$ pwd
/var/named
]$ ls -al domain.com
-rw-r--r--    1 named    named         818 Jan 27 08:56 domain.com
]$ rm -f domain.com
rm: cannot unlink `domain.com': Permission denied
]$ ls -dal /var/named/
drwxrwxr-x    3 named    named       20480 Jan 27 17:30 /var/named/


lijkt er dus op dat ik gewoon rechten moet hebben
temp dir in /tmp/root/named
(met zelfde rechten)

:
code:
1
2
3
4
5
]$ ls -dal /tmp/toor/test/
drwxrwxr-x    2 named    named        4096 Jan 27 17:27 /tmp/toor/test/
]$ ls -al domain.com
-rw-r--r--    1 named    named         818 Jan 27 08:56 domain.com
]$ rm -f domain.com

en weg file....

mijn id :
code:
1
2
]$ id
uid=578(cello) gid=200(guests) groups=200(guests),500(named)

heeft iemand enig idee wat er anders is aan /var/named ?
rechten zijn gelijk lijkt mij ?

[ Voor 4% gewijzigd door Verwijderd op 27-01-2003 17:42 ]


Verwijderd

wat geeft "lsattr /var/named" :?
en /var/named/domain.com?

chattr -i op de dir/bestand, zal wonderen doen ;)

Overigens is het gebruik van [code ]-tags in het vervolg aan te raden ;) Ik heb het nu al voor je gedaan.

[edit]
Aaargh, ik zit niet op te letten. Je bent niet als root ingelogd :?

Vind je het dan vreemd dat je dat bestand niet mag verwijderen? Dit is nogal een geval van rechten-beheer kennen.

[ Voor 35% gewijzigd door Verwijderd op 27-01-2003 17:46 ]


  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 13-05 17:10

deadinspace

The what goes where now?

Verwijderd schreef op 27 January 2003 @ 17:41:
Aaargh, ik zit niet op te letten. Je bent niet als root ingelogd :?

Vind je het dan vreemd dat je dat bestand niet mag verwijderen? Dit is nogal een geval van rechten-beheer kennen.
/var/named is rwxrwxr-x van named:named . Als je in de group named zit, moet je die file dus gewoon kunnen verwijderen.

Overigens gaat het hier volgensmij om FreeBSD, ik weet niet of je daar de extended filesystem attributes met lsattr en chattr wijzigt (of überhaupt welke extended attributes UFS heeft).

Als je strace hebt, doe anders eens "strace rm file".

Verwijderd

Gehehe, dat is helemaal erg, als je gaat praten over rechten-beheer en dan zelf niet eens goed leest :o

  • Bergen
  • Registratie: Maart 2001
  • Laatst online: 05-05 10:41

Bergen

Spellingscontroleur

Hmm strace is best wel handig ja :) Dat kende ik nog niet! Bovenstaande ook even uitgeprobeerd met chattr +i enzo en in strace kom ik dan halverwege tegen:
code:
1
access("blaat", W_OK)             = -1 EACCES (Permission denied)
...en op dat punt merkt het systeem denk ik dat hij het bestandje helemaal niet mag verwijderen. (toch?) (slackware trouwens hier, geen bsd)

[ Voor 6% gewijzigd door Bergen op 27-01-2003 18:32 ]


  • DDX
  • Registratie: April 2001
  • Laatst online: 12:40

DDX

Verwijderd schreef op 27 januari 2003 @ 17:41:
wat geeft "lsattr /var/named" :?
en /var/named/domain.com?
]# lsattr -d /var/named/
-------------- /var/named/

]# lsattr -d /tmp/toor/test/
-------------- /tmp/toor/test/

]# lsattr /var/named/domain.com
-------------- /var/named/domain.com
chattr -i op de dir/bestand, zal wonderen doen ;)
niet dus, zit er niet op

zover ik (met marcellos samen) heb kunnen nagaan is alles in beide dirs hetzelfde

het is een redhat 7.3 systeem trouwens
deadinspace schreef op 27 January 2003 @ 18:15:
Als je strace hebt, doe anders eens "strace rm file".
geeft heel wat output ;)

]$ strace rm -f domain.com
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
execve("/bin/rm", ["rm", "-f", "domain.com"], [/* 23 vars */]) = 0
uname({sys="Linux", node="ddx.a2000.nu", ...}) = 0
brk(0)                                  = 0x27340
open("/etc/ld.so.preload", O_RDONLY)    = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=15684, ...}) = 0
mmap(NULL, 15684, PROT_READ, MAP_PRIVATE, 3, 0) = 0x70018000
close(3)                                = 0
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\2\0\0\0\1\0\1\312"..., 1024) = 1024
fstat64(3, {st_mode=S_IFREG|0755, st_size=1461373, ...}) = 0
mmap(NULL, 1285992, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x7002c000
mprotect(0x7015c000, 40808, PROT_NONE)  = 0
mmap(0x7015c000, 32768, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0x130000) = 0x7015c000
mmap(0x70164000, 8040, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x70164000
close(3)                                = 0
munmap(0x70018000, 15684)               = 0
brk(0)                                  = 0x27340
brk(0x27368)                            = 0x27368
brk(0x28000)                            = 0x28000
open("/usr/share/locale/locale.alias", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=2601, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x70018000
read(3, "# Locale name alias data base.\n#"..., 8192) = 2601
brk(0x2a000)                            = 0x2a000
read(3, "", 8192)                       = 0
close(3)                                = 0
munmap(0x70018000, 8192)                = 0
open("/usr/lib/locale/en_US.iso885915/LC_IDENTIFICATION", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=371, ...}) = 0
mmap(NULL, 371, PROT_READ, MAP_PRIVATE, 3, 0) = 0x70018000
close(3)                                = 0
open("/usr/lib/gconv/gconv-modules.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=20666, ...}) = 0
mmap(NULL, 20666, PROT_READ, MAP_SHARED, 3, 0) = 0x7001c000
close(3)                                = 0
open("/usr/lib/locale/en_US.iso885915/LC_MEASUREMENT", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=29, ...}) = 0
mmap(NULL, 29, PROT_READ, MAP_PRIVATE, 3, 0) = 0x70024000
close(3)                                = 0
open("/usr/lib/locale/en_US.iso885915/LC_TELEPHONE", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=65, ...}) = 0
mmap(NULL, 65, PROT_READ, MAP_PRIVATE, 3, 0) = 0x70168000
close(3)                                = 0
open("/usr/lib/locale/en_US.iso885915/LC_ADDRESS", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=161, ...}) = 0
mmap(NULL, 161, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7016c000
close(3)                                = 0
open("/usr/lib/locale/en_US.iso885915/LC_NAME", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=83, ...}) = 0
mmap(NULL, 83, PROT_READ, MAP_PRIVATE, 3, 0) = 0x70170000
close(3)                                = 0
open("/usr/lib/locale/en_US.iso885915/LC_PAPER", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=40, ...}) = 0
mmap(NULL, 40, PROT_READ, MAP_PRIVATE, 3, 0) = 0x70174000
close(3)                                = 0
open("/usr/lib/locale/en_US.iso885915/LC_MESSAGES", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
close(3)                                = 0
open("/usr/lib/locale/en_US.iso885915/LC_MESSAGES/SYS_LC_MESSAGES", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=58, ...}) = 0
mmap(NULL, 58, PROT_READ, MAP_PRIVATE, 3, 0) = 0x70178000
close(3)                                = 0
open("/usr/lib/locale/en_US.iso885915/LC_MONETARY", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=292, ...}) = 0
mmap(NULL, 292, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7017c000
close(3)                                = 0
open("/usr/lib/locale/en_US.iso885915/LC_COLLATE", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=22592, ...}) = 0
mmap(NULL, 22592, PROT_READ, MAP_PRIVATE, 3, 0) = 0x70180000
close(3)                                = 0
open("/usr/lib/locale/en_US.iso885915/LC_TIME", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=2457, ...}) = 0
mmap(NULL, 2457, PROT_READ, MAP_PRIVATE, 3, 0) = 0x70188000
close(3)                                = 0
open("/usr/lib/locale/en_US.iso885915/LC_NUMERIC", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=60, ...}) = 0
mmap(NULL, 60, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7018c000
close(3)                                = 0
open("/usr/lib/locale/en_US.iso885915/LC_CTYPE", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=173680, ...}) = 0
mmap(NULL, 173680, PROT_READ, MAP_PRIVATE, 3, 0) = 0x70190000
close(3)                                = 0
ioctl(0, 0x40245408, {B38400 opost isig icanon echo ...}) = 0
brk(0x2c000)                            = 0x2c000
lstat64("domain.com", {st_mode=S_IFREG|0644, st_size=815, ...}) = 0
unlink("domain.com")                 = -1 EACCES (Permission denied)
open("/usr/share/locale/en_US.iso885915/LC_MESSAGES/fileutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_US/LC_MESSAGES/fileutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en.iso885915/LC_MESSAGES/fileutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/fileutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
write(2, "rm: ", 4rm: )                     = 4
write(2, "cannot unlink `domain.com\'", 29cannot unlink `domain.com') = 29
open("/usr/share/locale/en_US.iso885915/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en.iso885915/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
write(2, ": Permission denied", 19: Permission denied)     = 19
write(2, "\n", 1
)                       = 1
exit(1)                                 = ?

https://www.strava.com/athletes/2323035


  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 13-05 17:10

deadinspace

The what goes where now?

DDX schreef op 27 januari 2003 @ 20:57:
code:
1
unlink("domain.com")                 = -1 EACCES (Permission denied)
Nouja, iig geen dingen als "read-only filesystem" oid... Je mag die file gewoon niet verwijderen van de kernel.

Is de user waarmee je die file probeert te verwijderen soms niet opnieuw ingelogd nadat hij aan die group is toegevoegd? Als je aan een group wordt toegevoegd, dan wordt dat pas doorgevoerd als je opnieuw inlogt.
Als je /var/named/domain.com vanaf dezelfde terminal probeert te verwijderen als /tmp/toor/test, dan zou dit niet het probleem moeten zijn.

Staan /var en /tmp op hetzelfde filesystem?

Je zou kunnen proberen /var te e2fscken, misschien is het een inconsistency in het filesystem (als dat zo is, dan verschijnt er misschien ook wat nuttigs in /var/log/messages als je de file probeert te verwijderen), maar dan zou ik eerder een I/O error verwachten.
Merk op dat een filesystem niet read-write gemount mag zijn als je gaat fscken.

  • Bergen
  • Registratie: Maart 2001
  • Laatst online: 05-05 10:41

Bergen

Spellingscontroleur

En die foutmeldingen aan het einde dan? Daar lijkt het er wel erg op of hij fileutils.mo en libc.mo niet kan vinden. Als je die erop krijgt (of al hebt maar ff in 't path zet) werkt het misschien...?

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 13-05 17:10

deadinspace

The what goes where now?

GerbenW schreef op 28 January 2003 @ 00:43:
En die foutmeldingen aan het einde dan? Daar lijkt het er wel erg op of hij fileutils.mo en libc.mo niet kan vinden. Als je die erop krijgt (of al hebt maar ff in 't path zet) werkt het misschien...?
Mja, dat zijn allemaal locales dingen, voor vertalingen e.d. dus. (hij probeert er wel nogal veel te openen, maar ok). Bovendien komen die dus voor *na* de unlink() systemcall... Tegen die tijd kan het geen invloed meer hebben.

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 13-05 17:46

Kees

Serveradmin / BOFH / DoC
EACCES

Write access to the directory containing pathname is not allowed for the process's effective uid, or one of the directories in pathname did not allow search (execute) permission.
Je kan waarschijnlijk wel in /tmp schrijven & lezen, en ook in /tmp/toor/, maar mag je ook in /var komen? (bij mij is die default 755, probeer dat eens in tmp na te bootsen? (dus chmod 755 /tmp/toor?)

Of is het al laat en lees ik ergens overheen? ;)

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


  • DDX
  • Registratie: April 2001
  • Laatst online: 12:40

DDX

ARGH zit ik net verhaal te tikken, even tijdelijk geen GOT :(
naja nogmaals :
deadinspace schreef op 28 januari 2003 @ 00:34:
Is de user waarmee je die file probeert te verwijderen soms niet opnieuw ingelogd nadat hij aan die group is toegevoegd? Als je aan een group wordt toegevoegd, dan wordt dat pas doorgevoerd als je opnieuw inlogt.
nee user zit al paar jaar in die groep
Als je /var/named/domain.com vanaf dezelfde terminal probeert te verwijderen als /tmp/toor/test, dan zou dit niet het probleem moeten zijn.
niet dus, helaas :(
Staan /var en /tmp op hetzelfde filesystem?
nee, maar heb zelfde test ook in /var/tmp/ toor/test gedaan
zelfde results

nog even wat testoutput :

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
[root@ddx tmp]# cp -Ra /var/named/ /var/tmp/ 
[root@ddx tmp]# ls -dal /var/tmp/named/
drwxrwxr-x    3 named    named       16384 Jan 28 10:29 /var/tmp/named/
[ddx@ddx tmp]$ rm -f /var/tmp/named/domain.com 
rm: cannot unlink `/var/tmp/named/domain.com': Permission denied
[ddx@ddx tmp]$ ls -al /var/tmp/named/domain.com 
-rw-r--r--    1 named    named         818 Jan 27 08:56 /var/tmp/named/domain.com

[root@ddx tmp]# mkdir test
[root@ddx tmp]# chown named:named test
[root@ddx tmp]# chmod 775 test
[root@ddx tmp]# ls -dal /var/tmp/test/
drwxrwxr-x    2 named    named        4096 Jan 28 10:35 /var/tmp/test/
[root@ddx tmp]# touch /var/tmp/test/file
[root@ddx tmp]# ls -la /var/tmp/test/file
-rw-r--r--    1 root     root            0 Jan 28 10:37 /var/tmp/test/file
[root@ddx tmp]# su ddx
[ddx@ddx tmp]$ rm -f /var/tmp/test/file 
[ddx@ddx tmp]$ ls -al /var/tmp/test/file
ls: /var/tmp/test/file: No such file or directory


[root@ddx tmp]# cp -Ra /var/named/domain.com test/
[root@ddx tmp]# su ddx
[ddx@ddx tmp]$ rm -f /var/tmp/test/domain.com 
[ddx@ddx tmp]$ ls -la /var/tmp/test/domain.com
ls: /var/tmp/test/domain.com: No such file or directory

[ddx@ddx tmp]$ rm -f /var/tmp/named/domain.com 
rm: cannot unlink `/var/tmp/named/domain.com': Permission denied

[root@ddx tmp]# mv /var/tmp/named/ /var/tmp/test2/
[root@ddx tmp]# su ddx
[ddx@ddx tmp]$ rm -f /var/tmp/test2/domain.com 
rm: cannot unlink `/var/tmp/test2/domain.com': Permission denied

[root@ddx tmp]# mv test
[root@ddx tmp]# mkdir named
[root@ddx tmp]# chown named:named named
[root@ddx tmp]# chmod 775 named
[root@ddx named]# cp -Ra /var/named/* /var/tmp/named/
[ddx@ddx tmp]$ rm -f /var/tmp/named/domain.com
[ddx@ddx tmp]$ ls -al /var/tmp/named/domain.com
ls: /var/tmp/named/domain.com: No such file or directory

[root@ddx tmp]# lsattr -d /var/tmp/test
-------------- /var/tmp/test
[root@ddx tmp]# lsattr -d /var/tmp/test2
-------------- /var/tmp/test2


er zit dus echt iets van 'hidden' permissions op die dir
makkelijkst antwoord is nu natuurlijk rm -Rf /var/named, opnieuw aanmaken en weg permission problemen
maargoed oorzaak achterhalen is wel zo leuk/handig
Kees schreef op 28 January 2003 @ 06:04:
[...]

Je kan waarschijnlijk wel in /tmp schrijven & lezen, en ook in /tmp/toor/, maar mag je ook in /var komen? (bij mij is die default 755, probeer dat eens in tmp na te bootsen? (dus chmod 755 /tmp/toor?)

Of is het al laat en lees ik ergens overheen? ;)
/tmp/toor heeft zelfde rechten als /var (root rw, en named geen rechten)

https://www.strava.com/athletes/2323035


  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 13-05 17:10

deadinspace

The what goes where now?

DDX schreef op 28 January 2003 @ 10:55:
maargoed oorzaak achterhalen is wel zo leuk/handig
Inderdaad.

Kun je (als user) wel files in /var/named aanmaken?
code:
1
cp /var/named/domain.com /var/named/blaat

Zo ja, kun je dan /var/named/blaat wel als user verwijderen? Zo nee, wel als root?

Wat is de output van ls -lnd /var/named?

  • DDX
  • Registratie: April 2001
  • Laatst online: 12:40

DDX

deadinspace schreef op 28 januari 2003 @ 20:07:
Kun je (als user) wel files in /var/named aanmaken?
code:
1
cp /var/named/domain.com /var/named/blaat
nee, nieuwe files aanmaken mag ook niet

code:
1
2
[ddx@ddx named]$ touch /var/named/test 
touch: creating `/var/named/test': Permission denied


ook vreemd :

code:
1
2
3
4
5
[ddx@ddx named]$ ls -al /var/named/testfile 
-rw-rw-r--    1 named    named           0 Jan 29 01:21 testfile
[ddx@ddx named]$ echo test > testfile 
[ddx@ddx named]$ cat testfile 
test


maar andere file die er al staat :

code:
1
2
3
4
5
[root@ddx named]# chmod 664 domaintje.com
[ddx@ddx named]$ ls -al domaintje.com
-rw-rw-r--    1 named    named         557 Jan 29 01:23 domaintje.com
[ddx@ddx named]$ echo test > domaintje.com
-bash: domaintje.com: Permission denied


zal ook wel aan mij liggen, maar die files hebben toch zelfde permissions ?!
begin het steeds minder te snappen....
Zo ja, kun je dan /var/named/blaat wel als user verwijderen? Zo nee, wel als root?
beide files mag ik niet verwijderen (dus zowel die file waar ik echo naar mocht doen, als file waar ik geen echo naar mocht doen)
Wat is de output van ls -lnd /var/named?
code:
1
2
[root@ddx named]# ls -lnd /var/named/
drwxrwxr-x    3 25       25          20480 Jan 29 01:27 /var/named/

https://www.strava.com/athletes/2323035


Verwijderd

Je moet eens proberen om je filesystem te unmounten en dan forced e2fsck te doen, of als het je / is rebooten en optie meegeven zodat ie bij 't opstarten gaat checken, misschien iets niet helemaal consistent in je fs?

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 13-05 17:10

deadinspace

The what goes where now?

DDX schreef op 29 januari 2003 @ 01:27:
code:
1
2
[root@ddx named]# ls -lnd /var/named/
drwxrwxr-x    3 25       25          20480 Jan 29 01:27 /var/named/
And we have a winner :)

Eerder schreef je:
marcellos schreef op 27 januari 2003 @ 17:33:
code:
1
2
]$ id
uid=578(cello) gid=200(guests) groups=200(guests),500(named)
Je hebt dus twee verschillende groups die "named" heten. Eentje met gid 25 en eentje met gid 500. De rest wordt je zonder uitleg wel duidelijk denk ik :)

  • DDX
  • Registratie: April 2001
  • Laatst online: 12:40

DDX

deadinspace schreef op 29 januari 2003 @ 03:23:
[...]

And we have a winner :)

Eerder schreef je:

[...]

Je hebt dus twee verschillende groups die "named" heten. Eentje met gid 25 en eentje met gid 500. De rest wordt je zonder uitleg wel duidelijk denk ik :)
ah fuck, nu zie ik het ook idd (gisteravond niet helemaal wakker denk ik;))
group named staat onderaan in /etc/group
is denk ik aangemaakt bij updaten van bind :(
(irri ding die niet al ff kijkt of group named bestaat)

naja was dus iets simpels, thnx ;)

https://www.strava.com/athletes/2323035

Pagina: 1