2011-06-10 2 views

Répondre

3

D'abord, un peu de fond:

Le processus est généralement exécuté par un utilisateur spécifique. Ainsi, par exemple, si vous vous connectez et exécutez le programme, il fonctionnera avec les mêmes privilèges que vous. Vous pouvez vérifier les autorisations sur le fichier avec stat ou ls -l.

En utilisant stat

[email protected]:/tmp$ stat foo 
    File: `foo' 
    Size: 0    Blocks: 0   IO Block: 4096 regular empty file 
Device: fb00h/64256d Inode: 618   Links: 1 
Access: (0644/-rw-r--r--) Uid: (11204/ malbert) Gid: (10513/domain users) 
Access: 2011-06-10 13:03:27.181227226 +0200 
Modify: 2011-06-10 13:03:27.181227226 +0200 
Change: 2011-06-10 13:03:27.181227226 +0200 

Les infos importantes ici sont:

Access: (0644/-rw-r--r--) Uid: (11204/ malbert) Gid: (10513/domain users) 

Cela vous indique les autorisations pour le propriétaire (rw-), groupe (r--) et tout le monde (r--). Il affiche également l'ID du propriétaire actuel (Uid) et l'ID du groupe actuel (Gid).

Les abréviations signifient:

  • r = accès en lecture
  • w = accès en écriture
  • x = exécuter/déplacement accès au répertoire

En utilisant ls -l

ls -l vous donne un résumé rapide:

[email protected]:/tmp$ ls -l /tmp 
total 48 
drwx------ 2 malbert domain users 4096 2011-06-10 08:51 akonadi-malbert.zOSngu 
-rw-r--r-- 1 malbert domain users 0 2011-06-10 13:03 foo 
drwx------ 2 kdm  nogroup  4096 2011-06-10 08:51 kde-kdm 
drwx------ 3 malbert domain users 4096 2011-06-10 08:51 kde-malbert 
[snip] 

Ici vous pouvez voir la même information qu'avec stat, mais comme un résumé. En outre, les uid et les gid sont résolus en noms (dans ce cas malbert et domain users). Vous pouvez utiliser ls -u pour les voir en tant que valeurs numériques.

Si vous voulez exécuter l'application en tant que différent comme toi-même, vous pouvez utiliser su, sudoou votre application utilisateur lui-même peut déposer et changer priviledges l'utilisateur, il est en cours d'exécution comme. C'est généralement la façon dont les démons du système font les choses.

ACLs/attributs étendus

Soyez prudent sur les attributs étendus. Lors de la liste des fichiers utilisant ls -l, ils sont visibles avec un signe + ajouté. Par exemple:

[email protected]:/tmp$ ls -l 
total 48 
drwx------ 2 malbert domain users 4096 2011-06-10 08:51 akonadi-malbert.zOSngu 
-rw-rwxr--+ 1 malbert domain users 0 2011-06-10 13:03 foo 
drwx------ 2 kdm  nogroup  4096 2011-06-10 08:51 kde-kdm 
drwx------ 3 malbert domain users 4096 2011-06-10 08:51 kde-malbert 
[snip] 

Notez la ligne suivante:

-rwxr--+ 1 malbert domain users 0 2011-06-10 13:03 foo 

Le signe + dans -rwxr--+ des points aux attributs étendus. Il est possible que ce sont des ACL. Il y a an excellent document on ACLs dans la documentation SuSE. Allez y jeter un oeil si vous en avez besoin. Expliquer les ACL ferait certainement exploser cet article, donc je n'en parlerai pas.

Les attributs étendus peuvent également être liés au système de fichiers. Voir the man page of chattr pour plus d'informations à ce sujet.

Maintenant, en tant que sidenote: c'est StackOverflow. Les questions devraient être liées au développement. Pour des questions comme celle-ci, il y a http://www.serverfault.com. Mais comme vous n'étiez pas au courant, que ce n'est pas un problème de développement, mais plus lié à l'OS, je pensais que je devrais répondre de toute façon;)

Bonne chance, et amusez-vous!

1

Le processus ne décide de rien; Chaque fois qu'il essaie une opération, le système d'exploitation vérifie son EUID et décide s'il possède les privilèges requis.

Par exemple, lorsqu'il tente d'accéder à un fichier, le propriétaire et les autorisations du fichier sont vérifiés. Si l'EUID du processus n'a pas assez de privilèges pour une opération, cette opération échouera (généralement avec EPERM).

+0

Est-ce que UID joue un rôle? – Yadnesh

+0

@Yadnesh Lire http://en.wikipedia.org/wiki/User_identifier – cnicutar

Questions connexes