Não é possível alterar as permissões da raiz do sistema de arquivos

3

Quando escrevo ls -la, a saída é:

tusharmakkar08-Satellite-C660 tusharmakkar08 # ls -la
total 88
drwxr-x---+ 10 root root  4096 Apr 18 19:43 .
drwxr-xr-x   4 root root  4096 Mar 18 17:35 ..
drwxr-xr-x   4 root root 32768 Jan  1  1970 CFB1-5DDA
drwxrwxrwx   2 root root  4096 Feb 23 00:09 FA38015738011473
drwxrwxrwx   2 root root  4096 Apr 17 14:00 Local
drwxrwxrwx   2 root root  4096 Mar 19 05:04 Local0Disk1
drwxrwxrwx   2 root root  4096 Apr 18 19:43 Local4x20Disk1
drwxrwxrwx   2 root root  4096 Feb 23 00:09 Local Disk
drwxrwxrwx   1 root root 24576 Apr 19 15:15 Local\x20Disk1
drwxrwxrwx   2 root root  4096 Feb 23 00:08 PENDRIVE

Agora quero alterar as permissões do CFB1-5DDA, mas não consigo fazer isso. Quando eu escrevo

chmod 777 CFB1-5DDA

ainda as permissões permanecem inalteradas. A saída de

sudo blkid -c /dev/null

é

tusharmakkar08-Satellite-C660 tusharmakkar08 # sudo blkid -c /dev/null
/dev/sda2: UUID="FA38015738011473" TYPE="ntfs" 
/dev/sda3: LABEL="Local Disk" UUID="01CD72098BB21B70" TYPE="ntfs" 
/dev/sda4: UUID="2ca94bc3-eb3e-41cf-ad06-293cf89791f2" TYPE="ext4" 
/dev/sda5: UUID="CFB1-5DDA" TYPE="vfat"

A saída de

cat /etc/fstab 

é

tusharmakkar08-Satellite-C660 tusharmakkar08 # cat /etc/fstab
# /etc/fstab: static file system information.
#
#                

#Entry for /dev/sda4 :
UUID=2ca94bc3-eb3e-41cf-ad06-293cf89791f2   /   ext4    defaults    01
#Entry for /dev/sda2 :
UUID=FA38015738011473   /media/sda2 ntfs-3g defaults,locale=en_IN   0   0
#Entry for /dev/sda5 :
UUID=CFB1-5DDA  /media/tusharmakkar08/CFB1-5DDA vfat    defaults    0   0
/dev/sda3   /media/tusharmakkar08/Local4x20Disk1 fuseblk defaults,nosuid,nodev,allow_other,blksize=4096  0   0
/dev/sda3   /media/tusharmakkar08/Local\x20Disk1    ntfs-3g defaults,nosuid,nodev,locale=en_IN  0   0

#/dev/sda3  /media/tusharmakkar08/Local4x20Disk1 ntfs    defaults,nls=utf8,umask=0222,nosuid,nodev   0   0

E a saída de

mount

é

tusharmakkar08-Satellite-C660 tusharmakkar08 # mount
/dev/sda4 on / type ext4 (rw)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755)
cgroup on /sys/fs/cgroup type tmpfs (rw,relatime,mode=755)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,relatime,cpuset)
cgroup on /sys/fs/cgroup/cpu type cgroup (rw,relatime,cpu)
cgroup on /sys/fs/cgroup/cpuacct type cgroup (rw,relatime,cpuacct)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,relatime,memory)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,relatime,devices)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,relatime,freezer)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,relatime,blkio)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,relatime,perf_event)
/dev/sda2 on /media/sda2 type fuseblk (rw,nosuid,nodev,allow_other,blksize=4096)
/dev/sda5 on /media/tusharmakkar08/CFB1-5DDA type vfat (rw)
/dev/sda3 on /media/tusharmakkar08/Local\x20Disk1 type fuseblk (rw,nosuid,nodev,allow_other,blksize=4096)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
gvfsd-fuse on /run/user/tusharmakkar08/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=tusharmakkar08)
    
por tusharmakkar08 28.04.2013 / 15:57

2 respostas

5

chmod 777 CFB1-5DDA falha porque CFB1-5DDA é um ponto de montagem e o sistema de arquivos montado é vfat. Portanto, você está tentando gravar metadados em um sistema de arquivos que o sistema de arquivos não suporta (isto é, não pode armazenar). Simples assim.

strace chmod 777 CFB1-5DDA mostra o erro do kernel.

Para alterar os direitos de acesso, você deve alterar a montagem ( -o remount ou umount; mount ).

    
por 28.04.2013 / 16:31
1

Não consegui descobrir qual partição / montagem está realmente fazendo o backup do diretório / arquivos que estão causando problemas de permissão.

Se for um NTFS ou possivelmente um dos fusíveis, as permissões exibidas em seu cliente podem ser enganosas. Eles não são necessariamente as permissões reais. As verdadeiras permissões para estes são governadas pela conta real que está fazendo a montagem do compartilhamento NTFS / FUSE.

Para as permissões verdadeiras, você provavelmente terá que procurar o originador das permissões (ou seja, a máquina compartilhando os arquivos), em vez do lado do cliente.

Por exemplo

Aqui estou montando um compartilhamento do Samba usando o mount.cifs. Antes de montar o compartilhamento, o diretório onde eu o montarei (também conhecido como o ponto de montagem) é permitido assim:

$ ls -dl /mnt
drwxr-xr-x. 5 root root 4096 Apr 20  2011 /mnt/

O conteúdo deste diretório é o seguinte:

$ ls -la /mnt
total 20
drwxr-xr-x.  5 root root 4096 Apr 20  2011 .
drwxr-xr-x. 26 root root 4096 Apr 26 08:11 ..
drwxr-xr-x.  2 root root 4096 Dec 28  2010 m1
drwxr-xr-x   2 root root 4096 Apr 20  2011 test1
drwxr-xr-x   2 root root 4096 Apr 20  2011 test2

Agora eu montei meu compartilhamento de samba "sam" vindo do servidor "bart" usando a conta de usuário "sam".

NOTA: a conta de usuário "sam" é local para o servidor "bart", não minha máquina local.

$ mount -t cifs //bart/sam -o username=sam /mnt

Agora vamos ver como o / mnt se parece:

$ ls -ld /mnt/
drwxr-x--- 123 5060 1000 0 Apr 28 12:14 /mnt/

$ ls -l /mnt/ | head -5
total 72828
drwxr-xr-x  3 5060 users        0 Oct 23  2009 backup_archives
-rw-r--r--  1 5060  1000     9907 Jan 31 14:39 bashrc
-rw-r--r--  1 root root     50664 Oct 10  2007 bg_body.png
drwxr-xr-x  4 5060 users        0 Mar 16  2012 bin

As permissões que o diretório / mnt tinha anteriormente se foram, desde que tenhamos o compartilhamento Samba montado neste local. O original / mnt não se foi, se fôssemos a unmount /mnt o original / mnt ainda está lá, a montagem não destrói o conteúdo de um diretório sob o qual você está montando no topo.

OBSERVAÇÃO: O ID do usuário é exibido como 5060, mais evidências de que você está lidando com um sistema de arquivos remoto que o sistema local não tem conhecimento desses IDs de usuário.

pontos-chave para lembrar

  • Os arquivos que estão sendo exibidos não são realmente parte do sistema de arquivos local
  • as permissões são ditadas pelo servidor dos arquivos, não pelos clientes
  • As tecnologias de montagem
  • são inerentemente diferentes, então você precisa prestar atenção em quais estão sendo usadas onde
por 28.04.2013 / 16:18