Acties:
  • 0 Henk 'm!

  • Joen
  • Registratie: Juli 2003
  • Laatst online: 07-04 18:53
Ik heb al lange tijd mij wat willen verdiepen in Linux en vanwege de stabiliteit die je vaak hoort over Debian wil specifiek Debian leren kennen.
Ik heb er al enigzins wat kennis mee gemaakt via Linux Mint Cinnamon en MATE en hoewel het er mooi uit ziet lukte mij toch nog niet alles en heb ik het even liggen.
Ik heb nu sinds een paar dagen een Raspberry Pi en vanwege de vele mogelijkheden wat je er mee zou kunnen doen wil ik toch weer graag wat met Debian willen gaan proberen. Ik heb daarom Raspbian (gebaseerd op Debian Wheezy) met LXDE geïnstalleerd op een 16GB SD-kaart, ik kan het opstarten en ik kan er ook prima nieuwe software op installeren met behulp van het tevens door mij zelf geïnstalleerde Synaptic Pakketbeheer (was niet standaard aanwezig). Een hoop dingen kan ik wel eenvoudig op internet terug vinden door een beetje te zoeken met Google, maar een paar dingen zijn door de overdaad aan verschillende informatie niet eenvoudig te vinden.

1 van de dingen die ik zo snel mogelijk in orde wil maken voordat ik allerlei andere uitgebreide projecten op ga zetten op Raspbian is een directory waarin ik mijn bestanden kan opslaan en die ook middels een Samba share op mijn Windows 7 laptop bereikbaar moet zijn. De 1e kleer nav wat tutorials ging dit helemaal goed. Nadien lukt mij het niet meer om alles in de betreffende directory's te bewerken en zijn ze alleen nog maar te lezen.
Gebruikte documentatie
Allereerst de documentatie die ik heb gebruikt:
Betreffende directory's
De directory's die ik heb aangemaakt (op basis van de Samba howto):
  • Directory "usb": /mnt/usb (voor de mount naar mijn Sandisk Cruzer Fit USB disk
  • Directory "data": /data (waar ik zoveel mogelijk persoonlijke bestanden in wil opslaan en via Samba beschikbaar wil maken als share naar Windows 7 toe)
  • Directory "usb": /data/usb (voor de mount naar mijn Sandisk Cruzer Fit USb disk en die ook in de share beschikbaar moet zijn)
Allen heb ik met "sudo mkdir" rechten 1777 meegegeven.
Het probleem
Na een feilloze start na het volgen van de howto's en daarna mijn Rapsberry Pi een nachtje uit te hebben gelaten kwam ik er snel achter dat bewerken in de aangemaakte directory's niet meer mogelijk was. Aanvankelijk dacht ik dat het een probleem in Samba was wat enigzins werd versterkt door wat logboekvermeldingen die twijfelachtig waren, maar daarna bleek al snel dat het een rechtenkwestie was aangezien ik via bestandsbeheerder PCManFM ook geen directory's meer kon aanmaken en bestanden opslaan.

Toen ik de rechten ging controleren in PCManFM van de aangemaakte directory's bleken /mnt en /data volgens mij nog wel de juiste rechten te hebben (naast de root kunnen anderen er ook in lezen, schrijven en uitvoeren), maar van de subdirectory /usb niet meer (alleen lezen). Van alle directory's is de gebruiker dan nog "root". Logischerwijs kan ik dus als gebruiker "pi" dan inderdaad alleen lezen.
Wat heb ik geprobeerd?
Ik geprobeerd met chmod de rechten 1777, daarna een keer 0777 en daarna nog een keer 777 de rechten bij te werken. De rechten in /data/usb blijven voor de gebruiker "pi" op "alleen lezen". Het lijkt mij dat die directory dus chmod 744 moet hebben terwijl ik hem dus aangepast had naar 777.

Vervolgens heb ik ook de directory's verwijderd en opnieuw toegevoegd met chmod waarde 1777. Ook dit lostte mijn probleem niet op.

Telkens wanneer ik de betreffende directory's opnieuw de rechten toe ken door ze te verwijderen en toevoegen of door chmod opnieuw toe te passen worden de rechten zonder foutmelding toch weer beperkt.
De vragen over de kwestie
  • Heeft een USB disk met FAT32 indeling (en dus zonder rechtenstructuur) nog invloed op dit geheel?
  • Waar staat het eerste cijfer in de chmod waarde "1777" nu precies voor? Ik las ergens dat de 1 een "sticky bit" is, maar het is mij nog niet precies duidelijk wat dat betekent. Ook vraag ik mij af of op die 1e plek ook andere waarden kunnen staan en zo ja welke waarden en wat betekenen ze?
  • Heeft iemand enig idee waarom de rechten niet daadwerkelijk naar 777 worden gewijzijgd en dus hoe ik die rechten daar wel op kan krijgen? Of heeft iemand een uitleg voor mij hoe ik dit beter zou kunnen aanpakken?
  • Ik las in de Samba documenten terug dat je in Samba bij de share-vermeldingen in smb.conf ook rechten mee kan geven, maar in de Samba howto werd dat niet gebruikt. Is het verstandig dat wel te gebruiken en zo ja, wat voor adviezen vallen daar over te geven?
Sorry als mijn vragen als kleuterachtige vragen over komen. :P Over Windows, Apache webservers installeren op Windows, PHP, MySQL installeren op Windows en dat soort zaken kun je mij alles vragen, maar op het vlak van Linux weet ik zeer weinig. Ik loop vooral vaak vast op het niet goed begrijpen van de complexe (maar goede) rechtensystemen binnen Linux.

Acties:
  • 0 Henk 'm!

  • Thralas
  • Registratie: December 2002
  • Laatst online: 09:09
Joen schreef op vrijdag 25 juli 2014 @ 22:44:
• Heeft een USB disk met FAT32 indeling (en dus zonder rechtenstructuur) nog invloed op dit geheel?
Ja. Dat staat waarschijnlijk aan de basis van je probleem.
• Waar staat het eerste cijfer in de chmod waarde "1777" nu precies voor? Ik las ergens dat de 1 een "sticky bit" is, maar het is mij nog niet precies duidelijk wat dat betekent. Ook vraag ik mij af of op die 1e plek ook andere waarden kunnen staan en zo ja welke waarden en wat betekenen ze?
Neem man chmod(7) eens door, daar wordt het allemaal haarfijn uitgelegd.
• Heeft iemand enig idee waarom de rechten niet daadwerkelijk naar 777 worden gewijzijgd en dus hoe ik die rechten daar wel op kan krijgen? Of heeft iemand een uitleg voor mij hoe ik dit beter zou kunnen aanpakken?
FAT kent geen unix-permissies, zoals je zelf al opmerkte. Dus de rechten die je probeert toe te kennen worden simpelweg genegeerd.

De oplossing is om ten tijde van het mounten rechten toe te kennen (voor het gehele gemounte filesystem).

Uit de manpage van mount(8):
Mount options for fat
uid=value and gid=value
Set the owner and group of all files. (Default: the uid and gid of the current process.)
Ofwel:
mount -o uid=myuser,gid=mygroup /dev/mydisk /mnt/usb
Allen heb ik met "sudo mkdir" rechten 1777 meegegeven.
Een belangrijke noot hierbij is dat deze permissies geen invloed hebben als je op de betreffende directory (bijvoorbeeld /mnt/usb) een filesystem mount.
• Ik las in de Samba documenten terug dat je in Samba bij de share-vermeldingen in smb.conf ook rechten mee kan geven, maar in de Samba howto werd dat niet gebruikt. Is het verstandig dat wel te gebruiken en zo ja, wat voor adviezen vallen daar over te geven?
Dat ligt geheel aan je wensen. Mag iedereen op je netwerk toegang hebben tot je shares? Dan hoef je daar niet in te duiken. Wil je de toegang echter (gedeeltelijk) beperken met een gebruikersnaam/wachtwoord, dan zul je daar inderdaad even in moeten duiken.

Oh, en als laatste, probeer wat wat zorgvuldiger om te springen met het uitdelen van permissies. 777 is (bijna) nooit wenselijk.

Acties:
  • 0 Henk 'm!

  • Joen
  • Registratie: Juli 2003
  • Laatst online: 07-04 18:53
Aha. Dus het hoofdprobleem is die FAT32 USB disk die geen rechten ondersteund?
Ik wil hem mounten via fstab, maar ik zag al wel iets soortgelijks voorbij komen. Ik ga daar dan even mee oefenen.

Ik vind het wel vreemd dat het de 1e keer wel lukte terwijl ik (voor zover ik mij kan herinneren) niets veel anders heb gedaan dan de latere pogingen.

Ik kom trouwens wel vaker in die man pages verwijzingen naar <functie>(x) tegen, maar hoe vraag je die specifieke man pages op?
Als ik "man chmod(7)" gebruik krijg ik de melding "bash: syntaxfout nabij onverwacht symbool" en als ik "man chmod 7" gebruik krijg ik het zelfde te zien als zonder de 7.

Okee, ze staan voor sectienummers en moeten voor het commando waar je hulp over wilt opvragen staan. Dus "man 7 chmod".
Maar er lijkt geen sectie 7 te bestaan volgens de terminal.

Edit 2:
Thralas schreef op vrijdag 25 juli 2014 @ 23:14:
(...)
Oh, en als laatste, probeer wat wat zorgvuldiger om te springen met het uitdelen van permissies. 777 is (bijna) nooit wenselijk.
Uiteraard. Ik ben de enige gebruiker en ik heb er nog geen webserver-achtige dingen op staan. Eerst dingen een beetje proberen te snappen en naar wensen inrichten en daarna het allemaal ook goed doen.

Edit 3:
Aaaah! Het werkt! :-)
Onwijs bedankt voor de verhelderende uitleg. :)
Ik zit dus alleen nog met het vraagje over de sectienummer van chmod: "chmod(7)". Hoe je dat specifiek opvraagt.

[ Voor 40% gewijzigd door Joen op 25-07-2014 23:43 ]


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 20-05 21:35

Hero of Time

Moderator LNX

There is only one Legend

Als iemand het heeft over 'chmod(7)' dan gaat het om de man page dat in sectie 7 van mandb te vinden is. Echter is chmod in sectie 1 standaard te vinden en sectie 7 is voor 'overig'. Zie ook manpage van man:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
       man is the system's manual pager. Each page argument given to man is normally the name of a program, utility or function.  The manual page associated with each of these arguments  is  then
       found  and displayed. A section, if provided, will direct man to look only in that section of the manual.  The default action is to search in all of the available sections following a pre-
       defined order ("1 n l 8 3 2 3posix 3pm 3perl 5 4 9 6 7" by default, unless overridden by the SECTION directive in /etc/manpath.config), and to show only the first page found, even if  page
       exists in several sections.

       The table below shows the section numbers of the manual followed by the types of pages they contain.

       1   Executable programs or shell commands
       2   System calls (functions provided by the kernel)
       3   Library calls (functions within program libraries)
       4   Special files (usually found in /dev)
       5   File formats and conventions eg /etc/passwd
       6   Games
       7   Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7)
       8   System administration commands (usually only for root)
       9   Kernel routines [Non standard]

       A manual page consists of several sections.

Een 'man 7 chmod' zal dan niets teruggeven, het bestaat niet omdat 't ergens anders omschreven is.

Commandline FTW | Tweakt met mate