Chcę dać znajomemu dostęp do katalogu. Ma dostęp do systemu plików, w którym znajduje się katalog. Nie chcę ustawiać uprawnień wszystkim użytkownikom. Jak mogę pozwolić, aby tylko jedna osoba widziała reż? Nikt z nas nie jest superużytkownikiem.
[BOUNTY CHALLENGE] Żadna z odpowiedzi nie działa, używając Ubuntu:
1. Podejście jamuraa nie działa
$ setfacl -m user:friend:rwx classroom.xml
setfacl: classroom.xml: Operation not supported
2. Podejście nik nie działa: nie można uzyskać dostępu do nieistniejącego pliku
3. Podejście ba nie działa: nie mogę tworzyć grup, a nie root.
4. Podejście ToK nie działa, użytkownicy dzielą się na dwie grupy: „users” i „field”
chown -R myFriend:users ~/TEST
chown: changing ownership of `/u/myFriend/TEST/you_see_it': Operation not permitted
chown: changing ownership of `/u/myFriend/TEST': Operation not permitted
Odpowiedzi:
Przy zwykłych uprawnieniach UNIX (użytkownik, grupa, wszyscy) nie można tego łatwo zrobić. Jeśli nie potrzebujesz już dostępu do katalogu, możesz zmienić właściciela katalogu na swojego przyjaciela, co jest ważne w niektórych Uniksach, ale większość z nich tak nie jest.
Jednak - jeśli masz włączone listy ACL w systemie Linux, możesz to zrobić, jeśli jesteś właścicielem pliku. Po prostu uruchom polecenie, w
setfacl -m user:friend:rwx filename
którym przyjaciel to nazwa konta twojego znajomego, a nazwa pliku to plik. Możesz sprawdzić, czy zadziałałgetfacl filename
, uruchamiając. Powinieneś zobaczyć triadęuser:friend:rwx
na liście. Jednak nie widziałem zbyt wielu systemów Linux z włączonymi listami ACL.źródło
O tym rozmawialiśmy już w szkole.
Idzie mniej więcej tak
data
, dla odniesienia tutaj)chmod 711 data
”x
- dostęp do wejścia do katalogudifficult-name-here
(może to być ciąg mieszany)chmod a+rx difficult-name-here
”cd path/to/data/difficult-name-here
”root
zawsze mogą uzyskać dostęp do wszystkiego (co nie jest tutaj problemem)difficult-name-here
osobom, którym chcesz przekazać te daneDość prymitywne, ale jeśli można to naprawić bez złamania kontroli dostępu w systemie Unix, chciałbym wiedzieć.
Aktualizacja na komentarz od
dmckee
, dotego właśnie doszliśmy!
„bezpieczeństwo przez zaciemnienie” ma ograniczone bezpieczeństwo .
To powiedziawszy, projektując ochronę danych,
należy określić jej wartość.
Powinieneś celować w
W takim przypadku, jeśli
root
zdecydujesz się wyliczyć drzewo katalogów gdzieś w publicznym dostępie,twój sekret zostanie wydany! Ale czy chronisz przed korzeniem lub jego potencjalną nieodpowiedzialnością?
W takim przypadku masz o wiele więcej powodów do zmartwień niż udostępnione pliki.
Zaktualizuj informacje o niedziałającej notatce w pytaniu .
Użyłem tego na początku Linuksa, aby wiedzieć, że to działa.
Jeśli dostaniesz „
cannot access non-existant file
zamiast'permissions denied
”, najprawdopodobniej popełniłeś błąd w sekwencji. To, czego chcesz, powinno wyglądać tak,CoverDir
dostęp jako'rwx--x--x
”,grupa i inne osoby będą mogły tylko wejść do katalogu, ale nie będą mogły odczytać jego zawartości.
„
Obscure
” w środku i zapewnisz pełny dostęp do odczytu za pomocą „rwxr-xr-x
”,każdy , kto zna tę nazwę, może wyświetlić jej zawartość.
ls BasePath/CoverDir/Obscure
”Bo ludzie w grupie, a inni nie będą w stanie „
ls BasePath/CoverDir
”.źródło
ssh
klucz prywatny).Ryan był w 100% poprawny, po prostu zacofany. Ponieważ twój przyjaciel (prawdopodobnie) ma unikalną grupę powiązaną z jego / jej nazwą użytkownika, zmień własność grupy danego katalogu na tę grupę, najprawdopodobniej nazwę użytkownika znajomego. Aby móc dzielić się zawartością między wami, należy zachować własność jako użytkownik:
Następnie przypisz odpowiednie uprawnienia do katalogu, w zależności od tego, jaki dostęp chcesz mieć inny użytkownik:
przyznałby wam obojgu pełny dostęp rwx do katalogu i całej jego zawartości.
Pamiętaj, że zakłada to, że żaden inny użytkownik nie został dodany do grupy Twojego znajomego. System prawdopodobnie nie wykonałby tego zadania, jednak, jak wspomniano wcześniej, użytkownik root może zrobić to, co wybierze. Możesz użyć polecenia groups, aby zobaczyć każdą grupę, do której należy twój przyjaciel lub dowolny użytkownik. Dodatkowo, chyba że uprawnienia zostały zmienione z jakiegoś powodu, powinieneś być w stanie wyświetlić plik / etc / group, który zawiera przypisania grup dla każdej grupy w systemie.
źródło
Zrobiłbym nową grupę dla ciebie i twojego przyjaciela i ustawiłbym pełne uprawnienia folderu dla właściciela i grupy wraz z bitem setgid dla katalogu.
Ale w zależności od twoich potrzeb możesz także zastanowić się nad zmianą umaskania ciebie i twoich znajomych, aby automatycznie ustawić grupę na zmianę nowych plików.
źródło
Listy kontroli dostępu są idealnym sposobem na to.
Jednak (o ile dobrze pamiętam) system plików musi zostać zainicjowany za pomocą list ACL (np. „/ Dev / sda6 / home ext3 defaults, acl ”), poprzez / etc / fstab, a jest to coś, co może zrobić tylko administrator. ..
źródło
Wymagane są RBACS jak grsec / selinux.
źródło
Domyślnie każdy użytkownik w systemie Ubuntu ma również powiązaną grupę o tej samej nazwie. Jeśli więc możesz dodać znajomego do grupy, a następnie oznaczyć dany folder jako
g+rwx
, zostaniesz ustawiony. Niejasno pamiętam ten przypadek użycia jako powód do utworzenia grupy dla każdego użytkownika.źródło
Co powiesz na Dropbox? Możesz zainstalować go bez uprawnień administratora i oba prowadzą do tego samego konta.
Sprawdź, jak zainstalować Dropbox w całkowicie opartym na tekście środowisku Linux
źródło
nie próbowałem tego, ale co powiesz na publiczny czytelny katalog z zaszyfrowanym FS przestrzeni użytkownika w środku (na przykład encfs). Następnie możesz udostępnić to hasło swojemu znajomemu i nikt inny nie może z niego korzystać (cóż, myślę, że mogliby pobrać dane i uruchomić program do łamania haseł offline?).
źródło
Aby nadać Linuksowi taką samą Finezję jak Windows w uprawnieniach do plików, musisz zagnieżdżać grupy. Utwórz jedną grupę, która ma dostęp do twojego folderu, tak jak chciałbyś mieć swojego przyjaciela. Dodaj go do tej grupy lub grupy, w której mieszka, do tej grupy. Na przykład
/ foo to folder, który chcesz udostępnić. Utwórz grupę FooGroup, która ma pożądany dostęp do folderu. Dodaj grupy i użytkowników do tej grupy, której chcesz mieć dostęp do tego folderu.
Posiadanie grupy dla każdego folderu lub pliku to duży problem, ale jest to najlepszy sposób na ograniczenie dostępu na tym samym poziomie co system Windows.
źródło
Możesz zaszyfrować katalog za pomocą
gpg
. A potem spróbuj zaciemnić lokalizację, tak jak sugerował Nik.źródło