Compte utilisateur Centos nologin mais possible de prendre en compte

12

Je suis nouveau sur CentOS (exécutant CentOS 6). J'ai une expérience antérieure avec OpenSuse.

J'essaie de créer un compte pour un utilisateur. Je ne veux pas que le compte soit disponible pour la connexion via ssh ou via l'écran de connexion. Mais, je veux toujours pouvoir me connecter à l'utilisateur en utilisant la commande su. Cela me permet d'exécuter certaines applications en tant qu'utilisateur avec un accès restreint. L'utilisateur n'est pas un super utilisateur, il ne peut donc pas affecter les applications d'autres utilisateurs.

Toute aide serait grandement appréciée. Je veux généralement l'utiliser pour exécuter le serveur Glassfish, etc.

pas comme les autres
la source
Alors, comment avez-vous résolu cela avec OpenSuSE?
Nils

Réponses:

15

Sur centos, vous configureriez avec un utilisateur sans shell en utilisant / sbin / nologin:

[root@localhost ~]# grep named /etc/passwd
named:x:25:25:Named:/var/named:/sbin/nologin
[root@localhost ~]# 

Si vous devez le devenir, utilisez le paramètre -s et mettez comme argument le shell de votre choix, comme ceci:

[root@localhost ~]# su - named -s /bin/bash
-bash-4.1$ 

Notez que si vous utilisez bash, il lira d'abord les paramètres de / etc / profile et par défaut ces paramètres s'il n'y a pas de .bash_profile, .bash_login ou.profile dans le répertoire personnel de l'utilisateur. Bien sûr, si vous souhaitez utiliser vos paramètres d'environnement existants qui existent en racine, vous pouvez simplement supprimer le tiret:

sortie [

root@localhost ~]# su - named -s /bin/bash
-bash-4.1$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin
-bash-4.1$ exit
logout
[root@localhost ~]# su named -s /bin/bash
bash-4.1$ echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
bash-4.1$ 
Rilindo
la source
0

Une façon courante consiste à définir le shell de l'utilisateur sur /bin/false

unbeli
la source
J'ai essayé de le définir sur / bin / false, mais il semble que centOS 6 n'ait pas cette option. Il a une option bin / nologin, mais cela ne me permet pas d'accéder au compte utilisateur.
essayersu -m username
unbeli
Si je définis l'utilisateur sur / sbin / nologin et que j'essaie de faire un su avec l'option -m, cela m'indique que le compte n'est pas actuellement disponible. J'ai également essayé d'ajouter le / bin / false au fichier shells. Lorsque je fais cela, la commande su ne passe tout simplement pas à l'utilisateur.
ok, n'ajoutez PAS / bin / false au fichier shell. Définissez le shell de l'utilisateur sur / bin / false. Utilisez su -m.
unbeli
Je l'ai supprimé du fichier / etc / shells et défini le shell de l'utilisateur sur / bin / false à l'aide de la commande usermod. Si j'essaye maintenant de su -m nom d'utilisateur, il me dit que je n'ai pas les autorisations pour .bashrc. Je suis connecté en tant que root. Si je le fais maintenant: su - nom d'utilisateur, cela ne me donne aucune erreur, mais je suis toujours considéré comme root. Est-ce normal chez Centos?
0

Je mets normalement un "x" dans le champ du mot de passe crypté de ces utilisateurs "techniques". L'utilisateur n'aura donc aucun mot de passe possible. S'il y a également maintenant une clé publique dans les clés autorisées de cet utilisateur, ce compte devrait être assez sûr.

Nils
la source