Potential compatibility issue: Removing explicit `-s /bin/sh` from su command may break for users with non-POSIX login shells
Les mainteneurs répondent en général sous 1 jour
@gvatsal60 y travaille déjà.
Depuis le 3/10/2026.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 78/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- shell
- Domaine
- operating-systems
Piste de recherche
Repérez la variable _brew_cmds et l’invocation de su dans le script actuel, puis comparez-les avec la modification abordée dans PR #128. Vérifiez le chemin de la commande avec un shell de connexion non POSIX et un shell POSIX ; le travail est terminé lorsque la commande d’abandon des privilèges exécute explicitement et de manière fiable la syntaxe du shell POSIX pour les deux configurations utilisateur.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Issue Description
In PR #128, the su command used to drop privileges for running Homebrew commands was simplified by removing the explicit shell specification (-s /bin/sh). This change may break compatibility for users with non-POSIX login shells (e.g., fish, nushell, csh, tcsh).
Technical Details
The _brew_cmds variable contains POSIX shell syntax including:
eval- $() command substitution
&&logical ANDprintfwith format strings
When su - ${NON_ROOT_USER} -c ${_brew_cmds} is used without -s /bin/sh, it invokes the user's login shell. If that shell is non-POSIX (like fish or nushell), the POSIX syntax in _brew_cmds will fail.
Original Code (with explicit shell)
su - ${NON_ROOT_USER} -s /bin/sh -c ${_brew_cmds}
Current Code (without explicit shell)
su - ${NON_ROOT_USER} -c ${_brew_cmds}
Recommended Fix
Restore -s /bin/sh to guarantee POSIX compliance, or use sh -c explicitly.
Context
This was flagged in the code review for PR #128 by the Kilo Code bot. The review comment can be found at: https://github.com/gvatsal60/Linux-All-In-One-Update-Script/pull/128#discussion_r4118722195
Labels: bug, compatibility, shell
PR Signature to include in the PR description:
If you create a pull request or merge request, include the following signature at the end of the PR/MR description:
Built for gvatsal60 by Kilo
- Langage dominant
- Shell
- Étoiles
- 7
- Forks
- 1
- Merge moyen
- 1 h 5 min
- PR mergées (30 j)
- 25
Préparer son environnement
Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de gvatsal60/Linux-All-In-One-Update-Script
-
Support for opensuse linuxPeut-être à nouveau libre @gvatsal60 l’a pris il y a 30 jours, et aucune pull request n’est ouverte. Ouverteenhancement good first issue
Difficulté 3/5 1-2 jours Accessibilité débutants 35/100
gvatsal60/Linux-All-In-One-Update-Script#30 · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de gvatsal60/Linux-All-In-One-Update-Script
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
ophub/amlogic-s9xxx-armbian#3752 ·
Les mainteneurs répondent en général sous 1 jour
-
prio:low type:chore
Difficulté 1/5 Moins d'une heure Accessibilité débutants 82/100
davidsneighbour/dotfiles#602 ·
Les mainteneurs répondent en général sous 3 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 79/100
Les mainteneurs répondent en général sous 1 jour
-
[cmocka] update to 2.0.2Ouverteupdate-request
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
msys2/MINGW-packages#33004 ·
Les mainteneurs répondent en général sous 1 jour
-
bug small tooling
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour