Não é possível aplicar o chmod a um arquivo

18

Eu tenho um arquivo no meu HDD,

cd /media/celebisait/5AC69788C6976355

Existe o meu arquivo chamado myFile.tar.gz . Eu faço um ls -l ,

-rw------- 2 celebisait celebisait  1387745311 Jun  6  2013 myFile.tar.gz

Tudo parece bem. No entanto, quando eu faço,

$ sudo chmod 755 myFile.tar.gz

Eu não tenho erros, mas nada acontece, ou seja, quando eu faço ls -l novamente, recebo a mesma saída,

-rw------- 2 celebisait celebisait  1387745311 Jun  6  2013 myFile.tar.gz

Chmod não muda .. Por quê?

PS: Eu uso o Ubuntu 13.04.

Editar:

$ cd /media/celebisait/5AC69788C6976355
$ df

Filesystem     1K-blocks      Used Available Use% Mounted on
/dev/sda2       89873576  42976028  42325544  51% /
none                   4         0         4   0% /sys/fs/cgroup
udev            16436736         4  16436732   1% /dev
tmpfs            3289260       920   3288340   1% /run
none                5120         0      5120   0% /run/lock
none            16446280       764  16445516   1% /run/shm
none              102400        52    102348   1% /run/user
/dev/sda1          94759      2208     92551   3% /boot/efi
/dev/sdb1      767999996 541212516 226787480  71% /media/celebisait/5AC69788C6976355
/dev/sdb2      767999996   1466472 766533524   1% /media/celebisait/54D09DBDD09DA5B0

Editar 2:

$ cd /media/celebisait/5AC69788C6976355
$ mount

/dev/sda2 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/cgroup type tmpfs (rw)
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)
none on /sys/firmware/efi/efivars type efivarfs (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)
/dev/sda1 on /boot/efi type vfat (rw)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
gvfsd-fuse on /run/user/celebisait/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=celebisait)
/dev/sdb1 on /media/celebisait/5AC69788C6976355 type fuseblk (rw,nosuid,nodev,allow_other,default_permissions,blksize=4096)
/dev/sdb2 on /media/celebisait/54D09DBDD09DA5B0 type fuseblk (rw,nosuid,nodev,allow_other,default_permissions,blksize=4096)

Editar 3:

$ sudo fdisk -l /dev/sdb1

Disk /dev/sdb1: 786.4 GB, 786432000000 bytes
255 heads, 63 sectors/track, 95611 cylinders, total 1536000000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x6e697373

This doesn't look like a partition table
Probably you selected the wrong device.

     Device Boot      Start         End      Blocks   Id  System
/dev/sdb1p1   ?  1936269394  3772285809   918008208   4f  QNX4.x 3rd part
Partition 1 does not start on physical sector boundary.
/dev/sdb1p2   ?  1917848077  2462285169   272218546+  73  Unknown
Partition 2 does not start on physical sector boundary.
/dev/sdb1p3   ?  1818575915  2362751050   272087568   2b  Unknown
Partition 3 does not start on physical sector boundary.
/dev/sdb1p4   ?  2844524554  2844579527       27487   61  SpeedStor
Partition 4 does not start on physical sector boundary.

Partition table entries are not in disk order

Editar 4:

$ sudo fdisk -l /dev/sdb

Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x9c73d093

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048  1536002047   768000000    7  HPFS/NTFS/exFAT
/dev/sdb2      1536002048  3072002047   768000000    7  HPFS/NTFS/exFAT
/dev/sdb3      3072002048  3907026943   417512448    7  HPFS/NTFS/exFAT
    
por Sait 21.01.2014 / 15:19

5 respostas

15

TL; DR;

NOTA: Com base na atualização contínua da pergunta pelo OP com novas informações, determinou-se que o problema era que ele estava montando uma partição NTFS. Então, o item 3 abaixo é a resposta real para o problema dele. Deixo os outros 2 métodos aqui para outros que podem encontrar problemas semelhantes que não estão usando uma partição NTFS.

Idéia # 1 - somente leitura de mídia (ISO / CD / DVD)?

Dê uma olhada na saída do comando mount , especificamente algo assim:

$ mount | grep '/media'

O dispositivo montado em /media/celebisait provavelmente é um arquivo ISO ou uma mídia de CD / DVD. Nesse caso, você não poderá obter acesso de gravação, pois eles são normalmente somente de leitura.

Você pode dizer o que está montado como leitura / gravação vs. somente leitura voltando-se novamente para a saída do comando mount .

Exemplo

/dev/mapper/fedora_greeneggs-root on / type ext4 (rw,relatime,seclabel,data=ordered)

Observe a saída entre parênteses. O primeiro argumento antes da primeira vírgula é rw , que indica acesso de leitura / gravação. Se fosse um dispositivo só de leitura, teria um ro em seu lugar.

Método alternativo

Você também pode descobrir de qual dispositivo um determinado local no seu HDD é originado usando o comando df -h . . Isso mostrará o dispositivo de origem do diretório atual.

$ df -h .
Filesystem                         Size  Used Avail Use% Mounted on
/dev/mapper/fedora_greeneggs-home  402G  156G  226G  41% /home

Aqui podemos ver que estou em um diretório / subdiretório que faz parte da montagem /home , que é apoiada pelo dispositivo /dev/mapper/fedora_greeneggs-home .

Com o nome do dispositivo, você pode procurar por isso também na saída de mount .

Exemplo

$ mount | grep '/dev/mapper/fedora_greeneggs-home'
/dev/mapper/fedora_greeneggs-home on /home type ext4 (rw,relatime,seclabel,data=ordered)

Idéia # 2 - Mas o dispositivo é montado como leitura / gravação!

Se você achar que o dispositivo está montado como leitura / gravação, convém instalar o PySDM - um Gerenciador de dispositivos de armazenamento que permite personalização de pontos de montagem de disco rígido sem acesso manual a /etc/fstab . Também permite a criação de regras udev para configuração dinâmica de dispositivos de armazenamento

passos para ler / escrever

  1. instale o gerenciador de dispositivos de armazenamento físico: sudo apt-get install pysdm
  2. gerenciador de dispositivos de armazenamento aberto: sudo pysdm
  3. escolha suas unidades necessárias
  4. assessoria de imprensa
  5. desmarque a abertura como somente leitura
  6. verifique o usuário proprietário do sistema de arquivos e escreva seu nome de usuário: celebisait
  7. pressione ok
  8. pressione aplicar
  9. umount Drive
  10. monte-o

Fonte: Como posso alterar permissões em unidades externas?

Idéia # 3 - partições NTFS

Com base na saída que você publicou para o comando:

$ sudo fdisk -l /dev/sdb

...
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048  1536002047   768000000    7  HPFS/NTFS/exFAT

Você tem partições NTFS, o que explica por que você não conseguiu chmod dos arquivos nas partições montadas em NTFS. Se você estiver usando o módulo ntfs-3g para acessar a partição NTFS, você deve ser capaz de ler / gravar o disco, mas não afeta suas permissões usando o conjunto normal de ferramentas Unix.

por 21.01.2014 / 15:31
7

Como você está mencionando um HDD.
Minha resposta é que não é possível chmod um arquivo em uma partição NTFS ou FAT32.
Na verdade, apenas o sistema de arquivos unix / linux, como ext3 , ext4 , suporta esses atributos.

/dev/sdb1            2048  1536002047   768000000    7  HPFS/NTFS/exFAT

Isso mostra claramente que /dev/sdb1 era uma partição NTFS.

    
por 21.01.2014 / 15:31
5
/dev/sdb1            2048  1536002047   768000000    7  HPFS/NTFS/exFAT
/dev/sdb1 on /media/celebisait/5AC69788C6976355 type fuseblk (rw,nosuid,nodev,allow_other,default_permissions,blksize=4096)

O tipo fuseblk e a saída do fdisk indicam que sua partição é uma partição NTFS. Eles não suportam o esquema de permissões de arquivos UNIX / LINUX como outros sistemas de arquivos nativos * NIX.

A solução é apenas mover o arquivo para um sistema de arquivos que suporta essas permissões, como sua raiz. A maneira que você quer fazer isso simplesmente não funcionará.

cp /media/celebisait/5AC69788C6976355/myFile.tar.gz ~/
chmod 755 ~/myFile.tar.gz
ls -l ~/myFile.tar.gz
    
por 21.01.2014 / 16:01
1

Eu tive um problema semelhante com uma partição NTFS recentemente. Já foi dito que o NTFS não pode ter permissões alteradas, mas essas permissões podem ser definidas na montagem do sistema de arquivos. Dados os IDs dos grupos ou usuários que você deseja acessar os arquivos, você pode fazer algo como:

sudo mount -t ntfs -o gid=46,fmask=0003,dmask=0002 /dev/sdb1 /media/DATAPART1

monte a página man para que você possa adaptá-la ao seu caso de uso:

link

    
por 22.01.2014 / 00:14
0

O diretório é provavelmente somente leitura. Tente isto:

ls -ld .
chmod 755 .
chmod 755 myFile.tar.gz
    
por 21.01.2014 / 23:14

Tags