chown: changement de propriété de `. ': argument non valide

8

J'essaie d'installer de nouveaux fichiers sur notre nouveau serveur pendant que notre administrateur système est en vacances:

Voici mon df

#  df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sdb3             273G   11G  248G   5% /
tmpfs                  48G  260K   48G   1% /dev/shm
/dev/sdb1             485M  187M  273M  41% /boot
xxx.xx.xxx.xxx:/commun
                       63T  2.2T   61T   4% /commun

en tant que root , je peux créer un nouveau répertoire et exécuter chownsous / home / lindenb

# cd /home/lindenb/
# mkdir X
# chown lindenb X

mais je ne peux pas exécuter la même commande sous / commun

# cd /commun/data/users/lindenb/
# mkdir X
# chown lindenb X
chown: changing ownership of `X': Invalid argument

Pourquoi ? Comment puis-je réparer cela ?

mis à jour :

monter:

/dev/sdb3 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sdb1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
xxx.xx.xxx.xxx:/commun on /commun type nfs (rw,noatime,noac,hard,intr,vers=4,addr=xxx.xx.xxx.xxx,clientaddr=xxx.xx.xxx.xxx)

version:

$ cat /etc/redhat-release 
CentOS release 6.3 (Final)
Pierre
la source
1
Tapez mountet collez la sortie de ceci dans votre question. De plus, sur quel système d'exploitation êtes-vous?
jwbensley
1
Je ne connais pas très bien NFS; Mais vu que / commun / data / users / lindenb / n'est pas un répertoire local sur votre machine, mais un partage réseau accessible via NFS, je commencerais par examiner vos autorisations sur le serveur NFS (ce qui est hors de ma portée)
jwbensley

Réponses:

7

Le /communsystème de fichiers est monté à partir d'un serveur distant et le message d'erreur suggère qu'il pourrait s'agir d'un montage nfsv4 (la même autorisation pour les versions antérieures de nfs est refusée). Par défaut, le serveur de fichiers distant mappera l' rootutilisateur distant à un nobodycompte afin qu'il ne puisse pas modifier la propriété du fichier.

La solution la plus simple consiste à utiliser le lindenbcompte local pour créer les répertoires sous le /communrépertoire. Donc, en tant que root

sudo -u linedb mkdir -p /commun/data/users/lindenb

Si cela ne fonctionne pas, il peut y avoir un mappage d'ID, vous devrez donc mkae les répertoires sur le serveur xxx.xx.xxx.xxxet modifier la propriété / autorisations là-bas.

user9517
la source
merci mais cela n'a pas fonctionné sudo -u lindenb mkdir -p /commun/data/users/TMP mkdir: cannot create directory / commun / données / utilisateurs / TMP ': Permission refusée'
Pierre
Votre point sur NFSv4 est un hareng rouge mais je suis d'accord avec le reste de la réponse comme correct.
DaveG
merci pour votre réponse de toute façon, je ne suis pas assez habile pour faire ces changements seul. J'attendrai la fin des vacances de notre administrateur système et je validerai votre réponse si elle était correcte :-)
Pierre
@DaveG: pourquoi ça? Si j'essaie de chown un répertoire en tant que root sur un montage NFSv4, j'obtiens exactement le même message d'erreur que l'OP et si je passe à NFSv3, je reçois une autorisation refusée, c'est donc quelque chose à voir avec cela et la façon dont il interagit avec les identifiants utilisateur.
user9517
2
Parce que root est également écrasé sur NFSv3, le message d'erreur peut donc être différent, mais il ne pourra toujours pas créer le répertoire en tant qu'utilisateur root.
DaveG
5
mount -t nfs -o vers=3 SERVER:PATH MOUNT_PATH

Cela a fonctionné pour moi.

Shinta
la source
3

Il s'agit en effet d'un problème NFS4. Vous devrez peut-être considérer rpc.idmapd le démon de mappage NFS4 afin de résoudre ces problèmes, surtout si de nombreux utilisateurs auront besoin du mappage correct entre le client et le serveur NFS. Notez que NFS3 (dans CentOS <6 par exemple) n'a pas utilisé de démon de mappage.

ank
la source