How can I make terminal UIs accessible?

I am looking for resources (software, studies, documentation) to help inform design decisions for making command line utilities accessible.

Most of the programs I work on are command-line utilities. Many are non-interactive, but the more complex ones are “TUIs” or terminal UIs.

These TUIs have features such as tabs, interactive navigation, progress bars, key bindings etc..

I am not familiar with adaptive software for terminals (is there an equivalent of a screenreader?) and therefore am not sure how these types of TUI features may impact users with vision or motor impairments.

Set-PnPGroupPermissions library still accessible

I want to break inheritance to a library and then remove members and visitors group. The code below works apart from the fact the library is still accessible but the content is not. The Quick launch also shows the link to the library, but no documents are visible. When I use the UI to break inheritance and remove the said groups, the library is not visible, so can’t see why the code is not doing the same. Any ideas please?

# Break permissions inheritance for the library $  list.BreakRoleInheritance($  true, $  true) $  list.Update() $  list.Context.Load($  list) $  list.Context.ExecuteQuery() Write-Host -ForegroundColor GReen "Unique permissions set on library" $  listTitle  # Remove Member and Visitor Groups foreach ($  y in $  SiteGroups) { #$  MemberGroup = $  title + " Members" #$  VisitorGroup = $  Title + " Visitors"     if ($  y.loginname -like "*Members") {         $  SiteMembers = $  y.loginname         Set-PnPGroupPermissions -Identity $  SiteMembers -List $  listTitle -RemoveRole "Contribute" -ErrorAction silentlycontinue         Write-Host -ForegroundColor Green "Member Group removed!"     }     If ($  y.loginname -like "*Visitors") {         $  SiteVisitors = $  y.loginname         Set-PnPGroupPermissions -Identity $  SiteVisitors -List $  listTitle -RemoveRole "Read" -erroraction silentlycontinue         Write-Host -ForegroundColor Green "Visitor Group removed!"     }  }        

Is Progressive Web Apps accessible only from mobile, how to deploy

Hey guys,

Have you ever heard about Progressive Web Apps? I just hear about it today and I scoured every web corner to understand what it is. The information is so scant.

All I know is it's standalone app on the web and accessible via mobile.

The example of this feature is https://www.washingtonpost.com/pwa/

It cannot be accessed via desktop. Data on the web seems to fetch instantly once you tap on the link.

Do you have any idea how to they deployed it.

Thanks,

nautilus/nemo/other file manager – suggestions for more accessible GUI-based owner management?


Short version

TL;DR – When running nemo/nautilus with elevated privileges*, there are a TON of users/groups on the permissions tab… they’re all jammed in non-searchable drop-downs that don’t have any hotkey support. Looking for tweaks/alternate file managers/chmod gui-wrappers so I can change ownership from GUI without the accessibility nightmares. Any suggestions?


More Info

I have several versions of Ubuntu 18.04 installed in Virtualbox. I have primarily been using Cinnamon desktop/nemo up to this point.

Mostly, I am extremely happy with this desktop. But GUI-based ownership changes (from root) are frustrating because a TON of entries are jammed into a drop-down that I can’t search and can’t use hotkeys from (e.g. to press “r” to jump to “root”, etc). Launching terminal is reliable but slow to type out names when I’m in a hurry.

Note: That this isn’t really an issue when running the file manager from non-root accounts as the owner is not editable and only a few groups are displayed.

I generally run into this I am trying to fix botched ownership perms on shared folders that the current user doesn’t own. And it’s generally never as quick and easy as running a single chown -R command.

I have encountered this same accessibility design in:

  • nemo v.3.6.5 (ubuntu 18.04/gnome+cinnnamon)
  • nemo v4.2.3 (in a popular sub-distro that I’m apparently no longer allowed to mention here)
  • nautilus v3.26.4 (ubuntu 18.04/gnome).

Criteria:

I am interested in finding a GUI-based solution that meets these criteria:

  • Works on some flavor of Ubuntu 18.04 / bionic (bc I prefer LTS editions)
  • Decent user accessibility for lists of 50-100 users/groups (e.g. at least attempts to deal with non-trivial list size such as by having hotkey support, search filters, option to hide service accounts, or something else)
  • No issues running under root (e.g. via pkexec or whatever). Only mentioning this because I’ve run across a handful of apps before that flat-out refuse to run under root.

At this point, I’m just hoping somebody knows of an option that I don’t… I don’t particularly care if this is a nemo-specific tweak, a system configuration, some obscure build option, a different file manager/desktop environment, some external app that wraps a gui around chown (as long as I can throw it in a nemo-action and pass it the path), etc. Mostly just looking to avoid the extra runaround of launching terminal and typing out longer names by hand when I’m in a hurry.

* Also, when I say I am “running as root” / “running with elevated privileges”, I mean the option that appears in the nemo/nautilus UI rather than me launching directly with sudo / pkexec / etc.


Steps to view dialog issue:

  1. Create a folder named “test” on desktop or wherever that is owned by non-root account
  2. In Nemo, right-click > “Open as root” > enter password. Or for nautilus, run pkexec env DISPLAY=$ DISPLAY XAUTHORITY=$ XAUTHORITY nautilus to open with admin privileges.
  3. With the admin instance, right-click on the “test” folder > Properties > Permissions tab
  4. Observe that ALL the service accounts and groups are displayed with no means to filter them / no checkbox to hide them. Observe that pressing “R” in the drop-down does NOT jump to or select “root” (or whatever the first account starting with “R” is). In my case there’s something like 50 users displayed (3 of which are non-service accounts) and something like 80 groups displayed (8 of which are not related to service accounts). For me, this is an accessibility nightmare and it makes searching things out almost as painful as needing to launch the terminal and type it out by hand.

What I’ve tried:

I’ll follow-up if I find discover anything that works but so far, I have tried the following:

  • Permit was almost exactly what I am looking for except that it appears to require typing out the names instead of picking from a list/drop-down/etc. Unfortunately, I have absolutely zero GTK skills at the moment (although I might revisit this when I have more time if nobody has better suggestions).
  • Ubuntu 18.04.2/gnome – Couldn’t figure out how to run as root initially but pkexec env DISPLAY=$ DISPLAY XAUTHORITY=$ XAUTHORITY nautilus eventually worked. Not surprisingly, this seems to have the same issue as nemo.
  • Ubuntu 18.04.2/cinnamon – after installing cinnamon and running nemo as mentioned above, this doesn’t do what I am looking for.
  • Kubuntu 18.04 – Couldn’t find a way to launch dolphin as root so not able to test. User/Group fields were grayed out for me when running as the default non-root account on livedisc.

I have not yet tested other file managers (planning to test thunar but not really familiar with what all is out there).


Screenshot

The non-searchable drop-down with lots of entries and no hotkey support that appears in (admin/root/pkexec) nemo and nautilus > properties > Permissions tab.

Non-searchable drop-down with lots of entries and no hotkey support

LXD Container not accessible from other LAN machines

I am new to Linux world and I tried everything I can think off to solve this problem but stuck since so many days. My LXD container is not able to accessible from my LAN.

I tried followings: https://ubuntu.com/blog/converting-eth0-to-br0-and-getting-all-your-lxc-or-lxd-onto-your-lan https://openschoolsolutions.org/set-up-network-bridge-lxd/ https://discuss.linuxcontainers.org/t/slow-performance-with-nested-bridged-interface/4334 https://blog.simos.info/how-to-make-your-lxd-containers-get-ip-addresses-from-your-lan-using-a-bridge/ https://thomas-leister.de/en/lxd-use-public-interface/

but no help ! Something is wrong and I am not able to make it correct. Any help would be appreciated !!

if I use only bridged profile somehow my container don’t even get the IP, when I do lxc list ipv4 and ipv6 column are blank. I tried to change the container netplan configuration with below and container takes the IP but not able to ping 8.8.8.8 or accessible from host machine.

network: ethernets: eth0: addresses: – 171.17.139.97/28 dhcp4: false gateway4: 171.17.137.81 version: 2

Note – I am using Hyper-V manager and having window 10 host with ubuntu vm 18.04 created by using quick menu.

Thanks

Windows SMB shares no longer accessible in Ubuntu 19.04

Upon returning from a recent trip, my Ubuntu 19.04 autofs no longer mounts the cifs Windows 10 shares. When I click the Windows 10 machine in Nautilus under Other Locations, I get the error, Unable to access location, Failed to retrieve share list from server, Network dropped connection on reset. Does this have to do with SMB v1 and some Windows update? On my android phone, the file manager could also no longer connect to the Windows 10 machine, but after I installed an SMB v2 add-on, the phone can now connect to it. In my Ubuntu smb.conf file, I added min protocol = SMB2, but that did not fix it. Is there a way to get my autofs to mount the cifs shares again? I prefer to not go the fstab route, rather I want to keep using autofs if possible.

pg_restore: [archiver] did not find magic string in file header: please check the source URL and ensure it is publicly accessible

I have been trying to push a dump file from my local Postgrel DB (which I uploaded into my Google Drive and is accessible to public) into my Heroku remote DB with the following URL:

heroku pg:backups:restore 'https://drive.google.com/open?id=dump_id_link_here' DATABASE_URL 

I am already logged in into my Heroku app from the terminal on which I run the command. but I got the same error twice. I have been searching online and found threads such as pg_restore: [archiver] did not find magic string in file header but I could not help link between the two, since I am very new two Postgrel. I Hope you guys point me out towards the issues. Very much appreciated.

Starting restore of https://drive.google.com/open?id=dump_id_link_here to postgresql-symmetrical-52186... done  Stop a running restore with heroku pg:backups:cancel.  Restoring... ! ▸    An error occurred and the backup did not finish. ▸     ▸    waiting for restore to complete ▸    pg_restore finished with errors ▸    waiting for download to complete ▸    download finished with errors ▸    please check the source URL and ensure it is publicly accessible ▸    Run heroku pg:backups:info r002 for more details.   === Backup r002 Database:         BACKUP Started at:       2019-09-14 21:14:26 +0000 Finished at:      2019-09-14 21:14:27 +0000 Status:           Failed Type:             Manual Backup Size:      0.00B (0% compression)  === Backup Logs 2019-09-14 21:14:27 +0000 pg_restore: [archiver] did not find magic string in file header 2019-09-14 21:14:27 +0000 waiting for restore to complete 2019-09-14 21:14:27 +0000 pg_restore finished with errors 2019-09-14 21:14:27 +0000 waiting for download to complete 2019-09-14 21:14:27 +0000 download finished with errors 2019-09-14 21:14:27 +0000 please check the source URL and ensure it is publicly accessible 

Business Data Connectivity Service is not accessible

I am working on sharing service applications across farms ( SP2013 Publishing Farm, SP 2010 Consuming Farm). Services like Search, MMS and Secure Store are working perfectly fine after sharing. However, Business Data Connectivity Service is not working. Following error is thrown when trying to create an External content type from SP 2010 Designer:

Event viewer shows following error: The BDC Service application Connection to: SP 2013 Business Data Connectivity Service is not accessible. The full exception text is: The formatter threw an exception while trying to deserialize the message: There was an error while trying to deserialize parameter http://www.microsoft.com/Office/2009/BusinessDataCatalog:GetThrottlingRulesResult. The InnerException message was ‘Invalid enum value ‘OData’ cannot be deserialized into type ‘Microsoft.BusinessData.SystemSpecific.ThrottleScope’. Ensure that the necessary enum values are present and are marked with EnumMemberAttribute attribute if the type has DataContractAttribute attribute.’. Please see InnerException for more details.

One of the entries in the ULS logs apart from the above is “No ThrottlingRules found”. So far I have tried following fixes without any success:

  1. Made sure all authentication methods except for Anonymous and Windows are Disabled for security token service in both SP 2010 and SP 2013 farm.
  2. Specified administrator for the service and given full control to it.
  3. Started “Request Management” service in SP 2013 farm. Not sure if it is needed. However, Request Management and Throttling rules seem to have a relationship with each other.
  4. Ran BCS throttle config Power shell commands in SP 2013 which also looks OK.

How to protect API that should be accessible to everyone?

I have some API that should be accessible from a very long list of devices (some of them can reach my Oauth2 server and get some token, some of them cannot).

These devices are mobile phones (IOS, Android) and in the future could be any device that has an HTTP client.

But I need to secure my API from everyone.

I’m thinking about some header that calculates from some algorithm including hashing some parts of the request, for example.

But I also think that I’m reinventing the wheel and such a solution already exists.

Some sort of CAPTCHA maybe?

P.S.: Requests to such API will doing not users, but an application doing in the background.