2011-12-20, 12:25
  #13
Medlem
Citat:
Ursprungligen postat av Soffbord
James och Sara borde vara med i samma grupp, det bli enklare då.
Kod:
$ ls /media/ -l

total 16
drwxrwx--- 1 root vboxsf 16384 Jan 29 11:02 sf_Shared
Här ser vi att root äger mappen och vboxsf är gruppen för mappen sf_Shared som ligger i /media

För att se någons (primär) grupp kan man skriva id <användarnamn> och kolla vad som står efter gid tex.

gid=100(users) betyder att användarens primär grupp är users. Man ser även att den gruppen har id'et 100.

Med chmod -g <grup> <användare> kan du byta vilken primärgrup en användare har. Du måste vara root eller sudo föra att göra det.

Nu när James och Sara är i samma grup kan du skriva:

chown sara:<grup> /<sökväg>/städa

chmod 770 /<sökväg>/städa

Då får ägaren (sara), gruppen som ägaren är med i, läs och skrivrättigheter i mappen. Alla andra får inga rättigheter. Du kan lägga till -R för chmod och chown så att undermapparna också får denna rättighets struktur om det behövs.

Tack för svaret, allting blev mycket klarare nu.
Jag förstår nästan hur jag ska göra, dock så vet jag inte vart min grupp (städa) hamnade.
Jag kan ha förklarat fel så jag skriver igen.

Jag vill lägga till James och Sara i gruppen Städa och där ska dom ha läs och skrivrättigheter.
Ska jag skriva "chown sara:städa" och sedan sökvägen till gruppen för att lägga till dom i gruppen?
Och sedan skriva "chmod 770" för att ge alla i gruppen läs och skrivrättigheter"?

Undrar även om man kolla upp vart gruppen ligger? skrev ju som sagt endast addgroup städa.
Hamnar grupper under /home/städa då eller? :O
__________________
Senast redigerad av Bubblez 2011-12-20 kl. 12:51.
Citera
2011-12-20, 13:51
  #14
Medlem
Grupper "ligger" ingenstans. De är ett attribut på filer och användare som används för att styra behörigheter. Skilj på grupp och mapp/katalog.

Kanske borde du läsa på lite om hur rättighetstilldelning fungerar i Linux/Unix? Det skiljer sig en del om man tidigare bara sett Windows.
Citera
2011-12-20, 14:31
  #15
Medlem
Citat:
Ursprungligen postat av Bubblez
Tack för svaret, allting blev mycket klarare nu.
Jag förstår nästan hur jag ska göra, dock så vet jag inte vart min grupp (städa) hamnade.
Jag kan ha förklarat fel så jag skriver igen.

Jag vill lägga till James och Sara i gruppen Städa och där ska dom ha läs och skrivrättigheter.
Ska jag skriva "chown sara:städa" och sedan sökvägen till gruppen för att lägga till dom i gruppen?
Och sedan skriva "chmod 770" för att ge alla i gruppen läs och skrivrättigheter"?

Undrar även om man kolla upp vart gruppen ligger? skrev ju som sagt endast addgroup städa.
Hamnar grupper under /home/städa då eller? :O
Orkar inte förklara, jag skrev ett skript som fixar skiten åt dig. Vill du lära dig kan du studera skriptet.
Kod:
#!/bin/bash

if [ $(whoami) != "root" ]
then
    echo "sorry, you must be root"
    echo "Try sudo su and then run this script"
    exit 1
fi

echo "Skriv in mappens sökväg, tex /flashback/städa"
read FOLDER
echo " Skriv in grupens namn, ej med åäö, t.ex. stada"
read U3
echo "Skriv in ett användarnamn som också kommer bli ägare till mappen, t.ex. sara"
read U1
echo "Skriv in ett användarnamn som kommer få tillgång till mappen t.ex. james"
read U2

cat /etc/group | grep $U3 > /dev/null 2>&1
if [ "$?" == "1" ]
then
    groupadd $U3
fi

id $U1 > /dev/null 2>&1
if [ "$?" == "1" ]
then
    useradd -g $U3 $U1
fi

id $U2 > /dev/null 2>&1
if [ "$?" == "1" ]
then
    useradd -g $U3 $U2
fi

chown $U1:$U3 $FOLDER

chmod 770 $FOLDER

exit 0

# Om du vill ha samma åtkomst-struktur i undermappar till mappen så får du lägga till -R i de två raderna ovanför likt nedan. Raderna under detta kommer inte köras p.g.a exit 0 som avslutar skriptet här ovanför...

chown -R $U1:$U3 $FOLDER

chmod -R 770 $FOLDER
Spara det i en fil, döp den till skript.sh
sen skriv:
chmod +x skript.sh
./skript.sh
__________________
Senast redigerad av Soffbord 2011-12-20 kl. 14:43.
Citera
2011-12-20, 14:41
  #16
Moderator
vhes avatar
Citat:
Ursprungligen postat av Soffbord
Kod:
...

if [ "$? == 1" ]

...

Citationsteckensplaceringsfel (bra svenskt ord!)
Citera
2011-12-20, 14:45
  #17
Medlem
Citat:
Ursprungligen postat av vhe
Citationsteckensplaceringsfel (bra svenskt ord!)
Yepp såg det då jag fick group already exist när jag test körde skriptet. Bra att du säger till dock.
Citera
2011-12-20, 17:56
  #18
Medlem
Zoms avatar
Citat:
Ursprungligen postat av Soffbord
Orkar inte förklara, jag skrev ett skript som fixar skiten åt dig. Vill du lära dig kan du studera skriptet.
Spara det i en fil, döp den till skript.sh
sen skriv:
chmod +x skript.sh
./skript.sh
Inte för att vara petig, men vore det inte enklare att bara lägga till användarna i en (eventuellt ny) grupp istället för att sätta deras primära grupp?

Typ:
Kod:
if !( grep $U3 /etc/group ); then
  groupadd $U3
fi
gpasswd -M $U1,$U2 $U3
Då kan man bara lägga till användarna innan i skriptet, om de inte redan existerar så klart.

Enda nackdelen med den här metoden är att de inte kommer att kunna skriva eller att läsa varandras filer som ligger i den mappen, då de skapas med deras respektive primära grupp (såvida de inte delar den då).

Citat:
Ursprungligen postat av Bubblez
Undrar även om man kolla upp vart gruppen ligger? skrev ju som sagt endast addgroup städa.
Hamnar grupper under /home/städa då eller? :O
De grupper du har finns i filen /etc/groups.
Citera
2011-12-21, 06:31
  #19
Medlem
Citat:
Ursprungligen postat av Zom
Inte för att vara petig, men vore det inte enklare att bara lägga till användarna i en (eventuellt ny) grupp istället för att sätta deras primära grupp?

Typ:
Kod:
if !( grep $U3 /etc/group ); then
  groupadd $U3
fi
gpasswd -M $U1,$U2 $U3
Då kan man bara lägga till användarna innan i skriptet, om de inte redan existerar så klart.

Enda nackdelen med den här metoden är att de inte kommer att kunna skriva eller att läsa varandras filer som ligger i den mappen, då de skapas med deras respektive primära grupp (såvida de inte delar den då).


De grupper du har finns i filen /etc/groups.
Jag tror att ts ville att man skulle kunna läsa och skriva varandras filer, han är lite otydlig, om inte så är din lösning lite cleanare.

Såg nu även att min lösning inte funkar om sara och james redan existerar men inte är med i den relevanta gruppen. Blir ju två if-satser till men vi får se om det behövs av ts.
Citera
2011-12-21, 17:20
  #20
Medlem
Zoms avatar
Citat:
Ursprungligen postat av Soffbord
Jag tror att ts ville att man skulle kunna läsa och skriva varandras filer, han är lite otydlig, om inte så är din lösning lite cleanare.

Såg nu även att min lösning inte funkar om sara och james redan existerar men inte är med i den relevanta gruppen. Blir ju två if-satser till men vi får se om det behövs av ts.
Mjo, och jag tror också ditt skript är lite mer lättbegripligt om TS vill förstå hur användare och grupper fungerar.


Möjligtvis OT, men ändå relevant:
Jag har funderat på om man kan specificera att vissa egenskaper inte bara ska gälla för en mapp, utan också för dess undermappar. Om jag exempelvis har en katalog utdelad (låt oss säga /home/ftpshare) för användare som är medlemmar i gruppen ftp, men min primära grupp är users, kan jag då ändå specificera att samma ägandegrupp automatiskt ska gälla för de filer och kataloger som skapas under den platsen?

D.v.s., att allting som skapas under den katalogen automatiskt får ägandegruppen ftp, samt samma rättigheter som föregående katalog (d.v.s., alla i gruppen kan både läsa och skriva till filerna/katalogerna, även oberoende hur användaren har sin umask specificerad).

Närmaste jag kommer är att man fixar ett cronjob som ändrar rättigheter (exempelvis 'chgrp -R ftp /home/ftpshare' samt 'chmod -R g+rw /home/ftpshare' (plus eventuellt +x för katalogerna)) efter tidsintervall.

Någon som har en bättre idé?

(Vill man knyta an till TS fråga om James och Sara så gäller samma sak där: om de inte har gemensam primärgrupp, hur gör man då för att enkelt låta dem skriva och läsa varandras filer)
Citera
2011-12-21, 20:52
  #21
Medlem
Citat:
Ursprungligen postat av Zom
Jag har funderat på om man kan specificera att vissa egenskaper inte bara ska gälla för en mapp, utan också för dess undermappar. Om jag exempelvis har en katalog utdelad (låt oss säga /home/ftpshare) för användare som är medlemmar i gruppen ftp, men min primära grupp är users, kan jag då ändå specificera att samma ägandegrupp automatiskt ska gälla för de filer och kataloger som skapas under den platsen?

D.v.s., att allting som skapas under den katalogen automatiskt får ägandegruppen ftp, samt samma rättigheter som föregående katalog (d.v.s., alla i gruppen kan både läsa och skriva till filerna/katalogerna, även oberoende hur användaren har sin umask specificerad).

Närmaste jag kommer är att man fixar ett cronjob som ändrar rättigheter (exempelvis 'chgrp -R ftp /home/ftpshare' samt 'chmod -R g+rw /home/ftpshare' (plus eventuellt +x för katalogerna)) efter tidsintervall.
Ja det går, lite halvt.

newgrp ftp
umask 770

Innan man börjar arbeta i mappens undermappar. Det kräver ju dock att användaren skriver detta varje gång.

Att "tvinga" fram detta i den mappen och undermappar känns som ett jätteprojekt, men så är "security by design" inte en lek i parken. Usch vad jobbigt det skulle vara att implementera något sånt, såvida man måste koda det själv. Blir nog enklare och smidigare med ditt cronjob.
Citera
2011-12-21, 23:23
  #22
Medlem
Citat:
Ursprungligen postat av Soffbord
Ja det går, lite halvt.
Vid närmare undersökning verkar det vara möjligt med mount kommandot.

man mount nämner en hel del sånt...
Citera
2011-12-21, 23:58
  #23
Medlem
darcodes avatar
Citat:
Ursprungligen postat av Zom
...
Någon som har en bättre idé?
...
Nu kanske jag missuppfattade frågan, men setgid-biten på mappen bör väl göra just detta? Testa:
Kod:
chmod g+s /home/ftpshare

EDIT: Detta löser visserligen bara ägarfrågan, inte rättigheterna.
__________________
Senast redigerad av darcode 2011-12-22 kl. 00:04.
Citera
2011-12-22, 09:38
  #24
Medlem
Zoms avatar
Citat:
Ursprungligen postat av Soffbord
Vid närmare undersökning verkar det vara möjligt med mount kommandot.

man mount nämner en hel del sånt...
Ah, bra poäng, såg nu att ext2/3/4 hade stöd för grpid vilket gör så nya filer behåller ägandegruppen från föregående katalog.

Dock verkar det bara som fat och liknande filsystem har alternativ för umask, och då är det snarare vilka rättigheter som sätts på filerna som också redan finns på filsystemet.

newgrp visste jag inte ens om alls.
Citat:
Ursprungligen postat av darcode
Nu kanske jag missuppfattade frågan, men setgid-biten på mappen bör väl göra just detta? Testa:
Kod:
chmod g+s /home/ftpshare

EDIT: Detta löser visserligen bara ägarfrågan, inte rättigheterna.
Ah, det fungerar ju utmärkt.

Får fortsätta fundera på någon smidig lösning för umask, alternativt får man väl helt enkelt sätta alla nya användare i varsin primärgrupp och ändra deras umask så att även gruppen har läs- och skrivrättigheter som standard på nya filer.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in