Limiter les droits à un seul répertoire


#1

Bonjour à tous,

J’ai un peu l’impression de poser une question triviale mais bon, je la pose.

Est-il possible de créer un utilisateur qui n’aurait accès qu’à son seul répertoire sans qu’il puisse ls ou lire les autres sur lesquels il pourrait y avoir des droits r ou rw pour all?

Est-ce qu ACL est la seule solution ou bien il y a vraiment quelque-chose qui m’échappe dans la gestion des droits Linux???

[code]Package: acl
Priority: optional
Section: utils
Installed-Size: 120
Maintainer: Nathan Scott nathans@debian.org
Architecture: i386
Version: 2.2.23-1
Depends: libacl1, libattr1 (>= 2.4.4-1), libc6 (>= 2.3.2-1)
Filename: pool/main/a/acl/acl_2.2.23-1_i386.deb
Size: 45854
MD5sum: b9cd0805217201dd8eeca9e51ccc3fb0
Description: Access control list utilities
This package contains the getfacl and setfacl utilities needed for
manipulating access control lists.

[/code]


#2

tu peux lui faire executer son shell de login dans un chroot, mais il faudra que tu recopies les quelques commandes dont il peut avoir besoin dans son chroot.

Il faut penser que ton utilisateur doit avoir au moins en lecture+execution aux executables dont il a besoin, au moins…

C’est un utilisateur qui doit se connecter réellement sur la machine, ou bien il accède à ses repertoires en ftp ou http ?


#3

J’aurais dû commencer par le contexte.

Il s’agit d’une machine sur laquelle tourne (entre-autres) un serveur samba comme serveur de fichier.

Dans la config de samba, chaque utilisateur a accès à son répertoire. Pour que cet utilisateur (station Windows) puisse y accéder tout en préservant un minimum de sécurité, un mot de passe est nécessaire (valid users = xxx).

Apparemment, pour créer un mdp samba, il faut que l’utilisateur existe au niveau Linux.

J’aimerais que, s’ils ont un accès - accidentel ou malveillant - à un shell (console ou ssh), ils ne puissent “voir” que leur répertoire.

Extrait d’un share du smb.conf

[utilisateur_X]
	comment = Répertoire de X
	path = /home/utilisateur_X
	username = utilisateur_X
	valid users = utilisateur_X

#4

déjà, tu peux créer des utilisateurs avec des shell /bin/false, pour qu’ils ne puissent pas se connecter.

Ensuite, un utilisateur samba doit juste exister dans la base unix, mais il n’est pas obligé d’avoir le même mot de passe (il faut peut être modifier l’appel à sam dans samba).
Finalement, si tu travailles avec des “groupes” de personnes qui n’ont pas besoin de protèger leurs documents entre elles, tu peux “mapper” toute une série de login windows vers un seul et même compte linux, et donner ainsi les droits.
Ou bien tu peux le faire un a un pour tromper les gens qui essaieraient de se connecter avec leur mot de passe windows.

AMHA, la première mesure devrait être suffisante: pour changer de shell, un pirate devra avoir déjà la main sur la machine…


#5

Merci pour ces pistes intéressantes. J’y trouverai certainement un solution pour samba.

chroot ne m’est pas familier mais semble également répondre à ma question. Je regarde ça.

Par ailleurs je limite aussi l’utilisation de sshd dans hosts.allow à certains hosts et users autorisés (AllowUsers xxx et PermitRootLogin no dans la config de sshd).

Avec tout çà, je limite les risques non?

De parano.com:
Un pc sûr est un pc éteint, sans clavier et sans souris. Coulé dans du béton au fond de l’océan