Jak zapisywa

Potrzebujesz pomocy z C, C++, perl, python, itp.
salo5
Posty: 18
Rejestracja: 24 czerwca 2009, 01:55

Jak zapisywać plik jako własność danej grupy?

Post autor: salo5 »

Witam!

Na jednym komputerze z Debianem używany jest program transmission, który uruchamiam skryptem:

Kod: Zaznacz cały

/usr/bin/transmission-daemon -g /etc/transmission-daemon
Transmission działa prawidłowo, ściąga i umożliwia wgrywanie plików.

Niestety pliki i katalogi zapisuje jako własność roota.

Uruchamiam również na tym komputerze Sambę, żeby pod Windowsem móc przeglądać katalogi.

Niestety pod Windowsem taki katalog lub plik można tylko otworzyć, nie można edytować.

W związku z tym np. jak ściągnę plik i chcę dociągnąć napisy, to niestety mam odmowę dostępu i plik nie może być zapisany.

Stąd moje pytanie:
Czy programy uruchamiane jako root mogą zapisywać dane od razu jako własność danej grupy?

Jestem ciekawy, czy ktoś mógłby mi pomóc?

Z góry dziękuję.

Pozdrawiam!
sethiel
Junior Member
Posty: 762
Rejestracja: 28 stycznia 2008, 11:50
Lokalizacja: Wrocław

Post autor: sethiel »

Kod: Zaznacz cały

sudo su
np.

Kod: Zaznacz cały

su -u user /usr/bin/transmission-daemon -g /etc/transmission-daemon
sudo -u user /usr/bin/transmission-daemon -g /etc/transmission-daemon
Awatar użytkownika
DaVidoSS
Junior Member
Posty: 875
Rejestracja: 06 marca 2010, 11:26
Lokalizacja: ~/

Post autor: DaVidoSS »

Ludzie od kiedy w Debianie konto root służy do uruchamiania programów typu "userspace"??
Konto root służy do administracji systemem nie do "dzielenia się plikami"
Czy Wy to w ogóle potraficie rozróżnić?
salo5
Posty: 18
Rejestracja: 24 czerwca 2009, 01:55

Post autor: salo5 »

No widzisz, ja nie potrafię.
Linuksa nie znam w ogóle, próbuję się go uczyć. Szukałem jakiejś ciekawej książki od postaw, łopatologicznej ale nie wiem co wybrać.

W sieci jest mnóstwo opisów, ale nie o taką naukę mi chodzi.

Dlatego pytam Was o to.

Pozdrawiam!
sethiel
Junior Member
Posty: 762
Rejestracja: 28 stycznia 2008, 11:50
Lokalizacja: Wrocław

Post autor: sethiel »

Szczerze mówiąc nie dziwie się, że salo5 nie potrafi odróżniać. Może dlatego, że ja też nie bardzo to potrafię odróżnić.

Zwłaszcza, że standardowe konto powłoki, które tworzy się w systemie dla użytkownika pozwala na podgląd niemalże wszystkiego.

Jeśli ktoś jest zwykłym administratorem a nie mastahem to zrobienie rbash położy na łopatki.
Ot co.
DaVidoSS - o wielki su faktycznie nie dorastamy Ci do pięt.
salo5
Posty: 18
Rejestracja: 24 czerwca 2009, 01:55

Post autor: salo5 »

Kod: Zaznacz cały

root@serwer:~# su -u pc_wlodek /usr/bin/transmission-daemon -g /etc/transmission-daemon
su: błędna opcja -- 'u'
Użycie: su [opcje] [LOGIN]

Opcje:
  -c, --command POLECENIE   uruchom POLECENIE w to wywoływanym shellu
  -h, --help                wyświetlenie tego opisu i zakończenie działania
  -, -l, --login            uruchom z  powłoką z powłoką zgłoszeniową
  -m, -p,
  --preserve-environment    uruchomienie z zachowaniem zmiennych środowiska
  -s, --shell SHELL         użyj SHELL zamiast domyślny shell z passwd
Awatar użytkownika
diabolic3
Beginner
Posty: 121
Rejestracja: 12 grudnia 2007, 19:45
Lokalizacja: okolice Leżajska

Post autor: diabolic3 »

Z tego co pamiętam to jeśli instaluje się demona transmission to automatycznie dodaje do systemu użytkownika debian-transmission i z jego uprawnieniami jest on uruchamiany automatycznie przy starcie systemu, przynajmniej domyślnie tak jest. Więc dziwna sprawa, że uruchamiasz go skryptem, jeszcze na dodatek jako root
sethiel
Junior Member
Posty: 762
Rejestracja: 28 stycznia 2008, 11:50
Lokalizacja: Wrocław

Post autor: sethiel »

salo5, jest coś takiego jak podręcznik systemowy. Warto używać. Albo google + man + nazwa_polecania + przykłady (examples).
Akurat się machnąłem przy su. Pierwszy link z Google:

Kod: Zaznacz cały

"man su examples"
daje odpowiedź gdzie się machnąłem:
EXAMPLES
[TABLE]
[TR]
[TD="colspan: 2"]su -m man -c catman [/TD]
[/TR]
[TR]
[TD][/TD]
[TD] Runs the command catman as user man. You will be asked for man’s password unless your real UID is 0. Note that the -m option is required since user "man" does not have a valid shell by default.[/TD]
[/TR]
[TR]
[TD="colspan: 2"] su -m man -c ’catman /usr/share/man /usr/local/man’[/TD]
[/TR]
[TR]
[TD][/TD]
[TD] Same as above, but the target command consists of more than a single word and hence is quoted for use with the -c option being passed to the shell. (Most shells expect the argument to -c to be a single word).[/TD]
[/TR]
[TR]
[TD="colspan: 2"] su -m -c staff man -c ’catman /usr/share/man /usr/local/man’[/TD]
[/TR]
[TR]
[TD][/TD]
[TD] Same as above, but the target command is run with the resource limits of the login class "staff". Note: in this example, the first -c option applies to su while the second is an argument to the shell being invoked.[/TD]
[/TR]
[TR]
[TD="colspan: 2"] su -l foo[/TD]
[/TR]
[TR]
[TD][/TD]
[TD] Simulate a login for user foo.[/TD]
[/TR]
[TR]
[TD="colspan: 2"] su - foo[/TD]
[/TR]
[TR]
[TD][/TD]
[TD] Same as above.[/TD]
[/TR]
[TR]
[TD] su -[/TD]
[TD] Simulate a login for root.[/TD]
[/TR]
[/TABLE]
Awatar użytkownika
Unit
Beginner
Posty: 356
Rejestracja: 27 marca 2007, 09:39

Post autor: Unit »

salo5 pisze: ...
Stąd moje pytanie:
czy programy uruchamiane jako root mogą zapisywać dane od razu jako własność danej grupy?
...
Np.:

Kod: Zaznacz cały

mkdir /downloads
chgrp sambausers /downloads
chmod 2770 /downloads
i teraz każdy plik zapisany w katalogu /downloads będzie miał grupę sambausers. Do tej grupy dodajesz użytkowników, tyle.
Słowo klucz do tej zagadki: SGID.
ODPOWIEDZ