Robię skrypt powłoki bash i chcę zmienić domyślną grupę, w której tworzone są nowe pliki. Wiem, że używasz umask
, aby zmienić uprawnienia. Czy jest coś dla grupy?Skrypty Bash - Jak ustawić grupę, w której zostaną utworzone nowe pliki?
Odpowiedz
newgrp
(1)
Istnieje kilka sposobów, aby to zrobić:
Można zmienić domyślną grupę wszystkich plików utworzonych w danym katalogu poprzez ustawienie setgid flaga na katalog (
chmod g+s _dir_
). Nowe pliki w katalogu zostaną utworzone z grupą katalogu (ustawiona przy użyciuchgrp <group> <dir>
). Dotyczy to każdego programu , który tworzy pliki w katalogu.pamiętać, że jest automagicznie dziedziczone nowych podkatalogów (od Linux 3.10), jednak jeśli podkatalogi były już obecne, ta zmiana nie będą stosowane do nich (użyj
-R
flagę tego).Jeśli flaga setgid nie jest ustawiona, wówczas grupa domyślna zostanie ustawiona na bieżący identyfikator grupy procesu tworzenia. Chociaż można to ustawić za pomocą komendy
newgrp
, która tworzy nową powłokę trudną do użycia w skrypcie powłoki . Jeśli chcesz wykonać konkretne polecenie (lub zestaw poleceń) ze zmienioną grupą, użyj poleceniasg <group> <command>
.sg
nie jest standardowym poleceniem POSIX, ale jest dostępny w systemie Linux.
Tylko mała uwaga. Jeśli spróbujesz uruchomić 'chmod g + s _dir_' na katalogu, który ma grupę y, i uruchamiasz polecenie pod użytkownikiem x, a użytkownik x nie jest członkiem grupy y, to nie zadziała. Będziesz musiał uruchomić go jako root. – LEDfan
- 1. Jak ustawić grupę w superwizji?
- 2. Skrypty Bash i bc
- 3. Skrypty Bash, sprawdzanie błędów, rejestrowanie
- 4. BASH skrypty: Whiptail plik Wybierz
- 5. Skrypty Bash, wiele warunków w pętli while
- 6. jak ustawić powłokę dla KMP run-skrypty w oknach
- 7. Skrypty MySQL z BASH przez SSH
- 8. Bash - płynnie uruchamiane skrypty z końcówkami linii CRLF
- 9. git: wyświetlaj tylko nowe pliki
- 10. Usuń wszystkie pliki utworzone przez określonego użytkownika
- 11. Jak zachować nowe linie w cudzysłowu w Bash?
- 12. Jak przetwarzać tylko nowe (nieprzetworzone) pliki w Linuksie
- 13. Różnica między subversion, w tym nowe pliki
- 14. Wybierz Nowe elementy DOM utworzone przez Angularjs ng-repeat
- 15. Jak określić ścieżkę, w której zapisuje pliki plik saveAsTable?
- 16. Kiedy chcesz ustawić nowe środowiska w R
- 17. skrypty powłoki z Git Bash 64-bitowym systemie Windows
- 18. Jak wrócić do ostatniego zatwierdzenia + usunąć wszystkie nowo utworzone pliki?
- 19. Bash: Jak sprawdzić, czy istnieją pewne pliki?
- 20. Git bash - pokaż pliki w bieżącym katalogu
- 21. Rozpakuj tylko nowe pliki używając Git
- 22. Git - Dodaj wszystkie nowe pliki do repozytorium
- 23. Jak ustawić zmienne środowiskowe bash ze skryptu?
- 24. Jak zeskrobać grupę _private_ google?
- 25. Co się stanie, gdy pliki cookie zostaną wyłączone?
- 26. Git dodaj tylko wszystkie nowe pliki, niezmodyfikowane pliki
- 27. Jak ustawić proxy za pomocą powłoki bash?
- 28. Jak otworzyć grupę inspektorów w Netbeans?
- 29. Czy można debugować skrypty bash line-by-line?
- 30. Jak ustawić nazwę użytkownika, której Mercurial używa do zatwierdzania?
Jestem członkiem grupy, więc dlaczego pyta mnie o hasło? Nie podoba mi się moje hasło! – Michael
również, jeśli uruchomię "newgrp" jako root (np. Uruchamiając skrypt z newgrp w nim używając sudo), zrzuca mnie do powłoki głównej. –
Michael
To nie jest to, do czego należy użyć newgrp. Co stanie się, jeśli zapomnisz użyć programu newgrp poza skryptem? W jaki sposób skrypt obsłuży nową powłokę tworzoną przez newgrp? Odpowiedź @ mark40 jest lepsza. – noel