Inventarisatie rechten

Pagina: 1
Acties:

  • Remco
  • Registratie: Januari 2001
  • Laatst online: 17:36
Ik heb een grote hoeveelheid directories. Groepen van users hebben rechten op deze directories. Doordat we de data gaan verhuizen naar een andere plek dienen de rechten geinventariseerd te worden.
Is er binnen linux een mogelijkheid om deze inventarisatie te doen op een eenvoudige en goed leesbare manier ?
Zeg maar een soort inventarisatie.
Ik heb al gezocht op internet, maar verder dan standaard rechten uitlezen per file of directory kom ik niet, en de data is te groot om dat makkelijk te gaan verwerken.

The best thing about UDP jokes is that I don't care if you get them or not.


Verwijderd

Dat kan best eenvoudig eigenlijk.

ls -al * > rechten.txt

Door * te gebruiken pak je alle directories en subdirectories en alle files natuurlijk.

  • Remco
  • Registratie: Januari 2001
  • Laatst online: 17:36
Ja, dat wist ik al.
Maar het gaat om ongeveer 170 GB aan office-data.
Ik had eigenlijk gehoopt dat er een tooltje of iets zou zijn dat het iets mooier zou weergeven.
Als het goed is zijn er alleen in de root dir. rechten verdeeld. Maar zeker weet ik dat niet.

The best thing about UDP jokes is that I don't care if you get them or not.


  • elTigro
  • Registratie: November 2000
  • Laatst online: 23-11-2025

elTigro

Es un Gringo!

dan kun je doen ls -al * | grep |^d > rechten.txt :)

/flauw

Maar wat voor tooltje wil je dan hebben?
je kunt namelijk ook gewoon via nautilus/welke filemanager dan ook in de hoofddir gaan staan en daar de rechten van alle subdirs bekijken. Of snap ik nu niet wat je bedoeld?

[ Voor 63% gewijzigd door elTigro op 09-07-2008 15:41 ]

Lazlo's Chinese Relativity Axiom:No matter how great your triumphs or how tragic your defeats --approximately one billion Chinese couldn't care less.


  • Remco
  • Registratie: Januari 2001
  • Laatst online: 17:36
Nee, je snapt het precies. Echter het probleem is dat er 73 afdelingen zijn die allemaal een eigen directory hebben.
De root dirs kan ik wel uitdraaien en handmatig inventariseren, maar ik wil er zeker van zijn dat er per ongeluk toch niet niveaus lager ook rechten zijn verdeeld.
Als het goed is, is dit niet gebeurd, maar ik wil er zeker van zijn.

The best thing about UDP jokes is that I don't care if you get them or not.


  • elTigro
  • Registratie: November 2000
  • Laatst online: 23-11-2025

elTigro

Es un Gringo!

dit dan?

Bash:
1
2
3
4
5
6
7
8
9
10
11
#!/bin/bash

for file in `ls` $1 ; do
        perms=`ls -ld $file | awk '{print $1}'`
        for subfile in `ls  $1/$file`; do
          permssub=`ls -ld ${file}/$subfile | awk '{print $1}'`
          if  [ "$perms" != "$permssub" ] ; then
                echo "$subfile in $file heeft andere permissies als $file nl: $perms en $permssub" >> $2
          fi
        done
done


Dit is natuurlijk wel een heel simpel scriptje, en gaat maar een dir diep, maar het idee lijkt me duidelijk... ;)

[ Voor 12% gewijzigd door elTigro op 09-07-2008 16:26 . Reden: even een extra >-je :) anders blijf je bezig ]

Lazlo's Chinese Relativity Axiom:No matter how great your triumphs or how tragic your defeats --approximately one billion Chinese couldn't care less.


  • Remco
  • Registratie: Januari 2001
  • Laatst online: 17:36
Dank je, ik zal het eens gaan uitvogelen.
Ik zal er wel even mee bezig zijn, maar goed. Houd me van de straat.

The best thing about UDP jokes is that I don't care if you get them or not.


  • zomertje
  • Registratie: Januari 2000
  • Laatst online: 22-01 20:37

zomertje

Barisax knorretje

Verder kun je natuurlijk straks kopieren met behoud van rechten :)

het ultieme jaargetijde.... | #!/usr/bin/girl | Art prints and fun


  • Remco
  • Registratie: Januari 2001
  • Laatst online: 17:36
zomertje schreef op woensdag 09 juli 2008 @ 16:35:
Verder kun je natuurlijk straks kopieren met behoud van rechten :)
We gaan kopieren naar een NTFS partitie. Dit ivm de Active Directory sync op users en rechten.

The best thing about UDP jokes is that I don't care if you get them or not.


  • Rainmaker
  • Registratie: Augustus 2000
  • Laatst online: 14-07-2024

Rainmaker

RHCDS

Aha, jullie gaan downgraden :P

Je wil dus eigenlijk kijken of een directory meer dan 1 verschillende gebruiker als eigenaar heeft?

code:
1
ls -l /home | awk '{print $3}' | grep -v ^$ | uniq | wc -l


Geeft je het aantal verschillende eigenaren in een directory.

Dus ik denk aan iets van:
code:
1
2
3
4
5
for i in `ls -1 /hoofddir`; do
if [ `ls -l /home | awk '{print $3}' | grep -v ^$ | uniq | wc -l` -gt 1 ]; then
echo "$i heeft meerdere eigenaren!"
fi
done

We are pentium of borg. Division is futile. You will be approximated.


  • jschot
  • Registratie: Oktober 2002
  • Laatst online: 09-07-2025
Rainmaker schreef op woensdag 09 juli 2008 @ 20:39:
code:
1
ls -l /home | awk '{print $3}' | grep -v ^$ | uniq | wc -l
Die grep is niet echt nodig ;)

code:
1
ls -l /home | awk '$3 {print $3}' | uniq | wc -l

  • Rainmaker
  • Registratie: Augustus 2000
  • Laatst online: 14-07-2024

Rainmaker

RHCDS

jschot schreef op woensdag 09 juli 2008 @ 21:03:
[...]


Die grep is niet echt nodig ;)

code:
1
ls -l /home | awk '$3 {print $3}' | uniq | wc -l
Is lege regels eruit halen.

Anders krijg je bovenaan een lege regel en begint het met 2:

De tekst "totaal 3" heeft namelijk geen 3e veld voor awk :)
$ ls -l
totaal 3
drwxr-xr-x 14 klaas users 616 jul 8 01:22 klaas
drwxr-xr-x 14 piet users 616 jul 8 01:22 piet
drwxr-xr-x 14 jan users 616 jul 8 01:22 jan
Even nog voor de TS: wat bedoel je nu precies? Ik vind "inventarisatie" zo'n heerlijke managementterm die zo heerlijk vaag is, dat je er altijd zelf iets van kan maken, met de voorwaarde dat het grafiekjes produceert.

Wat wil je in je output zien?

code:
1
2
3
4
5
Gebruiker jantje is eigenaar van de directory: 
en de files:
Gebruiker pietje is eigenaar van de directory: 
en de files:
..


Zoiets?

[ Voor 31% gewijzigd door Rainmaker op 10-07-2008 00:39 ]

We are pentium of borg. Division is futile. You will be approximated.


  • jschot
  • Registratie: Oktober 2002
  • Laatst online: 09-07-2025
Rainmaker schreef op donderdag 10 juli 2008 @ 00:35:
[...]

Is lege regels eruit halen.

Anders krijg je bovenaan een lege regel en begint het met 2:

De tekst "totaal 3" heeft namelijk geen 3e veld voor awk :)

[...]
Ik had jouw "awk '{print $3}'" veranderd in "awk '$3 {print $3}'", waardoor awk het filteren zelf doet ;) Ik ben nog nooit een voorbeeld tegengekomen waar een constructie "grep | awk" of "awk | grep" noodzakelijk is.

  • elTigro
  • Registratie: November 2000
  • Laatst online: 23-11-2025

elTigro

Es un Gringo!

Nou, die kan ik zo maken hoor, als je wilt :P

ik moet trouwens zeggen dat als je het goed leesbaar wilt houden ik eigenlijk wel voor een grep icm awk ben.
En als het lichtgewicht moet worden is wellicht een kcut -f3 oid minder zwaar.

[ Voor 68% gewijzigd door elTigro op 10-07-2008 11:22 ]

Lazlo's Chinese Relativity Axiom:No matter how great your triumphs or how tragic your defeats --approximately one billion Chinese couldn't care less.


  • Remco
  • Registratie: Januari 2001
  • Laatst online: 17:36
Rainmaker schreef op donderdag 10 juli 2008 @ 00:35:
Even nog voor de TS: wat bedoel je nu precies? Ik vind "inventarisatie" zo'n heerlijke managementterm die zo heerlijk vaag is, dat je er altijd zelf iets van kan maken, met de voorwaarde dat het grafiekjes produceert.

Wat wil je in je output zien?
De output is voor de interne ICT. Dit om NTFS groepen en rechten te verlenen op de geupgrade i-scsi omgeving....

The best thing about UDP jokes is that I don't care if you get them or not.


  • Rainmaker
  • Registratie: Augustus 2000
  • Laatst online: 14-07-2024

Rainmaker

RHCDS

Remco schreef op vrijdag 11 juli 2008 @ 12:18:
[...]

De output is voor de interne ICT. Dit om NTFS groepen en rechten te verlenen op de geupgrade i-scsi omgeving....
Zegt me nog niet zoveel...

Maar goed, wat dacht je van dit scriptje?

code:
1
2
3
4
5
6
7
8
#/bin/bash

ls -l / | awk '$3 {print $3,$9}' > /tmp/testje
for i in `cat /tmp/testje`; do
        echo "Gebruiker "`echo $i | cut -d " " -f 1` " heeft als hoofddirectory "`echo $i | cut -d " " -f 2`
        echo "Verder heeft deze gebruiker deze files:"
        find / -user `echo $i | cut -d " " -f 1` | grep -v `echo $i | cut -d " " -f 2`
done

We are pentium of borg. Division is futile. You will be approximated.


  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

Gaat 'm denk ik nog niet eens zoveel om Owners als wel om groepen die ergens bij kunnen.
Als je je data van *nix naar Windows NTFS wil zetten zul je toch ook willen weten welke data benaderbaar is voor welke groepen personen.

Onder Windows kun je dan met (i)cacls of dergelijke tools (dumpacl) de NTFS ACLs uitvragen, dus iets als

code:
1
2
3
4
5
6
7
8
9
\\SERVER1\gsfunc\acad\  DOM2\DOM1_F_ACAD_C              RWXD       RWXD      
\\SERVER1\gsfunc\acad\  DOM1-NL01\Domain Admins         all        all       
\\SERVER1\gsfunc\acad\  DOM3\Domain Admins           all        all       
\\SERVER1\gsfunc\acad\  DOM1-NL01\DOM1_F_ACAD_C         RWXD       RWXD      

\\SERVER1\gsfunc\ACF\   DOM2\DOM1_F_ACF_C               RWXD       RWXD      
\\SERVER1\gsfunc\ACF\   DOM2\DOM1_F_ACF_R               R X        R X       
\\SERVER1\gsfunc\ACF\   DOM1-NL01\Domain Admins         all        all       
\\SERVER1\gsfunc\ACF\   DOM2\Domain Users                R X


geeft je dan in ieder geval een inzicht wie er waarbij kunnen.
Dit soort datamigratie trajectjes lijken saai, maar zijn stiekem best wel leuk om te doen ;)

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device


  • wzzrd
  • Registratie: Februari 2000
  • Laatst online: 17-01 19:39

wzzrd

The guy with the Red Hat

Het find commando kun je met printf per bestand de rechten, groups of owners laten uitspugen per file of directory in octals. De output daarvan kun je dan als input voor een ander scriptje gebruiken.

Verwijderd

Niet doen. Technisch zijn er leuke mogelijkheden om dit soort dingen te doen, maar als het fout gaat heb jij het gedaan.

Tip: Ga naar de hoogste pief, en raad hem aan om deze migratie als excuus te gebruiken om de directorie structuur opnieuw in te richten. Dan zal er per afdeling iemand aangewezen worden om dit te regelen. Op deze manier heb jij geen verantwoordelijkheid, hoef je alleen een weekje standby te staan om eventueel wat rechten aan te passen, en je hebt uiteindelijk maar de helft aan schijfruimte nodig...

  • Remco
  • Registratie: Januari 2001
  • Laatst online: 17:36
Verwijderd schreef op maandag 14 juli 2008 @ 09:38:
Niet doen. Technisch zijn er leuke mogelijkheden om dit soort dingen te doen, maar als het fout gaat heb jij het gedaan.

Tip: Ga naar de hoogste pief, en raad hem aan om deze migratie als excuus te gebruiken om de directorie structuur opnieuw in te richten. Dan zal er per afdeling iemand aangewezen worden om dit te regelen. Op deze manier heb jij geen verantwoordelijkheid, hoef je alleen een weekje standby te staan om eventueel wat rechten aan te passen, en je hebt uiteindelijk maar de helft aan schijfruimte nodig...
Dat gaan we ook doen.
Maar eerst moeten we migreren. Wij hebben nu niet de tijd om de reorganisatie tegelijkertijd te doen.

The best thing about UDP jokes is that I don't care if you get them or not.


Verwijderd

find /home -type d -ls

indien het om de /home gaat.

Zoals al eerder gezegd is, is het mogelijk om met een scriptje een .bat filetje te maken die automatisch de rechten voor je gaat aanpassen op de Windows machine. Als je een commandootje weet om rechten aan te passen op command line in Windows, kan ik wel zo'n scriptje voor je schrijven. K heb toch niks beters te doen op mn werk... :-P

Verwijderd

Remco schreef op woensdag 09 juli 2008 @ 14:08:
Ik heb een grote hoeveelheid directories. Groepen van users hebben rechten op deze directories. Doordat we de data gaan verhuizen naar een andere plek dienen de rechten geinventariseerd te worden.
Is er binnen linux een mogelijkheid om deze inventarisatie te doen op een eenvoudige en goed leesbare manier ?
Zeg maar een soort inventarisatie.
Ik heb al gezocht op internet, maar verder dan standaard rechten uitlezen per file of directory kom ik niet, en de data is te groot om dat makkelijk te gaan verwerken.
Je omschrijving is ontzettend vaag. Hoe ziet de huidige situatie er uit? ACL lijsten of Unix file rechten? Een directory server met gebruikers? zo ja, komt die in de nieuwe situatie terug met dezelfde gebruikers? In de nieuwe situatie dus wel ACL?

Wat je kan doen is een tarball maken van alle directories met een combinatie van find en tar.

Dit kan dus alleen de directory server terug komt met dezelfde uids en gids...

e.g. (Ik heb dit niet getest, want ik heb hier geen linux systeem)
code:
1
find . -f d -exec tar -p -A -f inventarisatie.tar {} \;
Pagina: 1