{"id":34,"date":"2025-10-14T18:09:40","date_gmt":"2025-10-14T22:09:40","guid":{"rendered":"https:\/\/beckesch.dev\/ops\/?p=34"},"modified":"2025-11-19T16:53:03","modified_gmt":"2025-11-19T21:53:03","slug":"bash-script-solution-secure-home-directory-mounts-for-shared-pos-systems","status":"publish","type":"post","link":"https:\/\/beckesch.dev\/ops\/2025\/10\/14\/bash-script-solution-secure-home-directory-mounts-for-shared-pos-systems\/","title":{"rendered":"How a 2005 Shell Script Made Secure Home Directory Mounts for Shared POS Systems Possible"},"content":{"rendered":"\n<p>In retail environments, especially in the mid-2000s, shared Windows terminals were a staple of day-to-day operations. At an auto parts store, four shared point-of-sale PCs were used by rotating sales staff\u2014all logged in with a general Windows account for simplicity. However, employees sometimes needed access to their own private home directories from these shared systems. To solve this, a web interface was built\u2014allowing employees to authenticate and choose how long their personal network home directory should be accessible. The real magic, however, happened on the backend: a robust Bash script that mounted and unmounted SMB shares on demand.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">What Does the Script Do?<\/h1>\n\n\n\n<p>The script manages the lifecycle of SMB\/CIFS home directory mounts for authenticated users:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Mounts the user\u2019s personal home directory and selected shared directories<\/strong> on demand, based on credentials provided via the web interface.<\/li>\n\n\n\n<li><strong>Unmounts and cleans up home directories<\/strong> after a time limit, either scheduled automatically via cron or manually (e.g., if the employee logs out early).<\/li>\n\n\n\n<li><strong>Keeps mounts private<\/strong> and removes them after use, avoiding accidental data access by other users on the same shared terminal.<\/li>\n\n\n\n<li><strong>Supports custom mount timeouts<\/strong>, user-initiated disconnection, and robust error handling\/logging.<\/li>\n<\/ul>\n\n\n\n<h1 class=\"wp-block-heading\">Workflow Overview<\/h1>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>User Authentication<\/strong>: A staff member logs in to a web interface, authenticates, and chooses how long to mount their home directory.<\/li>\n\n\n\n<li><strong>Script Invocation<\/strong>: Upon request, the web application calls this Bash script with relevant parameters (user, IP address, password, timeout, and any extra shares to mount).<\/li>\n\n\n\n<li><strong>Mount Operation (<code>checkin<\/code>)<\/strong>: The script creates the necessary mount points, authenticates over SMB to the home server, and securely mounts the user&#8217;s directories.<\/li>\n\n\n\n<li><strong>Active Usage<\/strong>: The home directory is available at a specific network path on the shared PC for the requested period.<\/li>\n\n\n\n<li><strong>Timeout\/Manual Disconnect (<code>checkout<\/code>)<\/strong>: A scheduled cron job (or user action from the web interface) unmounts the home directory when time expires or the user logs out.<\/li>\n\n\n\n<li><strong>Logging and Security<\/strong>: All actions are logged, and the script ensures private directories aren\u2019t left mounted after their expiry.<\/li>\n<\/ol>\n\n\n\n<h1 class=\"wp-block-heading\">How It Works (Key Features)<\/h1>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Mode Selection<\/strong>: The script detects requested action\u2014either mounting (<code>--checkin<\/code>), refreshing timeouts (<code>--refresh<\/code>), or unmounting (<code>--checkout<\/code>).<\/li>\n\n\n\n<li><strong>Permission and Directory Handling<\/strong>: Mounts are stored under <code>\/var\/spool\/samba\/homedir\/<\/code>, segregated by client IP, and use strict permissions (usually group\/owner by sales staff and web server).<\/li>\n\n\n\n<li><strong>Timeout Tracking<\/strong>: For each mount, a timestamp file encodes the user, IP, and timeout. The script reads these to determine when to clean up mounts, ensuring no mount persists longer than intended.<\/li>\n\n\n\n<li><strong>Multiple Shares<\/strong>: Besides the home directory, users can specify additional shares to mount in the same session.<\/li>\n\n\n\n<li><strong>Robust Mounting\/Unmounting<\/strong>: Prevents duplicate mounts, checks for open files before unmounting, and handles forced disconnects or cleanup on error.<\/li>\n\n\n\n<li><strong>Feedback and Logging<\/strong>: Maintains detailed logs per client for audit and troubleshooting.<\/li>\n<\/ul>\n\n\n\n<h1 class=\"wp-block-heading\">How to Use the Script<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Prerequisites<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The script requires <code>smbmount<\/code>\/<code>smbclient<\/code>, standard on Linux systems circa 2005.<\/li>\n\n\n\n<li>The <code>smbmounter.conf<\/code> file lists all available shares and must be configured by the admin.<\/li>\n\n\n\n<li>Users interact via a web interface; the script is not designed for direct command-line interaction by end users.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Operational Steps (Administrator\u2019s Perspective)<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Deploy on Linux host<\/strong> with access to the Samba shares and the client PCs&#8217; shared directory.<\/li>\n\n\n\n<li><strong>Configure <code>smbmounter.conf<\/code><\/strong> to list all allowed shares.<\/li>\n\n\n\n<li><strong>Set up the web interface<\/strong> to call the script with appropriate arguments:\n<ul class=\"wp-block-list\">\n<li><code>--checkin<\/code> to mount user home\/share.<\/li>\n\n\n\n<li><code>--refresh<\/code> to extend or update timeouts.<\/li>\n\n\n\n<li><code>--checkout<\/code> (optionally with <code>--force<\/code>) to disconnect and unmount.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Schedule a cron job<\/strong> to regularly execute the script in <code>--checkout<\/code> mode, so expired mounts are unmounted even if a user leaves without logging out.<\/li>\n\n\n\n<li><strong>Monitor logs<\/strong> for errors, abnormal mount durations, or unauthorized access.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">User Flow (for Employees)<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Log in to the web interface, select desired mount time, and authenticate.<\/li>\n\n\n\n<li>Use Windows Explorer or mapped drives to access the mounted home directory at the shared terminal.<\/li>\n\n\n\n<li>Either let the timeout elapse for automatic unmounting or manually disconnect via the web interface when finished.<\/li>\n<\/ul>\n\n\n\n<h1 class=\"wp-block-heading\">Why This Matters<\/h1>\n\n\n\n<p>This Bash script provided rotating sales staff with seamless, <strong>secure access<\/strong> to their data in an era before \u201ccloud\u201d file management was ubiquitous. It automated private network drive mounting and unmounting without risking data leaks on shared PCs\u2014a clever use of Linux, SMB tools, and scheduling.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Conclusion<\/h1>\n\n\n\n<p>Even now, this approach showcases how scripting can bridge the gap between security, usability, and legacy IT environments. For retail and office environments with shared terminals and rotating users, solutions like this remain instructive for modern systems administration.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In retail environments, especially in the mid-2000s, shared Windows terminals were a staple of day-to-day operations. At an auto parts store, four shared point-of-sale PCs were used by rotating sales staff\u2014all logged in with a general Windows account for simplicity. However, employees sometimes needed access to their own private home directories from these shared systems. &#8230; <a title=\"How a 2005 Shell Script Made Secure Home Directory Mounts for Shared POS Systems Possible\" class=\"read-more\" href=\"https:\/\/beckesch.dev\/ops\/2025\/10\/14\/bash-script-solution-secure-home-directory-mounts-for-shared-pos-systems\/\" aria-label=\"Read more about How a 2005 Shell Script Made Secure Home Directory Mounts for Shared POS Systems Possible\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":35,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[5],"tags":[],"class_list":["post-34","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-from-the-archives"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How a 2005 Shell Script Made Secure Home Directory Mounts for Shared POS Systems Possible - Ralf Beckesch - Devops<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/beckesch.dev\/ops\/2025\/10\/14\/bash-script-solution-secure-home-directory-mounts-for-shared-pos-systems\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How a 2005 Shell Script Made Secure Home Directory Mounts for Shared POS Systems Possible - Ralf Beckesch - Devops\" \/>\n<meta property=\"og:description\" content=\"In retail environments, especially in the mid-2000s, shared Windows terminals were a staple of day-to-day operations. At an auto parts store, four shared point-of-sale PCs were used by rotating sales staff\u2014all logged in with a general Windows account for simplicity. However, employees sometimes needed access to their own private home directories from these shared systems. ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/beckesch.dev\/ops\/2025\/10\/14\/bash-script-solution-secure-home-directory-mounts-for-shared-pos-systems\/\" \/>\n<meta property=\"og:site_name\" content=\"Ralf Beckesch - Devops\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-14T22:09:40+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-19T21:53:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/beckesch.dev\/ops\/wp-content\/uploads\/2025\/10\/IMG-20251014224337857.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"rb\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"rb\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2025\\\/10\\\/14\\\/bash-script-solution-secure-home-directory-mounts-for-shared-pos-systems\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2025\\\/10\\\/14\\\/bash-script-solution-secure-home-directory-mounts-for-shared-pos-systems\\\/\"},\"author\":{\"name\":\"rb\",\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/#\\\/schema\\\/person\\\/90c6e9e800fff61c7ceb65be6ab43b69\"},\"headline\":\"How a 2005 Shell Script Made Secure Home Directory Mounts for Shared POS Systems Possible\",\"datePublished\":\"2025-10-14T22:09:40+00:00\",\"dateModified\":\"2025-11-19T21:53:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2025\\\/10\\\/14\\\/bash-script-solution-secure-home-directory-mounts-for-shared-pos-systems\\\/\"},\"wordCount\":744,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/#\\\/schema\\\/person\\\/90c6e9e800fff61c7ceb65be6ab43b69\"},\"image\":{\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2025\\\/10\\\/14\\\/bash-script-solution-secure-home-directory-mounts-for-shared-pos-systems\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/IMG-20251014224337857.png\",\"articleSection\":[\"From the archives\"],\"inLanguage\":\"en-CA\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2025\\\/10\\\/14\\\/bash-script-solution-secure-home-directory-mounts-for-shared-pos-systems\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2025\\\/10\\\/14\\\/bash-script-solution-secure-home-directory-mounts-for-shared-pos-systems\\\/\",\"url\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2025\\\/10\\\/14\\\/bash-script-solution-secure-home-directory-mounts-for-shared-pos-systems\\\/\",\"name\":\"How a 2005 Shell Script Made Secure Home Directory Mounts for Shared POS Systems Possible - Ralf Beckesch - Devops\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2025\\\/10\\\/14\\\/bash-script-solution-secure-home-directory-mounts-for-shared-pos-systems\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2025\\\/10\\\/14\\\/bash-script-solution-secure-home-directory-mounts-for-shared-pos-systems\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/IMG-20251014224337857.png\",\"datePublished\":\"2025-10-14T22:09:40+00:00\",\"dateModified\":\"2025-11-19T21:53:03+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2025\\\/10\\\/14\\\/bash-script-solution-secure-home-directory-mounts-for-shared-pos-systems\\\/#breadcrumb\"},\"inLanguage\":\"en-CA\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2025\\\/10\\\/14\\\/bash-script-solution-secure-home-directory-mounts-for-shared-pos-systems\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-CA\",\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2025\\\/10\\\/14\\\/bash-script-solution-secure-home-directory-mounts-for-shared-pos-systems\\\/#primaryimage\",\"url\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/IMG-20251014224337857.png\",\"contentUrl\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/IMG-20251014224337857.png\",\"width\":1024,\"height\":1024},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2025\\\/10\\\/14\\\/bash-script-solution-secure-home-directory-mounts-for-shared-pos-systems\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How a 2005 Shell Script Made Secure Home Directory Mounts for Shared POS Systems Possible\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/#website\",\"url\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/\",\"name\":\"Ralf Beckesch - Devops\",\"description\":\"Evolving from linux freak to devops and cloud-native engineer\",\"publisher\":{\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/#\\\/schema\\\/person\\\/90c6e9e800fff61c7ceb65be6ab43b69\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-CA\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/#\\\/schema\\\/person\\\/90c6e9e800fff61c7ceb65be6ab43b69\",\"name\":\"rb\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-CA\",\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/cropped-fotor-ai-20231018165442.jpg\",\"url\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/cropped-fotor-ai-20231018165442.jpg\",\"contentUrl\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/cropped-fotor-ai-20231018165442.jpg\",\"width\":1534,\"height\":307,\"caption\":\"rb\"},\"logo\":{\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/cropped-fotor-ai-20231018165442.jpg\"},\"sameAs\":[\"https:\\\/\\\/beckesch.dev\\\/ops\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/ralf-beckesch\\\/\"],\"url\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/author\\\/rbadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How a 2005 Shell Script Made Secure Home Directory Mounts for Shared POS Systems Possible - Ralf Beckesch - Devops","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/beckesch.dev\/ops\/2025\/10\/14\/bash-script-solution-secure-home-directory-mounts-for-shared-pos-systems\/","og_locale":"en_US","og_type":"article","og_title":"How a 2005 Shell Script Made Secure Home Directory Mounts for Shared POS Systems Possible - Ralf Beckesch - Devops","og_description":"In retail environments, especially in the mid-2000s, shared Windows terminals were a staple of day-to-day operations. At an auto parts store, four shared point-of-sale PCs were used by rotating sales staff\u2014all logged in with a general Windows account for simplicity. However, employees sometimes needed access to their own private home directories from these shared systems. ... Read more","og_url":"https:\/\/beckesch.dev\/ops\/2025\/10\/14\/bash-script-solution-secure-home-directory-mounts-for-shared-pos-systems\/","og_site_name":"Ralf Beckesch - Devops","article_published_time":"2025-10-14T22:09:40+00:00","article_modified_time":"2025-11-19T21:53:03+00:00","og_image":[{"width":1024,"height":1024,"url":"https:\/\/beckesch.dev\/ops\/wp-content\/uploads\/2025\/10\/IMG-20251014224337857.png","type":"image\/png"}],"author":"rb","twitter_card":"summary_large_image","twitter_misc":{"Written by":"rb","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/beckesch.dev\/ops\/2025\/10\/14\/bash-script-solution-secure-home-directory-mounts-for-shared-pos-systems\/#article","isPartOf":{"@id":"https:\/\/beckesch.dev\/ops\/2025\/10\/14\/bash-script-solution-secure-home-directory-mounts-for-shared-pos-systems\/"},"author":{"name":"rb","@id":"https:\/\/beckesch.dev\/ops\/#\/schema\/person\/90c6e9e800fff61c7ceb65be6ab43b69"},"headline":"How a 2005 Shell Script Made Secure Home Directory Mounts for Shared POS Systems Possible","datePublished":"2025-10-14T22:09:40+00:00","dateModified":"2025-11-19T21:53:03+00:00","mainEntityOfPage":{"@id":"https:\/\/beckesch.dev\/ops\/2025\/10\/14\/bash-script-solution-secure-home-directory-mounts-for-shared-pos-systems\/"},"wordCount":744,"commentCount":0,"publisher":{"@id":"https:\/\/beckesch.dev\/ops\/#\/schema\/person\/90c6e9e800fff61c7ceb65be6ab43b69"},"image":{"@id":"https:\/\/beckesch.dev\/ops\/2025\/10\/14\/bash-script-solution-secure-home-directory-mounts-for-shared-pos-systems\/#primaryimage"},"thumbnailUrl":"https:\/\/beckesch.dev\/ops\/wp-content\/uploads\/2025\/10\/IMG-20251014224337857.png","articleSection":["From the archives"],"inLanguage":"en-CA","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/beckesch.dev\/ops\/2025\/10\/14\/bash-script-solution-secure-home-directory-mounts-for-shared-pos-systems\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/beckesch.dev\/ops\/2025\/10\/14\/bash-script-solution-secure-home-directory-mounts-for-shared-pos-systems\/","url":"https:\/\/beckesch.dev\/ops\/2025\/10\/14\/bash-script-solution-secure-home-directory-mounts-for-shared-pos-systems\/","name":"How a 2005 Shell Script Made Secure Home Directory Mounts for Shared POS Systems Possible - Ralf Beckesch - Devops","isPartOf":{"@id":"https:\/\/beckesch.dev\/ops\/#website"},"primaryImageOfPage":{"@id":"https:\/\/beckesch.dev\/ops\/2025\/10\/14\/bash-script-solution-secure-home-directory-mounts-for-shared-pos-systems\/#primaryimage"},"image":{"@id":"https:\/\/beckesch.dev\/ops\/2025\/10\/14\/bash-script-solution-secure-home-directory-mounts-for-shared-pos-systems\/#primaryimage"},"thumbnailUrl":"https:\/\/beckesch.dev\/ops\/wp-content\/uploads\/2025\/10\/IMG-20251014224337857.png","datePublished":"2025-10-14T22:09:40+00:00","dateModified":"2025-11-19T21:53:03+00:00","breadcrumb":{"@id":"https:\/\/beckesch.dev\/ops\/2025\/10\/14\/bash-script-solution-secure-home-directory-mounts-for-shared-pos-systems\/#breadcrumb"},"inLanguage":"en-CA","potentialAction":[{"@type":"ReadAction","target":["https:\/\/beckesch.dev\/ops\/2025\/10\/14\/bash-script-solution-secure-home-directory-mounts-for-shared-pos-systems\/"]}]},{"@type":"ImageObject","inLanguage":"en-CA","@id":"https:\/\/beckesch.dev\/ops\/2025\/10\/14\/bash-script-solution-secure-home-directory-mounts-for-shared-pos-systems\/#primaryimage","url":"https:\/\/beckesch.dev\/ops\/wp-content\/uploads\/2025\/10\/IMG-20251014224337857.png","contentUrl":"https:\/\/beckesch.dev\/ops\/wp-content\/uploads\/2025\/10\/IMG-20251014224337857.png","width":1024,"height":1024},{"@type":"BreadcrumbList","@id":"https:\/\/beckesch.dev\/ops\/2025\/10\/14\/bash-script-solution-secure-home-directory-mounts-for-shared-pos-systems\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/beckesch.dev\/ops\/"},{"@type":"ListItem","position":2,"name":"How a 2005 Shell Script Made Secure Home Directory Mounts for Shared POS Systems Possible"}]},{"@type":"WebSite","@id":"https:\/\/beckesch.dev\/ops\/#website","url":"https:\/\/beckesch.dev\/ops\/","name":"Ralf Beckesch - Devops","description":"Evolving from linux freak to devops and cloud-native engineer","publisher":{"@id":"https:\/\/beckesch.dev\/ops\/#\/schema\/person\/90c6e9e800fff61c7ceb65be6ab43b69"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/beckesch.dev\/ops\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-CA"},{"@type":["Person","Organization"],"@id":"https:\/\/beckesch.dev\/ops\/#\/schema\/person\/90c6e9e800fff61c7ceb65be6ab43b69","name":"rb","image":{"@type":"ImageObject","inLanguage":"en-CA","@id":"https:\/\/beckesch.dev\/ops\/wp-content\/uploads\/2025\/09\/cropped-fotor-ai-20231018165442.jpg","url":"https:\/\/beckesch.dev\/ops\/wp-content\/uploads\/2025\/09\/cropped-fotor-ai-20231018165442.jpg","contentUrl":"https:\/\/beckesch.dev\/ops\/wp-content\/uploads\/2025\/09\/cropped-fotor-ai-20231018165442.jpg","width":1534,"height":307,"caption":"rb"},"logo":{"@id":"https:\/\/beckesch.dev\/ops\/wp-content\/uploads\/2025\/09\/cropped-fotor-ai-20231018165442.jpg"},"sameAs":["https:\/\/beckesch.dev\/ops","https:\/\/www.linkedin.com\/in\/ralf-beckesch\/"],"url":"https:\/\/beckesch.dev\/ops\/author\/rbadmin\/"}]}},"jetpack_featured_media_url":"https:\/\/beckesch.dev\/ops\/wp-content\/uploads\/2025\/10\/IMG-20251014224337857.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/beckesch.dev\/ops\/wp-json\/wp\/v2\/posts\/34","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/beckesch.dev\/ops\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/beckesch.dev\/ops\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/beckesch.dev\/ops\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/beckesch.dev\/ops\/wp-json\/wp\/v2\/comments?post=34"}],"version-history":[{"count":4,"href":"https:\/\/beckesch.dev\/ops\/wp-json\/wp\/v2\/posts\/34\/revisions"}],"predecessor-version":[{"id":43,"href":"https:\/\/beckesch.dev\/ops\/wp-json\/wp\/v2\/posts\/34\/revisions\/43"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/beckesch.dev\/ops\/wp-json\/wp\/v2\/media\/35"}],"wp:attachment":[{"href":"https:\/\/beckesch.dev\/ops\/wp-json\/wp\/v2\/media?parent=34"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/beckesch.dev\/ops\/wp-json\/wp\/v2\/categories?post=34"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/beckesch.dev\/ops\/wp-json\/wp\/v2\/tags?post=34"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}