J'ai un script où j'ajoute un nouvel utilisateur Sudo et après je dois installer des packages.
Est-ce possible d'exécuter apt-get en tant que nouvel utilisateur?
Par exemple, je suis connecté avec l'utilisateur1. Je lance le script. Dans ce script, je crée user2 (sudoer). Après, je veux installer les nouveaux paquets en utilisant user2
Dois-je seulement utiliser cette ligne de commande et cela suppose de fonctionner?
Sudo -u user2 apt-get -y install [packagename]
Vous devez exécuter apt-get
comme root
via Sudo
, et non comme un autre utilisateur.
La plupart des répertoires gérés par apt
pour les informations sur les paquets doivent être conservés par root
; de même, si un paquet est installé sur /bin
ou similaire, il a besoin de root.
Le privilège Sudoers autorise uniquement un utilisateur connecté à utiliser Sudo
et à définir ce qu'il peut ou ne peut pas faire avec la commande Sudo
. Il n'accorde pas les privilèges dont apt-get
a besoin pour fonctionner, car cela nécessite les autorisations effectives root
fournies par Sudo apt-get
. Par conséquent, si l'utilisateur1 exécute Sudo apt-get
, il serait autorisé à le faire. Si l'utilisateur 2 n'est pas dans sudoers, il ne peut pas exécuter cette commande. (Mais pourrait si ils étaient dans sudoers).
Pour faire ce que vous essayez de faire, vous aurez besoin de deux commandes Sudo
chaînées (non testées au passage):
Sudo -u user2 Sudo apt-get -y install PACKAGENAME
Notez que ce n'est généralement pas la façon dont les choses doivent être exécutées et que cela peut conduire à un comportement indéfini ou à une bizarrerie.
user2 aurait également besoin d'autorisations pour s'exécuter en tant que root, ce qui peut ou non être le cas dans la configuration de sudoers.