26

(17 odpowiedzi, napisanych Oprogramowanie / Software)

Tylko, że z tego co się orientuje do folderów i plików z systemu plików ntfs nie przypiszesz praw, bo ntfs tego nie obsługuje....
Poprawcie mnie jeśli się mylę.

A tak w ogóle to dlaczego nie ma proftpd?

P.S. Swoją drogą w sambie, której tak nie znoszą Linuxiarze taka funkcja jest oczywistością ;-p

27

(17 odpowiedzi, napisanych Oprogramowanie / Software)

Aha... Żeby nie wyszło, że nic nie próbowałem z vsftpd. Stworzyłem vsftpd_users i konkretne pliki dla userów. Jednak nie znam komendy z uprawnieniami dla konkretnego folderu. Jest hide_file, deny_file, więc to też powinno gdzieś być. To w zasadzie by mi wystarczyło...

28

(17 odpowiedzi, napisanych Oprogramowanie / Software)

Cześć. Po dłuższej przygodzie z Attitude Adjustment dostosowałem router do swoich potrzeb i byłem bardzo zadowolony. Jednak jakiś czas temu wyszedł stabilny Chaos Calmer, a lista zmian w stosunku do poprzedniej wersji jest dość długa. Postanowiłem więc dziś "zaktualizować" (postawić od nowa ;-p) system. Trochę to trwało. Np simpleshapera nie mogłem zainstalować bo żaden link, który znalazłem nie jest już aktywny. Na szczęście zrobiłem kopie systemu i przeniosłem odpowiednie pliki na router.
I wszystko byłoby fajnie, gdyby nie to, że w oficjalnym (i w eko.one) repozytorium Chaos Calmer nie widnieje proftpd, a tylko alternatywny vsftpd. Nie twierdzę, że vsftpd jest zły. Lecz po prostu nie wiem jak ustawić prawa write/read do poszczególnych folderów, a we wszystkich innych stosować read-only.
Czyli globalne read-only, a dla konkretnych użytkowników, dostęp do sprecyzowanych folderów z read/write. Teoretycznie można by ustawić prawa dostępu przez chmod i w ten sposób rozwiązać problem, ale zawartość folderów jest bindowana, a z tego co wiem - prawa pochodzą od głównego "montowania", a te z kolei muszę mieć na 777 z powodu innych usług. Dlatego też chcę realizować prawa użytkowników z poziomu vsftpd.
W proftpd rozwiązałem to właśnie na zasadzie globalnych zasad i sprecyzowanych dla usera.
Z góry dziękuje.

29

(3 odpowiedzi, napisanych Oprogramowanie / Software)

Dziękuje Panie Cezary. Zarówno to co Pan polecił jak i to z mojego confingu jest w porządku.
Problem leżał gdzie indziej - firewall, ale na komputerze ;-x...
Gafa, że szok ;-)... Wczoraj wyłączyłem co prawda zaporę czasowo. Zainstalowałem p910nd. Bawiłem się z nim, ale drukarki nie obsługiwał. A później zapomniałem, że zapora znów jest aktywna x.x. Cholera... a jeszcze specjalnie wyłączyłem zaporę czasowo, aby później nie musieć pamiętać o włączeniu. I zonk... zapomniałem w drugą stronę (że już działa) ;-D.

30

(3 odpowiedzi, napisanych Oprogramowanie / Software)

Dzień dobry ;-).
Postępowałem zgodnie z paroma poradnikami odnośnie cups, lecz za każdym razem zatrzymywałem się na dostępie do GUI. To skłoniło mnie do założenia tematu.

Gdy próbuje wejść na 192.168.1.1:631 (adres routera to właśnie 192.168.1.1) otrzymuje komunikat o niemożności nawiązania połączenia.
Poniżej zamieszczam garść informacji.

openWrt:

OpenWrt Barrier Breaker (r44952)
Build time: 2015-03-28 07:45 CET
Cezary Jackiewicz (obsy), [url]http://eko.one.pl[/url]
Machine: TP-Link TL-MR3420 v2                                
 | Uptime: 0d, 00:07:58                                         
 | Load: 0.00 0.05 0.05                                         
 | Flash: total: 942.6MB, free: 876.0MB, used: 1%               
 | Memory: total: 28.2MB, free: 13.7MB, used: 51%               
 | WAN: 192.168.2.29, proto: dhcp                               
 | LAN: 192.168.1.1                                             
 | WLAN: mode: ap, ssid: openWrt, channel: 6, conn: 1           
 --------------------------------------------------------

   
+ doinstalowane Lucy, samba, proftpd, miniDLNA

plik konfiguracyjny:

########################################################################
#                                                                      #
# This is the CUPS configuration file.  If you are familiar with       #
# Apache or any of the other popular web servers, we've followed the   #
# same format.  Any configuration variable used here has the same      #
# semantics as the corresponding variable in Apache.  If we need       #
# different functionality then a different name is used to avoid       #
# confusion...                                                         #
#                                                                      #
########################################################################


AccessLog syslog
ErrorLog syslog
LogLevel info
PageLog syslog
PreserveJobHistory No
PreserveJobFiles No
AutoPurgeJobs Yes
MaxJobs 25
MaxPrinterHistory 10
#Printcap /etc/printcap
#PrintcapFormat BSD
RequestRoot /var/cups
#RemoteRoot remroot
User root
Group root
RIPCache 512k
TempDir /var/cups
Port 631
HostNameLookups Off
KeepAlive On
Browsing On
BrowseProtocols cups

<Location />
Order Deny,Allow
Allow From 127.0.0.1
Allow From 192.168/24
</Location>

<Location /admin>
AuthType Basic
AuthClass Anonymous
Order Allow,Deny
Allow From All
</Location>

Log:

Wed Jun 17 07:55:42 2015 lpr.info cupsd[1533]: Loaded configuration file "/etc/cups/cupsd.conf"
Wed Jun 17 07:55:42 2015 lpr.notice cupsd[1533]: Group and SystemGroup cannot use the same groups.
Wed Jun 17 07:55:42 2015 lpr.info cupsd[1533]: Resetting Group to "nobody"...
Wed Jun 17 07:55:42 2015 lpr.info cupsd[1533]: Configured for up to 100 clients.
Wed Jun 17 07:55:42 2015 lpr.info cupsd[1533]: Allowing up to 100 client connections per host.
Wed Jun 17 07:55:42 2015 lpr.info cupsd[1533]: Creating CUPS default administrative policy:
Wed Jun 17 07:55:42 2015 lpr.info cupsd[1533]: <Policy default>
Wed Jun 17 07:55:42 2015 lpr.info cupsd[1533]: JobPrivateAccess default
Wed Jun 17 07:55:42 2015 lpr.info cupsd[1533]: JobPrivateValues default
Wed Jun 17 07:55:42 2015 lpr.info cupsd[1533]: SubscriptionPrivateAccess default
Wed Jun 17 07:55:42 2015 lpr.info cupsd[1533]: SubscriptionPrivateValues default
Wed Jun 17 07:55:42 2015 lpr.info cupsd[1533]: <Limit Create-Job Print-Job Print-URI Validate-Job>
Wed Jun 17 07:55:42 2015 lpr.info cupsd[1533]: Order Deny,Allow
Wed Jun 17 07:55:42 2015 lpr.info cupsd[1533]: </Limit>
Wed Jun 17 07:55:42 2015 lpr.info cupsd[1533]: <Limit Send-Document Send-URI Cancel-Job Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Authenticate-Job CUPS-Get-Document>
Wed Jun 17 07:55:42 2015 lpr.info cupsd[1533]: Order Deny,Allow
Wed Jun 17 07:55:42 2015 lpr.info cupsd[1533]: Require user @OWNER @SYSTEM
Wed Jun 17 07:55:42 2015 lpr.info cupsd[1533]: </Limit>
Wed Jun 17 07:55:42 2015 lpr.info cupsd[1533]: <Limit Pause-Printer Resume-Printer Set-Printer-Attributes Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Add-Printer CUPS-Delete-Printer CUPS-Add-Class CUPS-Delete-Class CUPS-Accept-Jobs CUPS-Reject-Jobs CUPS-Set-Default>
Wed Jun 17 07:55:42 2015 lpr.info cupsd[1533]: Order Deny,Allow
Wed Jun 17 07:55:42 2015 lpr.info cupsd[1533]: AuthType Default
Wed Jun 17 07:55:42 2015 lpr.info cupsd[1533]: Require user @SYSTEM
Wed Jun 17 07:55:42 2015 lpr.info cupsd[1533]: </Limit>
Wed Jun 17 07:55:42 2015 lpr.info cupsd[1533]: <Limit All>
Wed Jun 17 07:55:42 2015 lpr.info cupsd[1533]: Order Deny,Allow
Wed Jun 17 07:55:42 2015 lpr.info cupsd[1533]: </Limit>
Wed Jun 17 07:55:42 2015 lpr.info cupsd[1533]: </Policy>
Wed Jun 17 07:55:42 2015 lpr.info cupsd[1533]: Full reload is required.
Wed Jun 17 07:55:42 2015 lpr.err cupsd[1533]: Filter "texttops" not found.
Wed Jun 17 07:55:42 2015 lpr.err cupsd[1533]: Filter "texttops" not found.
Wed Jun 17 07:55:42 2015 lpr.err cupsd[1533]: Filter "imagetops" not found.
Wed Jun 17 07:55:42 2015 lpr.err cupsd[1533]: Filter "imagetops" not found.
Wed Jun 17 07:55:42 2015 lpr.err cupsd[1533]: Filter "imagetops" not found.
Wed Jun 17 07:55:42 2015 lpr.err cupsd[1533]: Filter "imagetops" not found.
Wed Jun 17 07:55:42 2015 lpr.err cupsd[1533]: Filter "imagetops" not found.
Wed Jun 17 07:55:42 2015 lpr.err cupsd[1533]: Filter "imagetops" not found.
Wed Jun 17 07:55:42 2015 lpr.err cupsd[1533]: Filter "imagetops" not found.
Wed Jun 17 07:55:42 2015 lpr.err cupsd[1533]: Filter "imagetops" not found.
Wed Jun 17 07:55:42 2015 lpr.err cupsd[1533]: Filter "imagetops" not found.
Wed Jun 17 07:55:42 2015 lpr.err cupsd[1533]: Filter "imagetops" not found.
Wed Jun 17 07:55:42 2015 lpr.err cupsd[1533]: Filter "bannertops" not found.
Wed Jun 17 07:55:42 2015 lpr.err cupsd[1533]: Filter "imagetoraster" not found.
Wed Jun 17 07:55:42 2015 lpr.err cupsd[1533]: Filter "imagetoraster" not found.
Wed Jun 17 07:55:42 2015 lpr.err cupsd[1533]: Filter "imagetoraster" not found.
Wed Jun 17 07:55:42 2015 lpr.err cupsd[1533]: Filter "imagetoraster" not found.
Wed Jun 17 07:55:42 2015 lpr.err cupsd[1533]: Filter "imagetoraster" not found.
Wed Jun 17 07:55:42 2015 lpr.err cupsd[1533]: Filter "imagetoraster" not found.
Wed Jun 17 07:55:42 2015 lpr.err cupsd[1533]: Filter "imagetoraster" not found.
Wed Jun 17 07:55:42 2015 lpr.err cupsd[1533]: Filter "imagetoraster" not found.
Wed Jun 17 07:55:42 2015 lpr.err cupsd[1533]: Filter "imagetoraster" not found.
Wed Jun 17 07:55:42 2015 lpr.err cupsd[1533]: Filter "imagetoraster" not found.
Wed Jun 17 07:55:42 2015 lpr.err cupsd[1533]: Filter "imagetoraster" not found.
Wed Jun 17 07:55:42 2015 lpr.err cupsd[1533]: Filter "imagetoraster" not found.
Wed Jun 17 07:55:42 2015 lpr.err cupsd[1533]: Filter "imagetoraster" not found.
Wed Jun 17 07:55:42 2015 lpr.err cupsd[1533]: Filter "imagetoraster" not found.
Wed Jun 17 07:55:42 2015 lpr.err cupsd[1533]: Filter "rastertopwg" not found.
Wed Jun 17 07:55:42 2015 lpr.info cupsd[1533]: Loaded MIME database from "/usr/share/cups/mime" and "/etc/cups": 35 types, 2 filters...
Wed Jun 17 07:55:42 2015 lpr.err cupsd[1533]: cupsdLoadBanners: Unable to open banner directory "/usr/share/cups/banners": No such file or directory
Wed Jun 17 07:55:42 2015 lpr.info cupsd[1533]: Loading job cache file "/var/cache/cups/job.cache"...
Wed Jun 17 07:55:42 2015 lpr.info cupsd[1533]: Full reload complete.
Wed Jun 17 07:55:42 2015 lpr.info cupsd[1533]: Cleaning out old files in "/var/cups"...
Wed Jun 17 07:55:42 2015 lpr.info cupsd[1533]: Cleaning out old files in "/var/cache/cups"...
Wed Jun 17 07:55:42 2015 lpr.info cupsd[1533]: Listening to [v1.::]:631 on fd 4...
Wed Jun 17 07:55:42 2015 lpr.info cupsd[1533]: Listening to 0.0.0.0:631 on fd 6...
Wed Jun 17 07:55:42 2015 lpr.info cupsd[1533]: Resuming new connection processing...

Niepokojący komunikat:

Wed Jun 17 07:55:42 2015 lpr.notice cupsd[1533]: Group and SystemGroup cannot use the same groups.
Wed Jun 17 07:55:42 2015 lpr.info cupsd[1533]: Resetting Group to "nobody"...

I te wszystkie filtry...Tak czy owak... Dostęp do GUI nadal powinien być możliwy...(?)

Firewall:

config rule
    option _name 'Drukarka'
    option proto 'tcp'
    option target 'ACCEPT'
    option dest_port '631'
    option src '*'
    option dest '*'

Odnośnie sekcji:
"<Location />
Order Deny,Allow"
Próbowałem rożnych kombinacji, min Allow From 192.168.1.*, Allow From 192.168.1.1/255.255.225.0, Allow From 192.168.1.135, Allow From All, lecz bez skutku. Komputer, z którego chce się połączyć ma adres 192.168.1.135

31

(9 odpowiedzi, napisanych Oprogramowanie / Software)

Chciałem tyko napisać, że problem tkwił wyłącznie w moim skrypcie. Cron wszystko uruchamiał, a na buga nakierował mnie log, który utworzyłem w skrypcie tak jak polecał Cezary.

32

(9 odpowiedzi, napisanych Oprogramowanie / Software)

Sprawdziłem raz jeszcze na sucho w cronie wywołanie 3 skryptów...Wszystko działa pięknie. Zupełnie nie rozumiem dlaczego o 9 rano nie dzieje się to samo. Na wszelki wypadek zmieniłem restart routera na 5 rano (tylko poniedziałki) bo wydaje mi się, że to on konfliktuje... - w końcu to wersja trunk
A tak... w ogóle to zwykle resetuje router zamiast samego crona, ale wychodzi na to samo, prawda?

Mar  8 12:48:01 Gargoyle cron.info crond[3277]: crond: USER root pid 3305 cmd /usr/bin/wifiManager.sh stop
Mar  8 12:48:42 Gargoyle daemon.info hostapd: wlan0: STA xx:xx:xx:xx:xx:94 WPA: group key handshake completed (RSN)
Mar  8 12:49:01 Gargoyle cron.info crond[3277]: crond: USER root pid 3330 cmd /usr/bin/wifiOff.sh &
Mar  8 12:49:01 Gargoyle kern.info kernel: [ 2583.800000] device wlan0 left promiscuous mode
Mar  8 12:49:01 Gargoyle kern.info kernel: [ 2583.800000] br-lan: port 2(wlan0) entered disabled state
Mar  8 12:51:01 Gargoyle cron.info crond[3277]: crond: USER root pid 3395 cmd /usr/bin/set_kernel_timezone >/dev/null 2>&1
Mar  8 12:55:01 Gargoyle cron.info crond[3277]: crond: USER root pid 3397 cmd /usr/bin/wifiManager.sh start &

33

(9 odpowiedzi, napisanych Oprogramowanie / Software)

W ten sposób działa zawsze. To znaczy po restarcie crona i ustawieniu innego czasu. Spójrz na poprzedni post. Skrypt funkcjonuje prawidłowo. No, ale co z tego skoro o 9 rano nie włącza się.

34

(9 odpowiedzi, napisanych Oprogramowanie / Software)

Ok... ustawiłem na 0.
Rezultat: Mar  8 12:20:01 Gargoyle cron.info crond[2760]: crond: USER root pid 2764 cmd /usr/bin/wifiManager.sh start &
Poczekam do jutra, czy o 9 wywoła skrypt.

35

(9 odpowiedzi, napisanych Oprogramowanie / Software)

"w logu", czyli polecenie logread? Ustawiłem przed chwilą start  w crontabie na 11:48 i uruchomił się skrypt - widzę po poleceniu top, ale w logread o tym ani słowa.

Tak wygląda plik konfiguracyjny /etc/crontabs/root

0 0,4,8,12,16,20 * * * date -u  +"%Y.%m.%d-%H:%M:%S" >/usr/data/time_backup
0,1,11,21,31,41,51 * * * * /usr/bin/set_kernel_timezone >/dev/null 2>&1
59 2 * * * /usr/bin/wifiManager.sh stop
0 3 * * * /usr/bin/wifiOff.sh &
0 3 * * * /usr/bin/statystyka.sh
0 9 * * * /usr/bin/wifiManager.sh start &
0 9 * * 1 /usr/lib/gargoyle/reboot.sh
0 0,4,8,12,16,20 * * * /tmp/do_webmon_backup.sh
0 0,4,8,12,16,20 * * * /tmp/bw_backup/do_bw_backup.sh

Nie uruchamia się 0 9 * * * /usr/bin/wifiManager.sh start &
Dlaczego? Konflikt kilku zdarzeń w jednym czasie? Chyba nie, bo ustawiłem w różnych minutach i było to samo.
Zaznaczę, że wifiOff sprawdza połączenia wifi. Gdy ich brak wyłącza wifi i skrypt kończy się. Natomiast wifiManager działa do momentu wywołania 2 instancji z parametrem stop. Wszystko działa gdy uruchamiam ręcznie lub ustawie wifiManager start przykładowo za 5 minut. Lecz przy tych ustawieniach następnego dnia o 9 nie włącza się.

P.S wifiManager.sh stop włącza się.

37

(11 odpowiedzi, napisanych Oprogramowanie / Software)

Aha. Dzięki smile. Myślałem, że to jest coś bardziej w rodzaju pamięci wirtualnej tak jak na windows (dysk poszerza ram). Ale tutaj jest odwrotnie - ram poszerza dysk smile

38

(11 odpowiedzi, napisanych Oprogramowanie / Software)

Wyczytałem, że exroot to jest podłączenie dysku zewnętrznego. W moim routerze teoretycznie jest taka możliwość, ale trzeba by było lutować (TP-Link TL-WR740N/ND v4).
Nie da się po prostu zmniejszyć troszeczkę partycji 'tmpfs' (/tmp) i dodać to miejsce do 'rootfs' (/) aby zainstalować omawiany pakiet?
P.S. Jestem kompletnym laikiem w świecie Linuxa

39

(11 odpowiedzi, napisanych Oprogramowanie / Software)

Package: screen
Version: 4.0.3-3
User-Installed: false
Install-Destination: Not Installed
Source: feeds/packages/utils/screen
Size: 145254
Maintainer: OpenWrt Developers Team <openwrt-devel@openwrt.org>
Installed-Size: 145142

Nie wiem czy jest sens abym o tym czytał skoro program zajmuje "Size: 145254" - domniemam, że to 14 mb (bo chyba nie 145 big_smile)? Flashu mam:

root@Gargoyle:~# free
                     total         used         free       shared      buffers
Mem:           29260        25720      3540            0         1124
-/+ buffers:                    24596     4664
Swap:            0              0             0

root@Gargoyle:~# df -h
Filesystem                Size         Used         Available   Use%    Mounted on
rootfs                       448.0K    248.0K    200.0K          55%        /
/dev/root                 2.5M        2.5M        0                  100%      /rom
tmpfs                       14.3M      1.5M      12.7M             11%       /tmp
tmpfs                       512.0K     0            512.0K            0%      /dev
/dev/mtdblock3        448.0K    248.0K    200.0K            55%    /overlay
overlayfs:/overlay    448.0K    248.0K    200.0K           55%     /

40

(11 odpowiedzi, napisanych Oprogramowanie / Software)

Jeżeli napisze sobie skrypt, który pracuje cały czas. Czy jest możliwość późniejszego podglądu jego działania?
Jeżeli skrypt uruchamiam przez konsole - widzę jego komunikaty echo, no ale jeśli zamknę putty, albo skrypt zostanie uruchomiony automatycznie? Jest wtedy możliwość wyświetlenia takiego skryptu w konsoli? Czy trzeba robić logi...?

Uhm, mam pewien problem.
Mianowicie:

glob=0

fun()
{
  echo "funkcja"
  glob="yupi"
  echo "w fun glob: $glob"
  return 1
}

bufor=$(fun)
echo "$bufor"
echo "poza fun glob: $glob"

fun
echo "poza fun glob: $glob"

Rezultat:
funkcja
w fun glob: yupi
poza fun glob: 0
funkcja
w fun glob: yupi
poza fun glob: yupi


W przypadku 1 instrukcji to co wprowadziłem do echo jest zapisane do zmiennej bufor (tak jakby przechwycenie), ale zmienna globalna 'glob' nie zmienia wartości, gdyż staje się lokalną. Natomiast w 2 przypadku echo jest wyświetlone w konsoli, a wartość globalna ulega zmianie.
Teraz rodzi się pytanie: Czy jest możliwość "przechwycenia" (tak jak w 1 instrukcji) tego co jest w echo do zmiennej, a jednocześnie zmienienie globalnych zmiennych wewnątrz takiej funkcji przy tego rodzaju zapisie?

@Edit
Chodzi mi o to aby funkcja zmieniała wartości globalne,  wyświetlając przy tym informacje w konsoli, ale nie zawsze. Mógłbym po prostu wywoływać funkcje z parametrem i sprawdzać go przy każdym echo, ale czy nie ma innego wyjścia?

@Edit 2
Dobra... Rozwiązałem to w ten sposób, że uruchamiam taką funkcje normalnie, a komunikaty zapisywane są w zmiennej globalnej. I potem wyświetlam zawartość tej zmiennej, bądź nie.

Nie, nie smile. Tyle to się domyśliłem. Chodziło mi o to aby tylko kilka serwisów pod HTTPS miało wyjątek, ale skoro to takie pracochłonne to faktycznie lepiej dać sobie spokój i odblokować całe 443 (ująć w wyjątku)

Nie no... smile. Tak to nie będę się bawił. Toż to Syzyfowa praca. Dziękuje za informacje Panie Cezary smile

Czyli np taki youtube będzie miał z milion pięćset dwa dziewięćset serwerów i każdy musiałby być dodany do reguły zapory żeby taki serwis działał?

Czyli wychodzi na to, że nie mam żadnej kontroli nad stronami na protokole HTTPS? To znaczy albo dopuszczam wszystkie, albo żadne (blokując port)? Nic więcej nie można zrobić?

Zgodnie z którymś tam tutorialem z tegoż forum stworzyłem czarną listę dla wybranego numeru MAC z blokowaniem wszystkiego, oraz osobną białą listę z wyjątkami dla poszczególnych stron. Rezultat jest następujący: Strony HTTP działają znakomicie. Natomiast HTTPS już wcale. Próbowałem dodać wyjątek dla portu 443, ale niczym to nie skutkowało.
Poniżej przykład ustawień zapory z youtube. Być może nie ustawiłem wszystkich domen potrzebnych do działania serwisu, ale nie o to chodzi. Żadna strona https nie dziła. Nie włącza się kompletnie nic, zupełnie tak jakby port był blokowany...

config restriction_rule 'rule_1'
    option is_ingress '0'
    option description 'blok'
    option local_addr 'tajny'
    option enabled '1'

config whitelist_rule 'exception_1'
    option is_ingress '0'
    option description 'wyj'
    option local_addr 'tajny'
    option proto 'both'
    option url_domain_exact '"eko.one.pl"'
    option url_domain_contains '"youtube","ytimg","googlevideo","google"'
    option enabled '1'

Stale używam google. Zdąrza się, że tracę po kilka godzin na szykanie jednej dupereli. W ostateczności dopiero tworzę temat wink. Trochę ogranicza mnie słaba znajomość angielskiego, ale zamierzam w przyszłości nad tym popracować. Tyle że to już zupełny offtopic smile.
Dziękuje za pomoc i miłego dnia życzę smile

Jeśli jeszcze bym mógł na chwile Pana zająć.

read -n 1 lol < $sciezka
echo $lol

Pobranie jednego znaku z pliku 'sciezka', następnie jego wyświetlenie.
Wszystko fajnie, ale co jeżeli chciałbym wczytać pojedynczy znak z innej zmiennej, a nie z pliku?
Niby jest parametr -i oraz -e, ale nie wychodzi mi. Może to z basha.
W jaki więc sposób pobrać jeden znak ze zmiennej o x rozmiarze?

Panie Cezary... Dziękuje smile. To mi bardzo pomogło smile

Dziękuje smile
A co do aktywnych połączeń to wyczytałem aby pingować IP`ki z  '/tmp/dhcp.leases'. Ale które to połączenia wifi nadal nie wiem. Może po szybkości pingu big_smile. Ja sobie po prostu zrobię pliczek z wyjątkami - adresami MAC hostów lan i te połączenia, które są inne od tych z pliczku to prawdopodobne wifi big_smile