[chmod] bestanden en dirs onderscheiden

Pagina: 1
Acties:

  • JVaags
  • Registratie: Juni 2001
  • Laatst online: 08-01-2025

JVaags

Je voelt je beter in een 504

Topicstarter
Hoi,

Ik ben erachter gekomen dat door wat geklooi de rechten op een paar gedeelde samba mappen niet helemaal kloppen ;)

Maar ja, om nu al die mappen handmatig te gaan doorlopen vind ik ook wat veel werk :)

Ik wil dat de files chmod 640 krijgen en de dirs 750.

Nu ben ik bezig geweest met de volgende commando's:

find /hd2/samba/public/ -type d -exec chmod 750 {} \;
find /hd2/samba/public/ -type f -exec chmod 640 {} \;

Maar dat werkt niet.

Ik krijg steevast de volgende melding:

find: missing argument to `-exec'

Wat doe ik verkeerd?

p.s. ik heb redhat 7.2

  • a casema user
  • Registratie: Januari 2000
  • Laatst online: 14-08 13:49
from the manual
-exec command ;
Execute command; true if 0 status is returned. All
following arguments to find are taken to be argu-
ments to the command until an argument consisting
of `;' is encountered. The string `{}' is replaced
by the current file name being processed everywhere
it occurs in the arguments to the command, not just
in arguments where it is alone, as in some versions
of find. Both of these constructions might need to
be escaped (with a `\') or quoted to protect them
from expansion by the shell. The command is exe-
cuted in the starting directory.
slash heb je al, misschien quoten ?

Taaaa taa taa taaaa taa taa ta taaataaaaa.


  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 16-08 16:08

deadinspace

The what goes where now?

Als je het als root kunt doen, kan het iets makkelijker:
code:
1
2
chmod -R 200 <dir_in_kwestie>
chmod -R ug+rX <dir_in_kwestie>

X set execute permissies alleen als het een directory betreft, of als er al execute permissies gezet waren op die file.

  • JVaags
  • Registratie: Juni 2001
  • Laatst online: 08-01-2025

JVaags

Je voelt je beter in een 504

Topicstarter
Op donderdag 31 januari 2002 23:14 schreef deadinspace het volgende:
Als je het als root kunt doen, kan het iets makkelijker:
code:
1
2
chmod -R 200 <dir_in_kwestie>
chmod -R ug+rX <dir_in_kwestie>

X set execute permissies alleen als het een directory betreft, of als er al execute permissies gezet waren op die file.
Excuses voor de ietwat late reactie maar er kwam wat dingen tussen door ;)
Ik heb bovenstaande getest en het werkt!

Dus nog even voor mijn beeldvorming:

chmod -R 200 dir ,zet schrijf permissies voor owner op dir en file
chmod -R ug+rX dir, zet read voor de owner en group en excute alleen op de files :?

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 16-08 16:08

deadinspace

The what goes where now?

Op zondag 03 februari 2002 22:59 schreef JVaags het volgende:
chmod -R 200 dir ,zet schrijf permissies voor owner op dir en file
Jep.
chmod -R ug+rX dir, zet read voor de owner en group en excute alleen op de files :?
Alleen op directories en op files die al execute permissies hadden voor user, group of other.
een dir wordt dus hiermee altijd +x (voor owner en group in dit voorbeeld), en een file alleen als hij al u+x, g+x of o+x was (wat dus niet het geval kan zijn vanwege die eerste chmod).

Uit de manpage:
The letters `rwxXstugo' select the new permissions for the affected users: read (r), write (w), execute (or access for directories) (x), execute only if the file is a directory or already has execute permission for some user (X)... <snip>
Overigens werkt dit alleen als root omdat na de eerste chmod niemand meer read en/of execute rechten op de directories heeft (en dus niemand de inhoud kan zien), behalve root, die dat altijd mag. Als je het niet als root had kunnen doen was een find-constructie waarschijnlijk het makkelijkst geweest.

  • igmar
  • Registratie: April 2000
  • Laatst online: 29-06 18:56

igmar

ISO20022

find /hd2/samba/public/ -type d -exec chmod 750 {} \;
find /hd2/samba/public/ -type f -exec chmod 640 {} \;
find blabla -type d -exec chmod 700 '{}' ';'

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 16-08 16:08

deadinspace

The what goes where now?

Op maandag 04 februari 2002 12:21 schreef igmar het volgende:
find blabla -type d -exec chmod 700 '{}' ';'
{} moet niet tussen '' hoor (nouja, niet in bash iig).
Nu ik zo naar die find regels kijk... Ze zouden eigenlijk ook gewoon moeten werken.
Pagina: 1