J'écrivais quelques instructions sur la façon d'installer quelque chose (lié à TeX - si vous ne le demandez pas, je ne gâcherai pas votre journée en fournissant plus de détails) et utilisé sudo
pour installer à l'échelle du système. Quelqu'un a déclaré qu'il ne pensait pas que cela sudo
était disponible sur toutes les distributions Linux (ou Unix).
Existe-t-il des distributions Unix qui n'en ont pas sudo
, et si oui, quelles sont-elles? Y at - il une commande universellement reconnu « Retrouve moi SUPERUSER privilèges » qui est sur tous les systèmes?
la source
sudo
peut être intégré à la plupart des distributions, mais tous ne configurent pas chaque utilisateur comme capable de l'exécuter.La distribution la plus utilisée, Ubuntu,
sudo
est la méthode recommandée pour devenir root (lors de l'utilisation de la ligne de commande - les utilisateurs qui s'en tiennent à l'interface graphique recevront une invite de mot de passe sans comprendre ni se soucier de ce qui se passe sous le capot). D'autres distributions peuvent ou non encourager la mise en place de sudo et peuvent ou non être expédiées. D'un autre côté, ilsu
est disponible partout et utilisable sur la plupart des systèmes sauf ceux où seulsudo
est disponible car l'utilisateur n'aura pas le mot de passe root.Entre
su
etsudo
, vous couvrirez presque tous vos utilisateurs. Les quelques exotiques qui ont besoincalife
ouop
oupfexec
savoir quoi faire déjà. Même s'ils ne le font pas, un système qui n'utilisesu
nisudo
n'est susceptible d'avoir des fichiers dans des endroits inconnus et suffisamment de choses auxquelles vous n'avez pas pensé que vos instructions ne fonctionneront probablement pas de toute façon.la source
Pour répondre à votre question, le plus précisément, non
sudo
n'est pas considéré comme universel. À vrai dire, le concept entier d '«universel» est souvent un hareng rouge. Cela est particulièrement vrai en ce qui concerne la compatibilité entre les distributions. Une fois que vous avez jeté dans la multitude de versions de logiciels différentes, l'universalité devient semi-irréaliste. Le scriptage par nature est pragmatique, s'il était pédant, il serait pratiquement impossible d'écrire des scripts portables.Normalement, je jauge mon environnement d'exécution prévu, une distribution Linux semi-moderne, je m'attends à un shell POSIX avec les utilitaires GNU courants. Pour les scripts qui pourraient s'exécuter en dehors de Linux, je n'attends que la norme POSIX complète. De toute évidence, de nombreux scripts sont spécifiques à Linux ou spécifiques à la distribution, ce qui réduit souvent la portée de la portabilité.
Pour répondre à votre cas de script spécifique,
ce script collé est un compliment shell POSIX, j'écris toujours compatible avec Dash.
la source
sudo
d'être installé. Il nécessite une exécution superutilisateur et peut utilisersudo
s'il est disponible. S'ilsudo
n'est pas disponible, le script doit être exécuté en tant qu'utilisateur root, ou il le seradie
.sudo -l
. Malheureusement, il est inutilisable dans cette situation, car il peut nécessiter la saisie d'un mot de passe. En y réfléchissant plus attentivement, je pense en fait que le concept entier pourrait être mieux réalisé via un test par distribution. Utiliser àsu -c
moins d'exécuter unesu
distribution désactivée par défaut, auquel cas utilisersudo su -c
. Comme d'autres l'ont mentionné, il est préférable de laisser l'élévation du superutilisateur à l'utilisateur, je considérerais tout script autour comme une commodité.sudo
. Cela devrait s'exécuter correctement dans la plupart des distributions, en supposant que les configurationssu
/ par défautsudo
. Je sais qu'un Ubuntu obsolète, prélsb_release
, devrait être abordé ... Mais ce n'est vraiment qu'un exemple, et pourrait évidemment être étendu.