#linux #bash
Zmienna $USER zwraca nazwę użytkownika. W trybie root'a zwraca ona "root". Jak w trybie root'a zwrócić nazwę użytkownika z poziomu Terminala, gdy jestem normalnie zalogowany w systemie na tego użytkownika?
  • 13
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

  • Doceń
@look997: Napisz se skrypt:

#!/bin/bash
U="$USER"
if [ "$U" = root ] ; then echo 'Bez sudo, jełopie!' ; exit 1 ; done
sudo echo "/dev/sda6 /media/nazwa/Media ext4 defaults,$U 0 0" >> /etc/fstab
  • Odpowiedz
@look997: Tak da się zmienić default mount ale to wymaga nowego rula w udev.
Ubuntu korzysta z udisk2 i generalnie ścieżka jest hardkodowana ale możesz wymusić przez udev.
Nie chodzi o montowane partycje ale że wielu użytkowników może sobie swoje własne USB montować i nie korzystają ze swoich nawzajem... Ubuntu to nie jest serwerowy system tylko dekstopowy.
Jakbyś wyjaśnił o co dokładnie Ci chodzi było by mi o jakieś 200 razy łatwiej. (Wysokopoziomo
  • Odpowiedz
Chcę w bashu wygenerować wiersze tabeli html. Niestety, z niezrozumiałych dla mnie powodów dzieją się cuda niewidy i to co powinno być na końcu pojawia się na początku stringa i w ogóle jakoś pomieszane. W prawdzie tylko jedna linijka, ale dla czytelności wrzuciłem na pastebina http://pastebin.com/GCqNHUsK

Jakby ktoś zerknął i wyjaśnił mi co jest nie tak, to byłbym wdzięczny.

#bash #linux
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Chcę wyświetlić z danego katalogu te pliki które kończą się na podaną wartość. Jak to poprawić by działało?

for i in $1/*; do
if grep -E "$2"$ &basename $i&; then
echo &basename $i&
fi
  • 14
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Matt23: Nie no akurat twoim sposobem da się zrobić, nawet poprawiłem kod, tylko poprzez basename przekazujesz potokiem wynik do grepa:

for i in $1/*; do
if basename "$i" | grep -E "$2"$ ; then
basename
  • Odpowiedz
jest jakiś trik który blokuje zapis do historii pojedyncze polecenie, wydaje mi się że coś takiego kiedyś widziałem gdzieś
#bash #linux
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Pytanie z #linux #bash

Testuję uprawnienia specjalne do plików, mianowicie SUID, SGID i sticky.

Utworzyłem sobie skrypt bash, który ma tylko jako wynik podawać wartość whoami. Przy ustawieniu chmod 4777 i uruchomieniu jako inny użytkownik skrypt jako wynik podaje aktualnego użytkownika, a nie właściciela skryptu. Podobnie robiłem z procesem top, który uruchamiałem skryptem na uprawnieniach 4777 innym użytkownikiem niż właściciel pliku. Top w uruchomionych procesach pokazywał, że proces
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@bulwaa7: to są różne rzeczy użytkownik, uprawnienia użytkownika i zmienne środowiska. Poczytaj mana sudo dla przełączników -E -u -U zobacz czym się różnią.
  • Odpowiedz
#linux #archlinux #bash
Chcę szybko zastąpić dużo plików, jednym templatem. Co wpisać tam gdzie użyłem nawiasów kwadratowych?

[sms@assy-arch images]$ ls
BoardLayoutTypeIcons clean.png
[sms@assy-arch images]$ ls BoardLayoutTypeIcons/
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Treść przeznaczona dla osób powyżej 18 roku życia...
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Dużo zipów do rozpakowania (w setkach tysięcy), chciałbym to rozpakować rzecz jasna wykorzystując wszystkie wątki procesora. Z tym, że paczki muszą być wypakowane do folderów o nazwie paczki. Wyczarowałem coś takiego

parallel --gnu $(t=$(ls | grep .zip | head -n 1); if [ ! grep -q "$t" temp/zips ]; then unzip $t -d ${t:0:-4}; fi)
ale nie działa. Jakieś porady? ( ͡° ͜ʖ ͡°)
Może być też rozwiązanie
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@ppidd_: w pytongu to jest takie coś glob. Zrób sobie globem tablice ścieżek do zipów i później jeden for. W nim dla każdej ścieżki odpalasz nowy subprocess z komendą unzip jeśli liczba aktywnych procesów, jest mniejsza niż chcesz maksymalnie lub czekasz w przeciwnym razie. Subprocess odpala się zawsze równolegle do innego. System powinien to już sobie wątkować. Chyba, że mówię głupotę, ale ja bym tak to robił.
  • Odpowiedz
Może ktoś wyjaśnić mi ostatni problem z bezpieczeństwem w PHPMailerze?

Dlaczego wpisanie w skrypcie czegoś podobnego do:
popen(escapeshellcmd('sendmail -f' . escapeshellarg($_POST['nadawca'])), 'w');
zamiast prawidłowego
popen('sendmail -f' . escapeshellarg($_POST['nadawca']), 'w');
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@canto: To jest proste, interesuje mnie bardziej https://legalhackers.com/advisories/PHPMailer-Exploit-Remote-Code-Exec-CVE-2016-10045-Vuln-Patch-Bypass.html - escape jeden raz daje bezpieczny do wstawienia wewnątrz polecenia shellowego ciąg oznaczający ustawienie wartości argumentu, escape dwa razy (gdzie autor myśli, że robi jeden raz) już niebezpieczny. Przypuszczam, że ma to coś wspólnego z fragmentem w dokumentacji: ' and " are escaped only if they are not paired, escape'owanie nie jest więc prostą zamianą np. ' na \', gdzie wykonanie
  • Odpowiedz
Mam problem, musze zrobic skrypt ktory zmieni mi nazwy plikow w katalogach. Zrobilem ze zmienia mi nazwy w biezacym katalogu ale nie wychodzi mi by zmienial w podkatalogach. Chodzi mi o jakas petle dzieki ktorej skrypt wejdzie do katalogu tam odpali sie funkcja ktora mam juz nastepnie wyjdzie i wejdzie do kolejnego.
Jakas sugestia?
#linux #bash
  • 19
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach