Přemýšlíte, jak začít prázdniny? Už v úterý 1. července se bude konat Virtuální Bastlírna, tedy online setkání bastlířů, techniků, vědců i akademiků, kde se ve volné diskuzi probírají novinky ze světa techniky, ale i jiných zajímavých témat.
Za poslední měsíc jsme byli svědky plamenů několika raket. Zatímco malá raketa od Hondy se úspěšně vznesla a opět přistála, raketa od SpaceX se rozhodla letět všemi směry najednou. Díkybohu méně … více »Linus Torvalds zmínil, že souborový systém Bcachefs zřejmě odstraní z mainline Linuxu v začleňovacím okně pro vydání 6.17. Kent Overstreet mu totiž posílá kód s novou funkcionalitou i pro začlenění do kandidátů na vydání, kdy očekává pouze opravy chyb. Ken Overstreet byl již dříve z vývoje vyloučen kvůli konfliktní komunikaci.
Ministerstvo průmyslu a obchodu propaguje Microsoft. Ten ve spolupráci s Ministerstvem průmyslu a obchodu spouští AI National Skilling Plan v ČR. "Iniciativa Microsoftu přináší konkrétní a praktickou podporu právě tam, kde ji nejvíc potřebujeme – do škol, firem i veřejné správy.", říká ministr průmyslu a obchodu Lukáš Vlček.
Jste český ISP? Vyplněním krátkého dotazníku můžete pomoci nasměrovat vývoj nové generace routerů Turris Omnia [𝕏].
Celkové tržby společnosti Canonical za rok 2024 byly 292 milionů dolarů (pdf). Za rok 2023 to bylo 251 milionů dolarů.
Byla vydána verze 1.88.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
Distribuce Tails specializující se ochranu online soukromí uživatele byla vydána ve verzi 6.17. Mimo jiné aktualizuje Tor Browser (14.5.4) a opravuje několik chyb.
Ubuntu nově pro testování nových verzí vydává měsíční snapshoty. Dnes vyšel 2. snapshot Ubuntu 25.10 (Questing Quokka).
Město Lyon posiluje svou digitální suverenitu a postupně nahrazuje software od společnosti Microsoft bezplatnými alternativami, zejména OnlyOffice pro kancelářské aplikace a Linux a PostgreSQL pro systémy a databáze.
Evropská občanská iniciativa Stop Destroying Videogames se snaží o to, aby vydavatelé, kteří spotřebitelům v Evropské unii prodávají videohry nebo na ně udělují licence, měli povinnost tyto hry ponechat ve funkčním (hratelném) stavu i po ukončení podpory ze své strany. Podpořit podpisem tuto iniciativu můžete v Systému pro online sběr podpisů.
cat binc_ldapauth/src/binc_ldapauth.py #!/usr/bin/python ''' Created on Feb 12, 2010 @author: bartmann ''' import os; import string; import sys; import ldap; import ldap.sasl; class binc_ldapauth: def __init__(self): self.gssapi_auth=True; def get_creds(self): fd=os.fdopen(3,"r"); ncreds=os.read(3, 128); creds=ncreds; while(ncreds!=""): ncreds=os.read(3, 128); creds+=ncreds; creds=creds.split("\0"); self.username=creds[0]; self.password=creds[1]; def auth(self): ds = ldap.initialize("ldap://joomladev.dyndns.org"); ds.protocol_version=3; if self.gssapi_auth==False: try: ds.simple_bind_s("uid="+self.username+",ou=people,dc=joomladev.dyndns,dc=org",self.password); dn=string.replace(ds.whoami_s(),"dn:",""); except ldap.INVALID_CREDENTIALS: return 1; else: try: auth=ldap.sasl.gssapi(); ds.sasl_interactive_bind_s("",auth); dn=string.replace(ds.whoami_s(),"dn:",""); if(ds.compare_s(dn,'uid',self.username)): pass; else: return 1; except ldap.INVALID_CREDENTIALS: return 1; os.environ["USER"]=self.username; home=ds.search_s(dn,ldap.SCOPE_BASE,'(objectclass=person)',['homeDirectory']); os.environ["HOME"]=home[0][1]["homeDirectory"][0]; shell=home=ds.search_s(dn,ldap.SCOPE_BASE,'(objectclass=person)',['loginShell']); os.environ["SHELL"]=shell[0][1]["loginShell"][0]; gid=home=ds.search_s(dn,ldap.SCOPE_BASE,'(objectclass=person)',['gidNumber']); os.setgid(int(gid[0][1]["gidNumber"][0])); uid=home=ds.search_s(dn,ldap.SCOPE_BASE,'(objectclass=person)',['uidNumber']); os.setuid(int(uid[0][1]["uidNumber"][0])); os.chdir(os.environ["HOME"]); os.execlp(sys.argv[1],sys.argv[1]); if __name__ == '__main__': lauth=binc_ldapauth(); lauth.get_creds(); lauth.auth();a ten druhý autentifikuje přes PAM - k jeho funkci je nutné mít nainstalovaný PyPAM:
cat binc_pamauth/src/binc_pamauth.py #!/usr/bin/python ''' Created on Feb 12, 2010 @author: bartmann ''' import os; import sys; import PAM; import pwd; class binc_pamauth: def __init__(self): self.gssapi_auth=True; def get_creds(self): fd=os.fdopen(3,"r"); ncreds=os.read(3, 128); creds=ncreds; while(ncreds!=""): ncreds=os.read(3, 128); creds+=ncreds; creds=creds.split("\0"); self.username=creds[0]; self.password=creds[1]; def pam_conv(self,auth, query_list): resp=[]; for (q, qtype) in query_list: if qtype==PAM.PAM_PROMPT_ECHO_OFF : resp.append((self.password,0)); else: resp.append(('',0)); return resp; def auth(self): pam_auth = PAM.pam(); pam_auth.start("imap"); pam_auth.set_item(PAM.PAM_USER,self.username); pam_auth.set_item(PAM.PAM_CONV,self.pam_conv); try: pam_auth.authenticate(); pam_auth.acct_mgmt(); except PAM.error: return 1; pw=pwd.getpwnam(self.username); os.environ["USER"]=self.username; os.environ["HOME"]=pw[5]; os.environ["SHELL"]=pw[6]; os.setgid(int(pw[3])); os.setuid(int(pw[2])); os.chdir(os.environ["HOME"]); os.execlp(sys.argv[1],sys.argv[1]); if __name__ == '__main__': pauth=binc_pamauth(); pauth.get_creds(); pauth.auth();
Tiskni
Sdílej: