# chmod

Published articles for chmod.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Kubernetes v1.37: Hardening Container Storage with Bind Mount Options and EmptyDir Permissions

DevFeed: [Kubernetes v1.37: Hardening Container Storage with Bind Mount Options and EmptyDir Permissions](<https://devfeed.tech/articles/kubernetes-v1-37-hardening-container-storage-with-bind-mount-options-and-emptydir-permissions-31483.md>)

Original publisher: [Read original article](<https://kubernetes.io/blog/2026/09/16/kubernetes-v1-37-hardening-container-storage/>)

Author: Nispriha Jagan; Neeraj Krishna Gopalakrishna

Published: 2026-09-16T18:30:00Z

Content type: article

Language: en

Sources: [Kubernetes Blog](<https://devfeed.tech/sources/kubernetes-blog.md>)

Topics: [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [Security](<https://devfeed.tech/topics/security.md>), [mount](<https://devfeed.tech/topics/mount.md>), [Filesystems](<https://devfeed.tech/topics/filesystems.md>), [chmod](<https://devfeed.tech/topics/chmod.md>), [Unix](<https://devfeed.tech/topics/unix.md>)

Tags: [chmod](<https://devfeed.tech/tags/chmod.md>), [container](<https://devfeed.tech/tags/container.md>), [containers](<https://devfeed.tech/tags/containers.md>), [filesystem](<https://devfeed.tech/tags/filesystem.md>), [hardening](<https://devfeed.tech/tags/hardening.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [linux](<https://devfeed.tech/tags/linux.md>), [mount](<https://devfeed.tech/tags/mount.md>), [permissions](<https://devfeed.tech/tags/permissions.md>), [storage](<https://devfeed.tech/tags/storage.md>), [volume](<https://devfeed.tech/tags/volume.md>), [volumes](<https://devfeed.tech/tags/volumes.md>)

### AI overview

Kubernetes v1.37 adds bind mount options and emptyDir permission modes to strengthen storage security. The article explains how noexec, nosuid, nodev, Unix permissions, and the sticky bit can help enforce security policies on writable volumes.

### Source excerpt

Kubernetes v1.37 brings important storage security features: emptyDir permission modes and bind mount options. They help application programmers and security professionals implement rigorous security policies, for example, prohibiting deletion of files across containers or execution of arbitrary binaries from writable volumes, directly in Kubernetes without any complicated circumvention. Linux storage and permission fundamentals Before diving into the new Kubernetes features, let us briefly review the low-level Linux security mechanisms that make them possible. Bind mount flags When Linux mounts or remounts a directory, Virtual File System (VFS) flags control what actions are permitted on that filesystem: noexec: Do not permit direct execution of any binaries on the mounted filesystem. nosuid: Do not allow set-user-identifier or set-group-identifier bits to take effect. nodev: Do not interpret character or block special devices on the file system. Directory permissions and the sticky bit Standard Unix permissions regulate access across three scopes: Owner, Group, and Others (e.g., 0755 or 0777). Beyond standard read, write, and execute bits, Linux supports the sticky bit (as in mode 01777). When applied to a directory, the sticky bit ensures that a file inside that directory can only be deleted or renamed by the file's owner or root. This is essential for shared writable directories like /tmp. Motivation for the improvements Why does Kubernetes need bind mount options and emptyDir permissions? The primary goal of these features is to increase the security of Kubernetes workloads by allowing security-related bind mount options on volume mounts. By default, volumes are bind-mounted into containers by the container runtime and kubelet without noexec, nosuid, or nodev flags. This default can undermine security. For example, with noexec missing, a compromised process can use any writable volume (emptyDir, PersistentVolume, etc.) to download, chmod +x, and execute arbitra

## GNU Coreutils 9.12 Released With Performance Optimizations, New uname Option

DevFeed: [GNU Coreutils 9.12 Released With Performance Optimizations, New uname Option](<https://devfeed.tech/articles/gnu-coreutils-9-12-released-with-performance-optimizations-new-uname-option-17444.md>)

Original publisher: [Read original article](<https://www.phoronix.com/news/GNU-Coreutils-9.12>)

Author: Michael Larabel

Published: 2026-09-14T17:45:05Z

Content type: news

Language: en

Sources: [Phoronix](<https://devfeed.tech/sources/phoronix.md>)

Topics: [systems](<https://devfeed.tech/topics/systems.md>), [Filesystems](<https://devfeed.tech/topics/filesystems.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [bug](<https://devfeed.tech/topics/bug.md>), [chmod](<https://devfeed.tech/topics/chmod.md>), [ls](<https://devfeed.tech/topics/ls.md>)

Tags: [bug](<https://devfeed.tech/tags/bug.md>), [chmod](<https://devfeed.tech/tags/chmod.md>), [core](<https://devfeed.tech/tags/core.md>), [desktop-linux](<https://devfeed.tech/tags/desktop-linux.md>), [linux-benchmarking](<https://devfeed.tech/tags/linux-benchmarking.md>), [linux-hardware-benchmarks](<https://devfeed.tech/tags/linux-hardware-benchmarks.md>), [linux-hardware-reviews](<https://devfeed.tech/tags/linux-hardware-reviews.md>), [linux-how-to](<https://devfeed.tech/tags/linux-how-to.md>), [linux-performance](<https://devfeed.tech/tags/linux-performance.md>), [linux-server-benchmarks](<https://devfeed.tech/tags/linux-server-benchmarks.md>), [ls](<https://devfeed.tech/tags/ls.md>), [open-source-graphics](<https://devfeed.tech/tags/open-source-graphics.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [performance](<https://devfeed.tech/tags/performance.md>), [phoronix](<https://devfeed.tech/tags/phoronix.md>), [phoronix-test-suite](<https://devfeed.tech/tags/phoronix-test-suite.md>), [release](<https://devfeed.tech/tags/release.md>), [systems](<https://devfeed.tech/tags/systems.md>), [ubuntu-benchmarks](<https://devfeed.tech/tags/ubuntu-benchmarks.md>), [ubuntu-hardware](<https://devfeed.tech/tags/ubuntu-hardware.md>)

### AI overview

GNU Coreutils 9.12 fixes recursive traversal failures when files are removed concurrently, adds FailFS and NULLFS support to stat and tail, and introduces new uname labeling options. It also improves performance in cut, uniq, and sort, adds a copy fallback for cp, install, and mv, and includes additional bug fixes and warnings.

### Source excerpt

GNU Coreutils 9.12 released today with a mix of fixes, some new options, and various performance improvements to these widely-used set of core system utilities...

## Sandbox SDK adds file permission control

DevFeed: [Sandbox SDK adds file permission control](<https://devfeed.tech/articles/sandbox-sdk-adds-file-permission-control-1082.md>)

Original publisher: [Read original article](<https://vercel.com/changelog/sandbox-sdk-file-permissions>)

Author: Luke Phillips-Sheard

Published: 2026-03-20T00:00:00Z

Content type: release

Language: en

Sources: [Vercel News](<https://devfeed.tech/sources/vercel-news.md>)

Topics: [SDKs](<https://devfeed.tech/topics/sdks.md>), [Vercel](<https://devfeed.tech/topics/vercel.md>), [API](<https://devfeed.tech/topics/api.md>), [chmod](<https://devfeed.tech/topics/chmod.md>), [Script](<https://devfeed.tech/topics/script.md>), [Authorization](<https://devfeed.tech/topics/authorization.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [chmod](<https://devfeed.tech/tags/chmod.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [sandbox](<https://devfeed.tech/tags/sandbox.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [vercel](<https://devfeed.tech/tags/vercel.md>)

### AI overview

Vercel Sandbox SDK 1.9.0 adds direct file-permission control when writing files through the writeFiles API. A mode property lets developers set permissions in the same operation, avoiding an extra chmod execution round trip.

### Source excerpt

Vercel Sandbox SDK 1.9.0 now supports setting file permissions directly when writing files. By passing a mode property to the writeFiles API, you can define permissions in a single operation. This eliminates the need for an additional chmod execution round-trip when creating executable scripts or managing access rights inside the sandbox. See the documentation to learn more. Read more

## Permisos en Linux: chmod, chown y ACLs explicados

DevFeed: [Permisos en Linux: chmod, chown y ACLs explicados](<https://devfeed.tech/articles/permisos-en-linux-chmod-chown-y-acls-explicados-34073.md>)

Original publisher: [Read original article](<https://tengoping.com/blog/permisos-linux-chmod-chown-acl/>)

Author: Antonio Pérez

Published: 2026-01-18T00:00:00Z

Content type: tutorial

Language: es

Sources: [tengoping.com](<https://devfeed.tech/sources/tengoping-com.md>)

Topics: [Linux](<https://devfeed.tech/topics/linux.md>), [chmod](<https://devfeed.tech/topics/chmod.md>), [Kernel](<https://devfeed.tech/topics/kernel.md>)

Tags: [chmod](<https://devfeed.tech/tags/chmod.md>), [kernel](<https://devfeed.tech/tags/kernel.md>), [linux](<https://devfeed.tech/tags/linux.md>), [octal](<https://devfeed.tech/tags/octal.md>), [permission](<https://devfeed.tech/tags/permission.md>), [ssh](<https://devfeed.tech/tags/ssh.md>)

### AI overview

A Spanish-language tutorial explains Linux file permissions, including owner/group/others resolution, directory access semantics, octal and symbolic chmod notation, recursive chmod pitfalls, SSH private-key permissions, ACL masks, umask, and extended attributes.

### Source excerpt

Permisos en Linux en profundidad: cómo se resuelven owner/group/others, umask, la trampa de chmod -R, ACLs con mask y chattr.

## What Is SELinux?

DevFeed: [What Is SELinux?](<https://devfeed.tech/articles/what-is-selinux-4516.md>)

Original publisher: [Read original article](<https://feeds.feedblitz.com/~/919939004/0/baeldung/linux~What-Is-SELinux>)

Author: Zachary Bouhannana

Published: 2025-06-09T04:53:08Z

Content type: tutorial

Language: en

Sources: [Baeldung - Linux](<https://devfeed.tech/sources/baeldung-linux.md>)

Topics: [SELinux](<https://devfeed.tech/topics/selinux.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Security](<https://devfeed.tech/topics/security.md>), [Processes](<https://devfeed.tech/topics/processes.md>), [Operating system](<https://devfeed.tech/topics/operating-system.md>)

Tags: [access-control](<https://devfeed.tech/tags/access-control.md>), [administration](<https://devfeed.tech/tags/administration.md>), [administration-security-chmod-ls-selinux](<https://devfeed.tech/tags/administration-security-chmod-ls-selinux.md>), [chmod](<https://devfeed.tech/tags/chmod.md>), [linux](<https://devfeed.tech/tags/linux.md>), [ls](<https://devfeed.tech/tags/ls.md>), [processes](<https://devfeed.tech/tags/processes.md>), [security](<https://devfeed.tech/tags/security.md>), [selinux](<https://devfeed.tech/tags/selinux.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

This tutorial explains SELinux, a security module built into the Linux kernel that adds mandatory access control beyond traditional Unix-style permissions. It describes how SELinux policies govern interactions between processes, users, and system resources, including limiting actions by root, and contrasts this model with discretionary access control.

### Source excerpt

Learn what SELinux is, how it works, and the way it can provide better security when paired with the common discretionary access control. The post What Is SELinux? first appeared on Baeldung on Linux. Related Stories Sending a Password via SSH or SCP Using subprocess.Popen in Linux Resolving the Reverse Tunnel Remote port forwarding failed for listen port SSH Error How to Fix USB Sticks Mounted as Read-Only

## Getting NuShell Usable Under OSX for Myself

DevFeed: [Getting NuShell Usable Under OSX for Myself](<https://devfeed.tech/articles/getting-nushell-usable-under-osx-for-myself-28205.md>)

Original publisher: [Read original article](<http://fuzzyblog.io/blog/nushell/2022/07/17/getting-nushell-usable-under-osx-for-myself.html>)

Author: Fuzzygroup

Published: 2022-07-17T15:20:00Z

Content type: tutorial

Language: en

Sources: [Scott Johnson](<https://devfeed.tech/sources/scott-johnson.md>)

Topics: [Shell](<https://devfeed.tech/topics/shell.md>), [osx](<https://devfeed.tech/topics/osx.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Homebrew](<https://devfeed.tech/topics/homebrew.md>), [Terminal](<https://devfeed.tech/topics/terminal.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [chmod](<https://devfeed.tech/topics/chmod.md>)

Tags: [bash](<https://devfeed.tech/tags/bash.md>), [blog-post](<https://devfeed.tech/tags/blog-post.md>), [chmod](<https://devfeed.tech/tags/chmod.md>), [coding](<https://devfeed.tech/tags/coding.md>), [commands](<https://devfeed.tech/tags/commands.md>), [config](<https://devfeed.tech/tags/config.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [install](<https://devfeed.tech/tags/install.md>), [nushell](<https://devfeed.tech/tags/nushell.md>), [osx](<https://devfeed.tech/tags/osx.md>), [rust](<https://devfeed.tech/tags/rust.md>), [shell](<https://devfeed.tech/tags/shell.md>), [terminal](<https://devfeed.tech/tags/terminal.md>)

### AI overview

A practical guide to making NuShell usable as a daily shell on OSX Monterey. It covers changing the default shell, preserving Bash history, fixing Homebrew path access, configuring persistent environment settings, and defining aliases.

### Source excerpt

Pizza courtesy of Pizza for Ukraine! Donate Now to Pizza for Ukraine As I've written, I'm acutely interested in using software written in Rust as my daily drivers. What I've seen so far is that programs written in Rust, based on an admittedly tiny sample, seem to be higher quality than programs not written in Rust. In this blog post, I'm going to talk about what I had to do to make NuShell be usable for myself under OSX Monterey. To be perfectly honest, I don't know if my experiences are normal or not. I seem to have a high personal level of entropy with respect to software and it appears that at least sometimes this level of entropy causes bugs. This is the main reason that I document things so dogmatically - I often need to refer to my own blog. Step 00: Changing Your Shell to NuShell After you install NuShell, you are left a bit on your own. You can invoke it via the nu command but what you really want is it to come up as the default shell. This is done with chsh: sudo chsh -s /usr/local/bin/nu sjohnson NOTE: DO NOT CLOSE ALL YOUR OLD TERMINALS!!! If you are like me and are heavily reliant on history then you want to do this in an existing Bash / Zshell / Fish / Whatever terminal window: history > ~/history_old.txt chmod +r ~/history_old.txt Yes - I think that strongly about history that I want this read only so it doesn't get killed inadvertently. Step 01: Getting Brew to Function After you switch over to using NuShell, you may find that programs like brew aren't found. This is a path issue (isn't everything???). Here's an example: /Users/sjohnson/Sync/coding/flow_analytics〉brew 07/17/2022 10:59:12 AM Error: nu::shell::external_command (link) x External command ╭─[entry #11:1:1] 1 │ brew - ──┬─ - ╰── can't run executable ╰──── help: No such file or directory (os error 2) The solution is to add brew's path into the NuShell environment. Back in your old shell window, type: Sync/coding/flow_analytics on ☁ (us-west-2) ❯ which brew /usr/local/bin/brew This tells us

## Treating Dockerfiles as shell scripts

DevFeed: [Treating Dockerfiles as shell scripts](<https://devfeed.tech/articles/treating-dockerfiles-as-shell-scripts-20980.md>)

Original publisher: [Read original article](<https://jakewharton.com/treating-dockerfiles-as-shell-scripts/>)

Published: 2020-12-03T00:00:00Z

Content type: tutorial

Language: en

Sources: [Jake Wharton](<https://devfeed.tech/sources/jake-wharton.md>)

Topics: [Dockerfile](<https://devfeed.tech/topics/dockerfile.md>), [Docker](<https://devfeed.tech/topics/docker.md>), [Containers](<https://devfeed.tech/topics/containers.md>), [Scripting, bash](<https://devfeed.tech/topics/scripting-bash.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Tool](<https://devfeed.tech/topics/tool.md>)

Tags: [bash](<https://devfeed.tech/tags/bash.md>), [chmod](<https://devfeed.tech/tags/chmod.md>), [containers](<https://devfeed.tech/tags/containers.md>), [docker](<https://devfeed.tech/tags/docker.md>), [dockerfiles](<https://devfeed.tech/tags/dockerfiles.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [tools](<https://devfeed.tech/tags/tools.md>), [usability](<https://devfeed.tech/tags/usability.md>)

### AI overview

The article presents a utility that lets executable Dockerfiles behave like shell scripts. A shebang invokes a helper that conditionally runs docker build and then docker run, improving the edit-and-run workflow for containerized tools.

### Source excerpt

I use Docker to run a lot of tools. With the tools all wrapped up in containers, my computers are free of Python and Go and the various other dependencies needed for their use. While this is a nice win for isolation and reproducibility, the user experience is sub-par. To run a tool, I just use docker run: $ docker run --rm tool arguments... But the editing workflow is something like: $ nano tool.dockerfile # hack hack hack... $ docker build -t tool - < tool.dockerfile $ docker run --rm tool arguments... I also use a lot of bash scripts with easy-to-remember names. To run a script I just type its name: ./update_containers.sh. To edit, I open it in an editor, save, and then run. The user experience of this is top-notch! Can we combine the two? Executable Dockerfiles If the first line of an executable starts with #!, unix-y systems will treat what follows on that line as an executable for interpreting the rest of the file. This is called the shebang, and the bash scripts I use start with one: #!/usr/bin/env bash. In order to do this with a Dockerfile, though, we need a program which will conditionally run docker build and then docker run the resulting image. Thankfully docker build is already conditional and won't rebuild anything unless necessary, so we can always run it. #!/usr/bin/env bash NAME=$(basename "$1") docker build -t "$NAME" - < "$1" > /dev/null shift # Remove script name from arguments docker run --rm --name "$NAME" "$NAME" "$@" With this saved as dockerfile-shebang.sh, we can add it as the shebang in a Dockerfile. #!/path/to/dockerfile-shebang.sh FROM alpine:latest ENTRYPOINT ["echo"] Saving this as echo.dockerfile and running chmod +x echo.dockerfile provides the user experience we're after: $ ./echo.dockerfile Hello, world! Hello, world! It's Dockerfile-Shebang! I have wrapped up this utility into an executable, dockerfile-shabang. You can find it at github.com/JakeWharton/dockerfile-shebang. The implementation is a bit more complicated than above for

## Migrating a JS project from Travis to GitHub Actions

DevFeed: [Migrating a JS project from Travis to GitHub Actions](<https://devfeed.tech/articles/migrating-a-js-project-from-travis-to-github-actions-19083.md>)

Original publisher: [Read original article](<https://httptoolkit.com/blog/migrating-javascript-from-travis-to-github-actions/>)

Author: HTTP Toolkit; Tim Perry

Published: 2020-10-27T11:45:00Z

Content type: tutorial

Language: en

Sources: [HTTP Toolkit](<https://devfeed.tech/sources/http-toolkit.md>)

Topics: [GitHub Actions](<https://devfeed.tech/topics/github-actions.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [TypeScript](<https://devfeed.tech/topics/typescript.md>), [ci](<https://devfeed.tech/topics/ci.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Chrome](<https://devfeed.tech/topics/chrome.md>), [Puppeteer](<https://devfeed.tech/topics/puppeteer.md>), [npm](<https://devfeed.tech/topics/npm.md>), [chmod](<https://devfeed.tech/topics/chmod.md>)

Tags: [chmod](<https://devfeed.tech/tags/chmod.md>), [chrome](<https://devfeed.tech/tags/chrome.md>), [ci](<https://devfeed.tech/tags/ci.md>), [cli](<https://devfeed.tech/tags/cli.md>), [github-actions](<https://devfeed.tech/tags/github-actions.md>), [js](<https://devfeed.tech/tags/js.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [testing](<https://devfeed.tech/tags/testing.md>), [travis](<https://devfeed.tech/tags/travis.md>), [typescript](<https://devfeed.tech/tags/typescript.md>)

### AI overview

This tutorial explains how to migrate a JavaScript/TypeScript project from Travis to GitHub Actions. It uses an HTTP Toolkit UI repository as an example, covering Node.js version selection, Chrome and XVFB setup for Puppeteer and Karma tests, dependency installation with npm ci, and test execution with npm test. It also discusses reproducing the cloud CI environment locally to debug environment-specific failures.

### Source excerpt

Travis has been the most popular place to build open-source code for a long time, but the world is moving on. GitHub Actions is modern, tightly integrated with the most popular code hosting platform in the world, flexible, fast, and free (for public repos). Travis has been popular for years though, there's still a lot of projects being built there, including many of HTTP Toolkit's own repos. Last week, I decided to bite the bullet, and start migrating. Travis was having a particularly bad build backlog day, and HTTP Toolkit is entirely open source on GitHub already, so it's super convenient. I've been looking longingly at GitHub Actions builds on other projects for a little while, and I'd already seen lots of useful extensions in the marketplace of drop-in action steps that'd make my life much easier. Unfortunately, I knew very little about GitHub actions, and I already had some Travis configuration that worked. In this post, I want to share how I converted my JavaScript (well, TypeScript) build from Travis to GitHub, so you can do the same. The Goal I decided to start with the simplest Travis setup I had: the HTTP Toolkit UI repo. Here's the previous travis.yml file: dist: xenial sudo: required language: node_js node_js: - '14' install: - npm ci services: - xvfb before_script: - sudo chown root /opt/google/chrome/chrome-sandbox - sudo chmod 4755 /opt/google/chrome/chrome-sandbox script: - npm test addons: chrome: stable There's a few notable things here: I want to build with a specific node version. I need Chrome & XVFB installed for testing with Puppeteer & Karma. There's some existing workarounds (before_script) for Travis.yml in here. The build itself is just npm ci to install dependencies and then npm test. Although not shown here, some of the npm dependencies include native node extensions, and need a working native build environment. One other feature I'd really like, and which I'd strongly recommend for everybody, is the option to run an equivalent CI enviro

## Fixing zsh Compaudit Problem on OSX Catalina

DevFeed: [Fixing zsh Compaudit Problem on OSX Catalina](<https://devfeed.tech/articles/fixing-zsh-compaudit-problem-on-osx-catalina-28211.md>)

Original publisher: [Read original article](<http://fuzzyblog.io/blog/osx/2020/06/04/fixing-zsh-compaudit-problem-on-osx-catalina.html>)

Author: Fuzzygroup

Published: 2020-06-04T00:00:00Z

Content type: tutorial

Language: en

Sources: [Scott Johnson](<https://devfeed.tech/sources/scott-johnson.md>)

Topics: [Zsh](<https://devfeed.tech/topics/zsh.md>), [chmod](<https://devfeed.tech/topics/chmod.md>), [osx](<https://devfeed.tech/topics/osx.md>), [Shell](<https://devfeed.tech/topics/shell.md>)

Tags: [catalina](<https://devfeed.tech/tags/catalina.md>), [chmod](<https://devfeed.tech/tags/chmod.md>), [osx](<https://devfeed.tech/tags/osx.md>), [shell](<https://devfeed.tech/tags/shell.md>), [zsh](<https://devfeed.tech/tags/zsh.md>)

### AI overview

A troubleshooting article about resolving zsh compinit's insecure-directories warning on OSX Catalina. It identifies directory permissions as the issue and gives the command `compaudit | xargs chmod g-w`, reported to fix the problem.

### Source excerpt

Ever since OSX Catalina, every time I open a new shell window I get this error: zsh compinit: insecure directories, run compaudit for list. Ignore insecure directories and continue [y] or abort compinit [n]? y (eval):32: command not found: complete The issue with complete isn't the problem here - it is the insecure directories issue. After a bunch of googling, I found this command: compaudit | xargs chmod g-w which fixed the issue entirely.

## Verify your Linux Kernel for Container Compatibility

DevFeed: [Verify your Linux Kernel for Container Compatibility](<https://devfeed.tech/articles/verify-your-linux-kernel-for-container-compatibility-29476.md>)

Original publisher: [Read original article](<https://blog.hypriot.com/post/verify-kernel-container-compatibility/>)

Published: 2019-04-28T15:48:50Z

Content type: tutorial

Language: en

Sources: [Hypriot](<https://devfeed.tech/sources/hypriot.md>)

Topics: [Linux Kernel](<https://devfeed.tech/topics/linux-kernel.md>), [Containers](<https://devfeed.tech/topics/containers.md>), [Docker](<https://devfeed.tech/topics/docker.md>), [Bash](<https://devfeed.tech/topics/bash.md>), [Script](<https://devfeed.tech/topics/script.md>), [systems](<https://devfeed.tech/topics/systems.md>), [Raspberry Pi](<https://devfeed.tech/topics/raspberry-pi.md>)

Tags: [bash](<https://devfeed.tech/tags/bash.md>), [chmod](<https://devfeed.tech/tags/chmod.md>), [command](<https://devfeed.tech/tags/command.md>), [containers](<https://devfeed.tech/tags/containers.md>), [docker](<https://devfeed.tech/tags/docker.md>), [github](<https://devfeed.tech/tags/github.md>), [linux](<https://devfeed.tech/tags/linux.md>), [linux-kernel](<https://devfeed.tech/tags/linux-kernel.md>), [raspberry-pi](<https://devfeed.tech/tags/raspberry-pi.md>), [script](<https://devfeed.tech/tags/script.md>)

### AI overview

This tutorial explains how to check whether a Linux kernel has the settings required for running containers, with particular attention to embedded devices. It demonstrates the Docker/Moby check-config.sh Bash script, which tests a running kernel or a kernel .config file and can support remote verification.

### Source excerpt

Are you sure whether your Linux kernel is able to run Containers in an optimal way, or if there are still some missing kernel settings which will lead to some strange issues in the future? Normally you don't have to bother about this question. When you're using Docker and Containers on a modern Linux system or on a public cloud offering, this has been already optimized by the Linux distribution or your cloud provider. But when you start using Containers on Embedded Devices you should verify this carefully. So, let's learn how easy it is to verify it by yourself... How can I verify the Linux Kernel for Container Compatibility? Typically this is really an easy task, as soon as you know the right tools. For running Containers you'll need some basic settings applied to your Linux kernel. Some settings are mandatory and some others are optional and only used for specific use cases. But let's see how we can use the right tools. At the Docker open source project you can find a great bash script which does all these tests on your Linux kernel configuration and tells you within a few seconds all the required details. The script is able to read the kernel config live from a running kernel or directly from a kernel .config file as well. Now you can imagine you can verify the container compatibility also from a remote device. Download check-config.sh script Let's download the bash script check-config.sh directly from the Moby project (yes, this is the new name for the Docker open source project). $ wget https://github.com/moby/moby/raw/master/contrib/check-config.sh $ chmod +x check-config.sh Verify the Linux Kernel directly If you have your Linux system available you can download and run the script directly without any parameters. $ ./check-config.sh Then you'll get a detailled output with all kernel settings which are important for running containers. If you want to verify a kernel from a remote system, you could also first extract the Linux kernel config on this system and ana

## Uploading EC2 Logs to S3 on Shutdown

DevFeed: [Uploading EC2 Logs to S3 on Shutdown](<https://devfeed.tech/articles/uploading-ec2-logs-to-s3-on-shutdown-26526.md>)

Original publisher: [Read original article](<http://engineering.curalate.com/2018/09/04/ec2-log-upload.html>)

Published: 2018-09-04T08:56:00Z

Content type: tutorial

Language: en

Sources: [Curalate](<https://devfeed.tech/sources/curalate.md>)

Topics: [Amazon EC2](<https://devfeed.tech/topics/amazon-ec2.md>), [Amazon S3](<https://devfeed.tech/topics/amazon-s3.md>), [Amazon Web Services](<https://devfeed.tech/topics/aws.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Bash](<https://devfeed.tech/topics/bash.md>), [Ubuntu](<https://devfeed.tech/topics/ubuntu.md>), [chmod](<https://devfeed.tech/topics/chmod.md>), [cURL](<https://devfeed.tech/topics/curl.md>), [SIEM, Security, Observability](<https://devfeed.tech/topics/siem-security-observability.md>), [C++](<https://devfeed.tech/topics/c-plus-plus.md>)

Tags: [aws](<https://devfeed.tech/tags/aws.md>), [bash](<https://devfeed.tech/tags/bash.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [chmod](<https://devfeed.tech/tags/chmod.md>), [curl](<https://devfeed.tech/tags/curl.md>), [ec2](<https://devfeed.tech/tags/ec2.md>), [linux](<https://devfeed.tech/tags/linux.md>), [logging](<https://devfeed.tech/tags/logging.md>), [logs](<https://devfeed.tech/tags/logs.md>), [s3](<https://devfeed.tech/tags/s3.md>), [script](<https://devfeed.tech/tags/script.md>), [ubuntu](<https://devfeed.tech/tags/ubuntu.md>)

### AI overview

This tutorial shows how to use a Linux shutdown script on Ubuntu EC2 instances to upload selected logs to Amazon S3 before an Auto Scaling Group terminates a failed instance. It is intended to preserve evidence for debugging, including errors from C++ code that may bypass JVM or logging services.

### Source excerpt

If you've ever used an auto scaling group (ASG) on AWS, you've probably had an EC2 instance fail and get removed from the ASG. While great for redundancy (the ASG launches a new instance to start handling requests), it makes debugging the failure difficult since the ASG terminates the bad instance, erasing any evidence of what went wrong. Below, I present a script that will upload relevant files to S3 after an instance is triggered to shutdown but before it terminates. To achieve this, we make use of Linux's runlevel scripts. The instructions below are for Ubuntu, but it should be straight forward to migrate to a different distro. First, we make a script /etc/rc0.d/K01upload-logs. This script will run when the system is shutting down. You should change BUCKET, PATH, and LOG_FILE to match your needs. #!/bin/bash source /etc/environment # get strict after sourcing environment since we don't trust it... set -euo pipefail IFS=$'\n\t' # what logs should I upload and where to? LOG_FILE="/var/log/tomcat7/catalina.out" BUCKET="my-logs-bucket" # below we include the instance id in the path. That way it's easily findable. HOST=$(/usr/bin/curl http://169.254.169.254/latest/meta-data/instance-id) PATH="services/logs/$HOST/" # upload the logs /bin/echo "Uploading logs to s3://$BUCKET/$PATH" | /usr/bin/wall /usr/local/bin/aws s3 cp $LOG_FILE s3://$BUCKET/$PATH wait After installing the script, you need to set the permissions: chown root:root /etc/rc0.d/K01upload-logs chmod +x /etc/rc0.d/K01upload-logs And that's it! The script will upload the logs to your S3 bucket when the ASG terminates an instance. We've found this extremely helpful for our deep learning infrastructure that can often contain errors from C++ code (and thus isn't handled by the jvm or sent to our logging services).

## One-off shell script execution in BBEdit

DevFeed: [One-off shell script execution in BBEdit](<https://devfeed.tech/articles/one-off-shell-script-execution-in-bbedit-35131.md>)

Original publisher: [Read original article](<http://www.practicallyefficient.com/2017/06/14/shell-scripts-in-bbedit.html>)

Author: Eddie Smith

Published: 2017-06-14T00:00:00Z

Content type: tutorial

Language: en

Sources: [Eddie Smith](<https://devfeed.tech/sources/eddie-smith.md>)

Topics: [Scripting, bash](<https://devfeed.tech/topics/scripting-bash.md>), [Sublime Text](<https://devfeed.tech/topics/sublime-text.md>), [Terminal](<https://devfeed.tech/topics/terminal.md>), [file](<https://devfeed.tech/topics/file.md>), [LaTeX](<https://devfeed.tech/topics/latex.md>)

Tags: [bash](<https://devfeed.tech/tags/bash.md>), [chmod](<https://devfeed.tech/tags/chmod.md>), [command](<https://devfeed.tech/tags/command.md>), [commands](<https://devfeed.tech/tags/commands.md>), [copy](<https://devfeed.tech/tags/copy.md>), [editor](<https://devfeed.tech/tags/editor.md>), [execution](<https://devfeed.tech/tags/execution.md>), [file](<https://devfeed.tech/tags/file.md>), [files](<https://devfeed.tech/tags/files.md>), [mac](<https://devfeed.tech/tags/mac.md>), [multiple](<https://devfeed.tech/tags/multiple.md>), [script](<https://devfeed.tech/tags/script.md>), [shell](<https://devfeed.tech/tags/shell.md>), [shell-script](<https://devfeed.tech/tags/shell-script.md>)

### AI overview

The article describes a workflow for creating one-off Bash scripts in Sublime Text to copy selected files, then running the unsaved commands immediately in BBEdit.

### Source excerpt

I've been meaning to talk more about my "Sublime Text and BBEdit" workflow, and this is a powerful (if mundane) example. I don't write a ton of scripts on my Mac and generally don't spend much time in Terminal. But when I need a script, I really need a script. My work is very file-heavy. I juggle large numbers of .tex (LaTeX) files across several large folder structures. Every so often I need to copy a subset of files within one folder to another folder so that I can do things to them. In most cases, I have a list of the files in a plain text .tex file, and I just need to do some file operations on them. Selecting them individually in Finder is tedious and error-prone, so the solution is usually a simple bash script with a bunch of cp commands. The main friction with bash scripting for folks like me that don't live in Terminal is that you have to create a .sh script and then web search for now to make it executable (because I can never remember the chmod command). Creating the shell commands is straightforward, especially in Sublime Text. After adding the necessary #!/bin/bash line with TextExpander and defining the "to" and "from" file paths as variables, the magic of Sublime Text's multiple cursors makes it easy to put cp commands and the folder path variables around each file to be copied. Sublime Text multiple cursors in action Since Sublime Text won't execute these commands in an unsaved file that hasn't been given proper execute permissions, I simply copy this text into an untitled, unsaved BBEdit window and hit ⌘R. BBEdit has the extremely useful ability to immediately recognize the syntax and execute it right there on the spot. I realize this post is a weird way to promote BBEdit, which is a powerful text editor that, in this case, I'm not even using as an editor. Hopefully I'll find some time to talk more about other ways I'm using it with Sublime Text.

## List octal file permissions in bash

DevFeed: [List octal file permissions in bash](<https://devfeed.tech/articles/list-octal-file-permissions-in-bash-27643.md>)

Original publisher: [Read original article](<https://gagor.pro/2016/02/list-octal-file-permissions-in-bash/>)

Author: Tom

Published: 2016-02-24T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [Bash](<https://devfeed.tech/topics/bash.md>)

Tags: [bash](<https://devfeed.tech/tags/bash.md>), [chmod](<https://devfeed.tech/tags/chmod.md>), [cli](<https://devfeed.tech/tags/cli.md>), [command](<https://devfeed.tech/tags/command.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [file-permissions](<https://devfeed.tech/tags/file-permissions.md>), [files](<https://devfeed.tech/tags/files.md>), [format](<https://devfeed.tech/tags/format.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [linux](<https://devfeed.tech/tags/linux.md>), [octal](<https://devfeed.tech/tags/octal.md>), [permissions](<https://devfeed.tech/tags/permissions.md>), [stat](<https://devfeed.tech/tags/stat.md>)

### AI overview

A quick Bash tip for listing files with their octal permissions using the stat command, with an option to include human-readable attributes.

### Source excerpt

A quick tip on how to list files with their octal permissions in bash using the stat command.

## Install WordPress from command-line

DevFeed: [Install WordPress from command-line](<https://devfeed.tech/articles/install-wordpress-from-command-line-27641.md>)

Original publisher: [Read original article](<https://gagor.pro/2016/02/install-wordpress-from-command-line/>)

Author: Tom

Published: 2016-02-15T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [WordPress](<https://devfeed.tech/topics/wordpress.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [apt](<https://devfeed.tech/topics/apt.md>), [chmod](<https://devfeed.tech/topics/chmod.md>), [cURL](<https://devfeed.tech/topics/curl.md>), [MySQL](<https://devfeed.tech/topics/mysql.md>)

Tags: [apt](<https://devfeed.tech/tags/apt.md>), [bash](<https://devfeed.tech/tags/bash.md>), [chmod](<https://devfeed.tech/tags/chmod.md>), [cli](<https://devfeed.tech/tags/cli.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [curl](<https://devfeed.tech/tags/curl.md>), [install](<https://devfeed.tech/tags/install.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [root](<https://devfeed.tech/tags/root.md>), [wordpress](<https://devfeed.tech/tags/wordpress.md>)

### AI overview

A tutorial showing how to install WordPress from the command line using WP-CLI, including prerequisites, downloading the WP-CLI executable, checking it, and installing WordPress as the web application user.

### Source excerpt

I never tried it before but today I needed to install WordPress... From command line only. And there is a way to do this with wp-cli external link . WP-CLI installation First some requirements (as root): apt-get install php5-cli php5-mysql mysql-client curl And now installation of wp-cli (as root too): curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar chmod +x wp-cli.phar mv wp-cli.phar /usr/local/bin/wp Check if it's working:

## GearmanManager: wygodne zarządzanie workerami

DevFeed: [GearmanManager: wygodne zarządzanie workerami](<https://devfeed.tech/articles/gearmanmanager-wygodne-zarzadzanie-workerami-27588.md>)

Original publisher: [Read original article](<https://gagor.pro/2013/11/gearmanmanager-wygodne-zarzadzanie-workerami/>)

Author: Tom

Published: 2013-11-13T00:00:00Z

Content type: tutorial

Language: pl

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [configuration](<https://devfeed.tech/topics/configuration.md>), [PHP](<https://devfeed.tech/topics/php.md>), [Git](<https://devfeed.tech/topics/git.md>), [apt](<https://devfeed.tech/topics/apt.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [chmod](<https://devfeed.tech/topics/chmod.md>)

Tags: [apt](<https://devfeed.tech/tags/apt.md>), [chmod](<https://devfeed.tech/tags/chmod.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [debian](<https://devfeed.tech/tags/debian.md>), [gearman](<https://devfeed.tech/tags/gearman.md>), [git](<https://devfeed.tech/tags/git.md>), [linux](<https://devfeed.tech/tags/linux.md>), [php](<https://devfeed.tech/tags/php.md>)

### AI overview

A Polish tutorial explains how to install and configure GearmanManager for managing Gearman workers, including installing the PHP Gearman module, running the installation script, placing worker scripts, and reviewing configuration options.

### Source excerpt

Niedawno zainteresowałem się usługą Gearman i jedynej rzeczy której mi brakowało to jakiegoś łatwego mechanizmu zarządzającego workerami. Ale jak zwykle okazało się że inni mieli już ten problem i odpowiednie narzędzie istnieje - mowa o GearmanManagerze. Instalacja GearmanManagera Aby zainstalować GeramanManagera na serwerze gdzie już mamy Gearmana trzeba wykonać kilka kroków (wcześniej powinniśmy też zainstalować moduł gearmana do php'a): apt-get install git -y git clone https://github.com/brianlmoon/GearmanManager.git cd GearmanManager/install chmod +x install.sh ./install.sh Detecting linux distro as redhat- or debian-compatible Where is your php executable? (usually /usr/bin) /usr/bin Which PHP library to use, pecl/gearman or PEAR::Net_Gearman? 1) pecl 2) pear #? 1 Installing to /usr/local/share/gearman-manager Installing executable to /usr/local/bin/gearman-manager Installing configs to /etc/gearman-manager Installing init script to /etc/init.d/gearman-manager Install ok! Run /etc/init.d/gearman-manager to start and stop Worker scripts can be installed in /etc/gearman-manager/workers, configuration can be edited in /etc/gearman-manager/config.ini Mamy działającego GearmanManagera. Zalecam przyglądnięcie się plikowi config-advanced.ini bo jest tam kilka opcji, które warto dodatkowo ustawić.

## Clojure web apps: Zero to 'Hello World' on Heroku in Clojure in 15 minutes.

DevFeed: [Clojure web apps: Zero to 'Hello World' on Heroku in Clojure in 15 minutes.](<https://devfeed.tech/articles/clojure-web-apps-zero-to-hello-world-on-heroku-in-clojure-in-15-minutes-32127.md>)

Original publisher: [Read original article](<https://adambard.com/blog/getting-started-with-clojure-web-apps/>)

Published: 2013-04-07T00:00:00Z

Content type: tutorial

Language: en

Sources: [Adam Bard](<https://devfeed.tech/sources/adam-bard.md>)

Topics: [Clojure](<https://devfeed.tech/topics/clojure.md>), [Web](<https://devfeed.tech/topics/web.md>), [App](<https://devfeed.tech/topics/app.md>), [Heroku](<https://devfeed.tech/topics/heroku.md>), [Routing (disambiguation)](<https://devfeed.tech/topics/routing.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [chmod](<https://devfeed.tech/tags/chmod.md>), [clojure](<https://devfeed.tech/tags/clojure.md>), [github](<https://devfeed.tech/tags/github.md>), [heroku](<https://devfeed.tech/tags/heroku.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [web](<https://devfeed.tech/tags/web.md>), [web-apps](<https://devfeed.tech/tags/web-apps.md>)

### AI overview

A beginner-oriented tutorial for building a Clojure web application. It covers creating a project with Leiningen, writing a Ring handler, routing with Compojure, rendering Mustache templates with Clostache, serving static resources, and deploying the application to Heroku.

### Source excerpt

I've been talking a lot about Clojure lately, but the pool of people who want to listen is pretty small. I know, I know, it's pretty different, but I promise it's really cool - maybe even better than the languages you already know - once you get to know it. So today I want to step back to the very basics by outlining how to get a Clojure app up and running, and maybe produce some more Clojurenauts in the process.

## Linux File Permissions Explained

DevFeed: [Linux File Permissions Explained](<https://devfeed.tech/articles/linux-file-permissions-explained-40709.md>)

Original publisher: [Read original article](<https://radek.io/posts/linux-file-permissions-explained/>)

Published: 2011-07-19T00:00:00Z

Content type: tutorial

Language: en

Sources: [Radek Pazdera](<https://devfeed.tech/sources/radek-pazdera.md>)

Topics: [Linux](<https://devfeed.tech/topics/linux.md>), [Authorization](<https://devfeed.tech/topics/authorization.md>), [chmod](<https://devfeed.tech/topics/chmod.md>), [file](<https://devfeed.tech/topics/file.md>), [Unix](<https://devfeed.tech/topics/unix.md>)

Tags: [chmod](<https://devfeed.tech/tags/chmod.md>), [command](<https://devfeed.tech/tags/command.md>), [file-permissions](<https://devfeed.tech/tags/file-permissions.md>), [linux](<https://devfeed.tech/tags/linux.md>), [permissions](<https://devfeed.tech/tags/permissions.md>), [users](<https://devfeed.tech/tags/users.md>)

### AI overview

A tutorial explaining Linux file permissions, including how permission strings identify file types and define read, write, and execute access for owners, groups, and other users. It also introduces changing permissions with chmod and calculating numeric permission values.

### Source excerpt

I build software products and write on the Internet.