Användare och HD i Ubuntu Server

Trädvy Permalänk
Medlem
Registrerad
Jul 2013

Användare och HD i Ubuntu Server

Har precis köpt en server (HP ProLiant MicroServer Gen8) och installerat Ubuntu Server.

Servern ska fungera som backup för min och mina två bröders data och kommer att stå hos vår mor, har även införskaffat tre st 3TB HD. Det handlar om ren lagring. Tanken är att vi ska komma åt respektive HD via FTP, OwnCloud, annat???.

Vore även trevligt om vi alla kunde ha en egen www-katalog på sin HD och där ha undermappar för respektive webbplats.

Har nu suttit två dagar och försökt förstå detta med användare och filsystem i Linux, men blir inte mycket klokare. Kommer från Windows och där verkar det mycket enklare.

Det jag vill göra är följande (OBS! Alla namn är fejk):

- Skapa varsin mapp för respektive användare Adam, Bertil och Cesar.
-- Var bör mapparna placeras?
- Installera tre st 3TB HD och koppla dessa till respektive användares mapp
- Skapa ett adminkonto som kommer åt ALLT.
- Skapa ett konto för respektive användare Adam, Bertil och Cesar där dessa endast kommer åt ”sin” HD.

Hur gör jag detta?

Vad föredrar ni att arbeta med – Terminalen eller Webmin?

Trädvy Permalänk
Medlem
Registrerad
Maj 2003

Betydligt mer text än jag först tänkt mig:
Börja med att fundera över vilka tjänster du vill att servern ska driva, och sedan tackla en av de i taget. Det går inte att sätta upp någon form av universellt användarsystem som alla tjänster respekterar och begränsas av. Owncloud exempelvis har sitt eget användarsystem som den hanterar själv, och den bryr sig inte alls om vilka konton någon annan tjänst har.

Du börjar förslagsvis med att montera de tre hårddiskarna någon stans, förutsatt att de är partitionerade och formaterade? Var är helt en smaksak, men val som /media/A, /media/B och /media/C eller i /mnt/A-C eller i /home/A-C borde vara någorlunda normala. Gör detta i /etc/fstab, så att det görs automatiskt när servern startar.
Ta sedan en tjänst i taget och ordna med den.

För FTP så installerar du förslagsvis vsftpd. Skapa tre system-grupper och tre system-konton för A, B och C, med de lösenord de vill ha, och sätt de tre användarnas primära grupp till respektive grupp du precis skapat. Sätt sökvägen till deras hårddisk som hem-mapp. Och du bör sedan lägga till admin-kontot till de tre grupperna.
Tänk sedan på rättigheterna för de tre hårddiskarnas mappar. Via chown och chgrp sätter du så att de ägs av rätt användare och rätt grupp. Och via chmod sätter du förslagsvis 770 på de respektive mapparna.
I vsftpd aktiverar du lokala användare och chroot (låser användare till att enbart komma åt sin hem-mapp). Aktivera förslagsvis även chroot i openssh, då systemkonton även får åtkomst via SSH, och att de då den vägen kan komma åt andra användares filer.
(Tänk på att FTP inte är krypterat, och bör inte köras över internet för filer du inte vill att alla ska kunna komma åt. Överväg SFTP istället om ni vill hantera privata filer över internet)

För owncloud installerar du det enligt guide, med apache och mysql/mariadb eller postgresql. Sedan i owncloud så sätter du upp tre användarkonton, och så lägger du till tre "External Storage" av typen Local, där du anger sökvägen till respective användares hårddisk. Och sedan lägger du till så att rätt användare får åtkomst till rätt mapp.
Lägg sedan till system-kontot www-data i de tre grupp-kontona, så att apache får rättigheter att komma åt de tre hårddiskarna.

För var sin www-mapp, vill varje användare ha sin eller sina privata hemsidor som ska drivas av apache?
Du kan sätta upp flera virtuella servrar i apache, vars webroot är respektive www-mapp (som du förslagsvis lägger på respektive hårddisk). På så sätt får ni antingen var sin port, eller så kan ni skaffa var sin domän eller subdomän (finns gratis), och låsa apache till rätt www-mapp till rätt domän/subdomän, så att ni kan köra på standardportar.
Eller tänkte du driva tre separata instanser av owncloud?

Försök att googla efter en guide för respektive tjänst du letar efter. Exempelvis owncloud går att pilla ganska mycket på för att optimera prestanda och tillåta uppladdning av större filer och så, så du bör hitta en detaljerad bra guide och följa den. Och om du kör fast någon stans så är forum eller IRC-kanaler bra. Är det ett problem specifikt med en tjänst så se om inte den tjänsten har ett support-forum eller en egen support-IRC-kanal som du kan fråga om hjälp I. Annars finns Swec eller andra generella Linux-forum där du kan få hjälp.

För Webmin mot SSH/terminal, så lär dig arbeta i alla fall delvis via SSH. Webmin fungerar bra för det mesta, men vissa saker kan den inte hantera eller är klumpig på att hantera. Och arbeta så lite som möjligt via tangentbord och mus direkt på servern. I längden kommer du enbart att fjärrstyra den.

Och tänk igenom backup ordentligt, och överväg att säg köpa en till disk och köra raid5 eller liknande för redundans. Och om det är känsliga filer som servern hanterar så överväg kryptering av filsystemet på de tre hårddiskarna, så att om någon själ den så går det inte att få ut all data, men att servern ändå kan starta normalt och tillåta fjärrstyrning.

Och förvänta dig inte att det ska gå snabbt och enkelt att sätta dig in i att driva din egen server på ett bra sätt om du inte har någon erfarenhet sedan innan. Du kommer behöva lägga lite tid och energi på det. Men du kan ta en tjänst i taget, och börja använda servern med enbart FTP eller SFTP först, och sedan ta owncloud efter ett tag, och sedan ta övriga tjänster en i taget. Så du måste inte ta allt på en gång.

Trädvy Permalänk
Medlem
Registrerad
Jul 2013

Hej å tack för ett utförligt svar!

Tror att jag löst biten med hårddiskarna... Har mountat dem till respektive mapp typ - /home/adam, home/bertil osv.

OK?

Har även ställt in att det inte finns något reserverat utrymme på diskarna eftersom dessa endast ska användas för lagring.

OK?

Har nu suttit hela dagen och försökt få till detta med vsftpd (både ftp och sftp), men får inte till det. Respektive anv kan logga in men inte skapa en ny mapp, detta kan däremot root-anv. Ju mer jag ändrar desto mindre kan jag göra. Har kollat olika sidor ang detta, men det verkar inte fungera... Grrrr...

Behöver man starta om servern när man ändrat någon inställning för användarna?

Tips på hur jag ställer in vsftpd och ubuntu för anv A, B och C som endast ska ha tillgång till home/A, B och C.

Trädvy Permalänk
Medlem
Registrerad
Maj 2003

vsftp stödjer inte SFTP, bara FTP och FTPS. OpenSSH rekommenderas för SFTP (om du vill ha SFTP). Så att du inte får SFTP att fungera genom vsftpd är ganska enkelt att förklara.

Jag avråder starkt från att använda ett root-konto med lösenord, speciellt som kan logga in via SSH eller fildelningsprotokoll som FTP eller SFTP. Kör med ett administratorkonto och sudo, där root-kontot inte har ett lösenord.

Om användare kan logga in korrekt men inte skapa filer eller mappar så har du antagligen fel i rättigheterna på mappen som användaren försöker skapa filerna i och misslyckas.
Ägs hem-mappen av rätt användare, eller via ett lämpligt grupp-konto? Vad har du för chmod-rättigheter på hem-mappen? Du bör använda dig av 770 eller 750.
Alternativt så har du i inställningarna för vsftpd inte tillåtit lokala användare skriv-rättigheter. Titta i /etc/vsftpd.conf, där bör det finnas en rad med "write_enable=YES", som inte ska ha ett # framför sig.

Om du ändrar några filrättigheter eller inställningar för system-konton så behöver du inte starta om något. Om du ändrar i .conf-filen för en server-mjukvara så behöver du ladda in och uppdatera dess inställningar. Görs via "sudo service namn reload", där namn är namnet på tjänsten, som "vsftpd", "ssh", "apache2" och liknande.

Du begränsar åtkomst i vsftpd till en specifik-mapp genom att aktivera chroot i .conf-filen för vsftpd, eller genom webmins modul för vsftpd. Detta förutsätter dock att du tillåter lokala konton i vsftpd, och inte kör med virtuella konton genom mysql.
Det begränsar så att användare bara kommer åt sin hem-mapp. Så du behöver även tänka på att sätta rätt hem-mapp, till den mapp du vill begränsa deras åtkomst till.

Trädvy Permalänk
Medlem
Registrerad
Jul 2013

Hej igen ... jag försöker å försöker men verkar inte få till det.

Så här har jag gjort.

1. Installera Ubuntu Server
2. Installera Open SSH Server
3. Installera Vsftpd
4. Installera Webmin
5. Installera modulen Vsftpd i Webmin
6. Via Webmin monterat diskarna
7. Via Webmin fixat användare
8. Via Webmin fixat Vsftpd.conf

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
idle_session_timeout=600
data_connection_timeout=120
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
local_umask=22

Trots detta kan alla användare se hela trädsystemet, men inte lägga till en katalog i sin mapp.

Blir inte klok på detta? Känns som att jag gör rätt men det blir fel?

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Apr 2013

sudo apt-get install apache2 för att hantera webbsidor

sudo apt-get install openssh för att få tillgång ftp

Ge respektive användare sin egen grupp och www-data och ge mappen /var/www/html gruppen www-data. I denna skapar du respektive mapp för varje användare som root men gruppen www-data om alla ska få använda respektive mapp eller motsvarande namn om dom ska vara privata.

Skapa ett konto som har superuser-behörigheter och även har tillgång grupperna adam, bertil, cesar, sudo, www-data

spärra root-kontot från att kunna ansluta externt/grafisk. Ditt superuser konto kommer med sudo att kunna "uppgradera" till root med speciella förfrågningar och lösenordsverifiering. Använd ett namn på detta konto som inte syns eller kan listas ut på någon sida utan att man skriver det i klartext.

Om ni t.ex. använder en e-post för felrapportering som t.ex. webmaster {at} domän eller liknande så skall detta konto inte vara kopplat sudo

Server: AMD Ryzen 7 1800X 8/16 | ASUS Crosshair VI hero | 64 GB Corsair RAM @3000 MHz | ASUS radeon RX 460 2GB | Samsung 960 PRO 512 GB M.2 | 2x 2 TB Samsung 850 PRO SSD | 6x Seagate 10 TB | NEC PA301W @ 2560x1600 | Linux Mint 19 Cinnamon

Trädvy Permalänk
Medlem
Registrerad
Maj 2003

Jag har inte jättemycket erfarenhet av vsftpd, men jag har aldrig sett att "chroot_local_user=YES" ignoreras som du beskriver.
Har du startat om vsftpd fullt efter att du lagt till chroot_local_user=YES, så att du inte fortfarande kör utan chroot? Och du har inte en chroot_local_user=NO senare i .conf-filen eller något liknande?