[linux] Stora nas

Daniel C. von Asmuth asmuth op bakunin.xs4all.nl
Za Dec 9 14:33:56 CET 2017


Aldus schreef paai op Sat, Dec 09, 2017 at 09:24:35AM +0100:
> Ik heb een zwak voor volhouders.
> 
> Zo te zien ben je in de command line beland en heb je het commando 'mount
> zus-of-zo' gegeven. Klopt dat?
> 
> mount zonder verdere parameters laat je zien wat er allemaal gemount is,
> maar om zelf zus-of-zo te mounten moet je root zijn, ofwel Administrator.

Ja, tenzij. 

> Eerst het geval 'mount' zonder verder iets. Je ziet dan een lijstje van
> gemounte volumes. Als je daarin /media/gedeeldebestanden tegenkomt, is alles
> wat dat betreft in orde. Zo niet, dan moet je inderdaad mounten, hoewel ik
> me dat eigenlijk niet kan voorstellen zolang je er met Windows wel in komt.

Niet mee eens. Zie hieronder. 

> Probeer in dat geval het volgende 'sudo mount -a'. Het systeem vraagt dan om
> je password en aangenomen dat dat het root password is zullen alle volumes
> in fstab die nog niet waren gemount alsnog gemount worden.

Ook weer bijna goed. 

Heb ik gister geprobeerd te vertellen hoe je een shared file system
kunt mounten met een GUI zonder root te zijn, nu proberen we het eens
met de command line. De enigszins complexe documentatie vind je in
https://linux.die.net/man/8/mount
https://linux.die.net/man/8/mount.cifs
https://linux.die.net/man/5/fstab

Je hoeft geen root te zijn om mount uit te voeren zonder argumenten
erachter. Je krijgt dan een lijst van file systems (devices) met erachter 
op welke directory ze gemount zijn. Na het mounten is de voorafgaande
inhoud van die directory verborgen onder de nieuwe directory boom.
Sommige Linux mounts zijn pseudo-file systems: zo vind je in /dev/ 
speciale files die hardware devices representeren: /dev/tty staat
voor je terminal en /dev/sda1 voor de eerste partitie op de eerste
harde schijf. 

Bij het opstarten wordt het commando 'mount -a' uitgevoerd en dat maakt
gebruik van de parameters en /etc/fstab. Zonder die -a optie moet je 
zelf opgeven welk device je wilt mounten, wat het device type is en 
op welke directory je wilt mounten (plus evt. nog wat opties). 

De volgende optie is iets als 'mount /usr/local'. Omdat belangrijke
paramaters ontbreken, zal mount die opzoeken in /etc/fstab en dan 
proberen om 1 FS te mounten. 

> On 09-12-17 08:27, Leon van Geel wrote:
> >Hallo,
> >kon het vannacht niet laten en na 50 mails, forums etc. heb ik eea
> >geprobeerd
> >zie de map gedeelde bestanden in netwerk maar krijg de volgende fout:
> >mount: only root can mount/

Het helpt als u exact vermeldt wat u hebt gedaan. Normaliter is het
'mount' commando voorbehouden aan 'root'.

> >in fstab is de volgende regel:
> >//ipadres/GedeeldeBestanden /media/GedeeldeBestanden cifs
> >username=xxxxxxx,password=xxxxxx,
> >rw,noauto,credentials=/home/leon/.smbcredentials,iocharset=utf8,gid=1000,gid=1000,file_mode=0777,dir_mode=0777,users
> >0 0

Het eerste dat opvalt is dat u de 'noauto' optie hebt gebruikt en die
lijkt de Paai over het hoofd te hebben gezien. Ze zegt gewoon dat het
'mount -a' commando die regel zal overslaan. Het benodigde commando is
dus 'mount /media/GedeeldeBestanden' en de aanhalingstekens worden niet
meegetypt, mar de opodracht wordt afgesloten door druk op de
<Enter>-toets. Het alternatief zou zijn 

mount -t cifs -o username=xxxxxxx,password=xxxxxx,rw,noauto,credentials=/home/leon/.smbcredentials,iocharset=utf8,gid=1000,gid=1000,file_mode=0777,dir_mode=0777,users //ipadres/GedeeldeBestanden /media/GedeeldeBestanden
(en dat typt u op 1 regel) We nemen aan dat u hebt begrepen dat u de
'xxxxxxx' hierboven dient te vervangen door uw account naam resp.
wachtwoord en 'ipadres' door het IP adres of de naam van de server;
de laatste heeft een NetBIOS naam die heel anders kan zijn dan de DNS
naam. 

De rw optie geeft aan dat u verzoekt om het filesystem zowel lezend als 
schrijvend te benaderen (het alternatief is 'ro'). 

We adviseren om de username en password opties weg te te laten omdat uw 
kinderen en de AIVD die de /etc/fstab file lezen dan ook uw wachtwoord 
kennen. (dit zijn de account gegevens op de server, niet de Linux
client). In dat geval gebruikt u de credentials optie (het is nu dubbel
op). De file /home/leon/.smbcredentials dient dus niet voor Janet en
allevrouw leesbaar te zijn. Nu moet u wel die file invullen met iets als: 

username=leon
password=geheim
domain=chez_nous

De optie 'iocharset=utf8' zegt dat vreemde tekens in bestandsnamen
worden geïnterpreteerd als Unicode. Dit zal wel goed gaan. 

De optie 'gid=1000' komt twee keer voor. Laat er gerust één weg of
beter, vervange de eerste door 'uid=1000'. Let wel, dit zijn de nummers
zoals ze worden gehanteerd door de *client* machine en die kunnen
verschillen van de *server* accounts. Als de server en de client de ene
Unix draait en de andere Windows, geeft dat een mismatch. Suggestie: 
de 'setuids' optie toevoegen.

De uid nummers haalt u uid /etc/passwd en de gid getallen uit /etc/group
of u vervangt die '100' door de waarden die het 'id' commando u geeft. 

De opties 'file_mode=0777,dir_mode=0777' geven de toegangsrechten op de
client aan die zullen worden gebruikt voor files en directories als de 
CIFS Unix extensies niet door de server gebruikt worden (een goede Linux
NAS zal het doen). De waarden duiden aan dat de gebruiker alles mag
(maar de server kan schrijven naar bepaalde files evengoed nog
weigeren). De default file mode zal worden gebruikt voor nieuwe files. 
De manual page voor het 'chmod' commando legt de getallen uit.

De optie 'users' (ook over het hoofd gezien) zegt dat gewone non-root
accounts dit file system mogen mounten en unmounten. 

> >wat moet ik veranderen om te kunnen mounten en kijken wat hij dan laat
> >zien?

Welkom in de wereld van Unix. Als de mount opdracht mislukt krijgt u een
cryptische foutmelding en als ze lukt (kan even duren) dan zeggen de
'mount' en 'umount' commando's helegaar niets. U kunt dan de opdracht
'echo $?' intypen en zult een 0 terugkrijgen die aangeeft dat het vorige
commando met succes is uitgevoerd. Gebruik daarna bijv. weer het 'mount' 
commando zonder argumenten'. Gevorderde gebruikers typen het 'dmesg'
commando.

Suc6,



Daniel

-- 
	
		Geeks of a feather cruft together
		


Meer informatie over de Linux maillijst