Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 209. brněnský sraz, který proběhne tento pátek 16. května od 18:00 ve studentském klubu U Kachničky na Fakultě informačních technologií Vysokého učení technického na adrese Božetěchova 2/1. Jelikož se Brno stalo jedním z hlavních míst, kde se vyvíjí open source knihovna OpenSSL, tentokrát se OpenAlt komunita potká s komunitou OpenSSL. V rámci srazu Anton Arapov z OpenSSL
… více »GNOME Foundation má nového výkonného ředitele. Po deseti měsících skončil dočasný výkonný ředitel Richard Littauer. Vedení nadace převzal Steven Deobald.
Byl publikován přehled vývoje renderovacího jádra webového prohlížeče Servo (Wikipedie) za uplynulé dva měsíce. Servo zvládne už i Gmail. Zakázány jsou příspěvky generované pomocí AI.
Raspberry Pi Connect, tj. oficiální služba Raspberry Pi pro vzdálený přístup k jednodeskovým počítačům Raspberry Pi z webového prohlížeče, byla vydána v nové verzi 2.5. Nejedná se už o beta verzi.
Google zveřejnil seznam 1272 projektů (vývojářů) od 185 organizací přijatých do letošního, již jednadvacátého, Google Summer of Code. Plánovaným vylepšením v grafických a multimediálních aplikacích se věnuje článek na Libre Arts.
Byla vydána (𝕏) dubnová aktualizace aneb nová verze 1.100 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.100 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána v nové verzi 2025.5.
OpenSearch (Wikipedie) byl vydán ve verzi 3.0. Podrobnosti v poznámkách k vydání. Jedná se o fork projektů Elasticsearch a Kibana.
PyXL je koncept procesora, ktorý dokáže priamo spúštat Python kód bez nutnosti prekladu ci Micropythonu. Podľa testov autora je pri 100 MHz približne 30x rýchlejší pri riadeni GPIO nez Micropython na Pyboard taktovanej na 168 MHz.
Grafana (Wikipedie), tj. open source nástroj pro vizualizaci různých metrik a s ní související dotazování, upozorňování a lepší porozumění, byla vydána ve verzi 12.0. Přehled novinek v aktualizované dokumentaci.
Ahoj, nevie mi niekto poradit ci sa da sudo nakonfigurovat tak, aby ked spustam program pod konkretnim userom, tak aby si vypitalo heslo usera pod ktorym chcem tento program spustit a nie moje!
Pokud znáš heslo uživatele, pod kterým chceš daný program spustit, tak postrádá použití sudo smysl. Použij:
$ su -c program username
Dik, na to som uz prisiel.
Jedneho takeho usera som uz mal v default instalacii, ktory moze pouzivat prikaz su. Ale neviem ako docielim aby mohol aj iny konkretny user pouzivat prikaz su.
Skupinu wheel nemam, pridanie uzivatela do skupini root nepomohlo. V mojom konfiguraku /etc/pam.d/su je toto:
# # The PAM configuration file for the Shadow `su' service # # This allows root to su without passwords (normal operation) auth sufficient pam_rootok.so # This module parses environment configuration file(s) # and also allows you to use an extended config # file /etc/security/pam_env.conf. # # parsing /etc/environment needs "readenv=1" session required pam_env.so readenv=1 # locale variables are also kept into /etc/default/locale in etch # reading this file *in addition to /etc/environment* does not hurt session required pam_env.so readenv=1 envfile=/etc/default/locale # Defines the MAIL environment variable # However, userdel also needs MAIL_DIR and MAIL_FILE variables # in /etc/login.defs to make sure that removing a user # also removes the user's mail spool file. # See comments in /etc/login.defs # # "nopen" stands to avoid reporting new mail when su'ing to another user session optional pam_mail.so nopen # The standard Unix authentication modules, used with # NIS (man nsswitch) as well as normal /etc/passwd and # /etc/shadow entries. @include common-auth @include common-account @include common-session
ked zadam ako pouzivatel www-data prikaz su -c id bob
tak mi to vyhodi chybu: Sorry, user www-data is not allowed to execute '/bin/su -c id bob'
as root on server.
Ked to spravim ako user knoppix, tak si pekne vypita heslo na boba a komand zbehne uspesne.
Mas pravdu, to som si neuvedomil ze som sa pod toho usera dostal cez sudo a tam spustal su. Teraz som to spravil takto, Spustil som si terminal pod userom knoppix, na krotom mi funguje su, v nom som sa cez prikaz su www-data switchol
na usera www-data a tam nasledne spustil prikaz su -c id bob kde si vypitalo heslo. No po zadani som dostal hlasku Sorry, try again.
Este dodatok, heslo je urcite spravne
www-data
bez hesla nedostal.
Tak tomu nerozumiem ako sa tam sudo dostalo. Ako som uviedol, Do grafickeho prostredia distribudie knoppix som prihlaseny pod uzivatelom knoppix. Tam spustim terminal a switchnem sa na usera www-data a vykonam prikaz uvedeny vyssie. Skusal som sa prihlasit aj vzdialene cez ssh ako user www-data. a tam zadat prikaz su -c id bob no dostal som taku istu hlasku. Mozes mi prosimta vysvetlit ako sa do toho zaplietlo sudo ked som ho nepouzil.
No racej vysvetlim co chcem dosiahnut. chcem napisat skript ktoremu dam tri argumenty, login, heslo a prikaz. A nesledne chcem aby sa tento prikaz vykonal pod danym userom. Lenze som natrafil na tento problem plus dalsi, ked som to skusal spustit v skripte (este bez argumentov): #!/bin/sh su bob -c id << _EOF_ bob _EOF_
tak som dostal hlasku su: must be run from a terminal
To je z bezpečnostích důvodů, aby uživatelé nedávali hesla do skriptů.
Skript, který popisuješ je defacto program su.
/var/log/auth.log
po té co se akce nezadaří.
Nastává problém, i když se na uživatele www-data dostaneš pomocí:
$ su - www-data
Je to to ise aj ked to spravim ako si mi napisal. a subor /var/log/auth.log je prazdny
Není auth.log jen odrotovaný do auth.log*?
A když použiješ místo uživatele www-data např. uživatele franta, kterého si nově vytvoříš, a spouštíš su -c program user pod ním, je stále stejný problém?
No vytvoril som si uzivatela boba. otvoril som terminal a zadal prikazy:
server:5 16:05:36 ~ $ id uid=1000(knoppix) gid=1000(knoppix) groups=20(dialout),21(fax),22(voice),24(cdrom),25(floppy),26(tape),27(sudo),29(audio),30(dip),44(video),60(games),100(users),106(usb),110(scanner),115(camera),1000(knoppix) server:5 16:05:46 ~ $ su - bob Password: server:5 16:05:50 ~ $ id uid=1002(bob) gid=1003(bob) groups=27(sudo),1003(bob) server:5 16:05:55 ~ $ su -c id knoppix server:5 16:05:65 ~ $
Dostal som prazdny riadok.
Jakou verzi Knoppixu máš? Co říká:
$ ls -l /bin/su -rwsr-xr-x 1 root root 27108 Nov 22 17:01 /bin/su $ ls -l /usr/bin/id -rwxr-xr-x 1 root root 26572 Apr 4 2008 /usr/bin/id bob$ su -c true knoppix bob$ echo $? 0 bob$ su -c false knoppix bob$ echo $? 1 bob$ su -c 'echo $USER' knoppix knoppix
Po zadání su -c id knoppix
se Tě to neptalo na heslo? A co říká echo $?
po dokončení tohoto příkazu?
Je to live cd instant-gridu:
instant-grid.de/files/instant-grid-1.1-release.iso
server:6 16:58:51 security $ ls -l /bin/su -rwsr-xr-x 1 root root 27000 Dec 7 2006 /bin/su
heslo ma nepitalo
server:6 16:58:55 security $ echo $? 141
Aha, takže řádek je prázdný, protože se nestihlo nic vykonat 141 = SIGPIPE.
A su - -c id knoppix
vrací také chybový kód 141?
Ano tiez.
Třeba se dozvíme něco z výstupu:
$ strace su -c id knoppix
To vypadá na chybu v su/id, jako kdyby se neingnoroval SIGPIPE, který měl být ignorován. Zkusím si stáhnout to CD a pustit si to u sebe.
Asi bude dobré, když založíš nový dotaz, proč su -c id končí s touhle chybou, třeba něco někoho napadne.
Vypis z strace prikladam v prilohe.
O něco výše jsi psal, že se Tě to neptalo na heslo, ale v strace je:
write(2, "Password: ", 10Password: ) = 10 read(0, "\n", 511) = 1 write(2, "su: Authentication failure\n", 27su: Authentication failure
To je pravda, ked to zadam bez strace tak ma to heslo ani nepyta.
Cely prikaz ktory som zadal z strace je: strace su -c id knoppix 2>&1 | tee strace.txt
je zaujimave ze ked to zadam takto tak to pomne heslo chce.
Prikladam novy strace aj zo spravnym heslom, predtym som to iba odklepol.
bashrc:
# /etc/bash.bashrc [ -f /etc/profile ] && . /etc/profile export CAS_SERVER_URL="https://172.24.127.1:8443/wsrf/services/CASService" export CAS_SERVER_IDENTITY="/O=org/OU=Instant-Grid/OU=TestGrid/CN=host/server" export CATALINA_BASE="/home/knoppix/ogce-portal-only/portal_deploy/apache-tomcat-5.5.27" export CATALINA_HOME=$CATALINA_BASE export CATALINA_TMPDIR=$CATALINA_BASE/temp
Nemyslim ze by to bolo zavysle na bashrc. pretoze to iste mi spravy ked sa chcem prepnut z boba na ineho usera.
Hlavne potrebujem vediet, ak by si mi mohol poradit ako to su spustit v skripte, ked mi vypisuje hlasku: su: must be run from a terminal
Potrebujem pod jednotlivimi uzivatelmi spustat prikaz ktory si vyziada zo servera novy certifikat, pritom sa tam autentifikuje proxy certifikatom ktory je ulozeny v tempe s nazvom x509_uxxx.proxy, kde xxx je uid daneho usera. Tento program nema ziadny prepinac ktorym by som explicitne urcil cestu k certifikatu, vzdy ho hlada v tempe v tomto formate podla toho aky uzivatel spusta tento prikaz. Tento prikaz potrebujem volat z php funkciou passthru. Je to akysi webovy wrap na tento komand, aby si uzivatel zadal iba meno a heslo a prikaz sa spusti z jeho pravami a vrati novy certifikat.
Uživateli www-data bych dal pomocí sudo (bez zadání hesla) možnost spouštět příkaz pro vrácení certifikátu pod daným uživatelem. Ale nejprve bych ověřil heslo pomocí následujícího skriptu v Pythonu (pwcheck.py):
#!/usr/bin/python import sys import spwd import crypt if (len(sys.argv) != 3): print "Usage: %s user password" % (sys.argv[0]) sys.exit() user = sys.argv[1] password = sys.argv[2] sp = spwd.getspnam(user).sp_pwd salt = sp[0:sp.rfind("$")+1] user_sp = crypt.crypt(password, salt) if (user_sp == sp): print "OK" sys.exit(0) print "ERROR" sys.exit(1)
Skript musíš spustit pod uživatelem root, protože potřebuje přistupovat do /etc/shadow. To bych opět vyřešil pomocí sudo na pwcheck.py.
Tiskni
Sdílej: