Comment connaître les permissions d'un user spécifié sur Linux avec un access root?

J'ai un access root à mon server local. Et il y a quelques jours mon collègue a créé un user sur ce server, me donnant le nom d'user et le mot de passe. Mais l'user a des permissions minimisées. Comme l'user ne peut même pas créer un file sous son propre directory personnel.

Y a-t-il un concept sur "les permissions d'un user"? Si oui, comment puis-je le vérifier / le modifier?

Il se peut que votre collègue, lors de la création du count, ait créé le directory de départ «à la main», ce qui a entraîné l'appartenance de root à root . Essayez d'exécuter ce qui suit en tant que root :

 chown -R username ~username chgrp -R $(id -gn username) ~username 

username est le nom du count problématique.

modifier

Si cela s'avère être votre problème, pour éviter cela à l'avenir, vous voulez append le commutateur -m à la command line useradd utilisée pour créer le count d'user. Cela garantit que le directory personnel sélectionné de l'user est créé s'il n'existe pas. Cela crée le directory de base avec la propriété et les droits "corrects" afin que vous ne soyez pas confronté à ce type de problème.

Modifier 2

La command chgrp ajoutée ci-dessus changera la propriété du groupe de tout le directory personnel du username d' username au groupe principal du username d' username . En fonction de votre environnement, cela peut ne pas être exactement ce que vous voulez et vous devrez peut-être modifier la propriété du groupe de sous-directorys spécifiques à l'intérieur du directory de base «manuellement», définissant ainsi la propriété du groupe pour différents sous-directorys. Ce n'est généralement pas le cas pour les ordinateurs personnels, mais comme vous avez mentionné «un collègue», je suppose que nous parlons d'un environnement de travail en réseau, auquel cas la propriété de groupe est importante pour les directorys partagés.

Il n'y a pas vraiment de méthode pour le faire dans Unix, de manière systématique comme vous le requestz. Si vous utilisez sudo vous pouvez créer quelque chose comme vous requestz, mais cela va être complètement artificiel et très limitant dans la façon dont une list complète peut fournir. Dans sudo vous pouvez créer des groupes de commands, puis autoriser l'user (ou les groupes d'users) à accéder à ces groupes de commands.

Exemple

 # /etc/sudoers someuser ALL=/sbin/service, /sbin/chkconfig 

Vous pouvez ensuite utiliser la command sudo -l tant que someuser pour voir quelles commands sont autorisées à exécuter.

 $ sudo -l ... User someuser may run the following commands on this host: (ALL) ALL (root) /sbin/service, (root) /sbin/chkconfig, (root) 

Comme le suggère Joseph R., l'explication probable est que le directory personnel n'a pas été créé avec le droit de propriété. Dans 99% des cas, les problèmes d'access consistent simplement à get les droits de propriété et d'autorisation correctement définis, en utilisant respectivement les commands chown et chmod . (Dans certains cas exotiques, d'autres facteurs entrent en jeu, tels que SELinux, AppArmor, les ACL de filesystems ou le mappage des informations d'identification du système de files réseau.) Comme je l'ai dit, il est peu probable que de telles situations s'appliquent à vous.)

Pour répondre au rest de votre question … oui, vous pouvez voir par vous-même comment cela échoue. En tant que root, vous pouvez temporairement devenir un autre user, et vous pouvez le faire sans connaître le mot de passe de l'user – il suffit d'exécuter /bin/su - username . Cela va exécuter un shell avec comme l'autre user, comme si vous aviez connecté en utilisant ce nom d'user et mot de passe. Lorsque vous avez fini avec ce shell, exit -le et vous reviendrez dans votre shell racine d'origine.