Eu tenho um script que preciso executar em uma partição NTFS. A permissão do script está definida como 600.
Tentei modificar as permissões executando chmod 755 script.sh
, o que não relata uma falha ou algo assim - mas também não altera as permissões no arquivo:
$ stat script.sh
File: `script.sh'
Size: 297070 Blocks: 584 IO Block: 4096 regular file
Device: 811h/2065d Inode: 35515 Links: 1
Access: (0600/-rw-------) Uid: ( 1000/ xxxxxx) Gid: ( 1000/ xxxxxx)
Access: 2010-09-30 14:05:16.041621000 -0700
Modify: 2010-09-30 14:05:05.070157000 -0700
Change: 2010-09-30 14:05:05.070475000 -0700
$ chmod 755 script.sh
$ stat script.sh
File: `script.sh'
Size: 297070 Blocks: 584 IO Block: 4096 regular file
Device: 811h/2065d Inode: 35515 Links: 1
Access: (0600/-rw-------) Uid: ( 1000/ xxxxxx) Gid: ( 1000/ xxxxxx)
Access: 2010-09-30 14:05:16.041621000 -0700
Modify: 2010-09-30 14:05:05.070157000 -0700
Change: 2010-09-30 14:05:05.070475000 -0700
Como você pode ver, ele permanece inalterado.
permissions
ntfs
chmod
Nathan Osman
fonte
fonte
Respostas:
O modo é determinado pelas opções de montagem da partição (você não pode alterá-lo via chmod).
Para '755' em arquivos e '777' em diretórios, você usaria algo como
fonte
/dev/whatever
e/mnt/whatever
se eu tiver que alterar a permissão de minha partição HDD chamado/media/Prtn
ntfs-3g.usermap
. Veja abaixo ...Ao contrário do que a maioria das pessoas acredita, o NTFS é um sistema de arquivos compatível com POSIX¹ e é possível usar permissões no NTFS .
Para habilitar isso, você precisa de um "Arquivo de Mapeamento do Usuário" ou apenas a
permissions
opção ao montar (quando não é necessária compatibilidade com o Windows). Isso mapeia os usuários linux em seu sistema com os IDs de usuário como NTFS / Windows os usam internamente.Veja a página de manual do ntfs-3g para algumas informações e alguns exemplos. Se precisar de mais informações, consulte a documentação avançada do ntfs-3g sobre propriedade e permissões .
(Observe que isso não funciona em sistemas de arquivos FAT.)
¹ Sim, ele também pode armazenar nomes de arquivos válidos no linux / unix, mas não no Windows, suporta links simbólicos e hardlinks, etc.
fonte
sudo ntfs-3g.usermap /dev/disk/by-label/MY-NTFS
e entãosudo mv UserMapping /media/MY-NTFS/.NTFS-3G/
chmod 655 /some/file
na partição NTFS montada no Linux? Estou tentando descobrir como mesclar minha partição pessoal do linux para c: \ Users. O uso do usermap me permitirá manter todas as permissões? Eu estava pensando em montar o diretório c: \ Users em / home no linux.ntfs-3g manpage
link quebradoPara partições NTFS, use a
permissions
opção no fstab.Primeiro desmonte a partição NTFS.
Identifique o UUID da sua partição com
blkid
Então edite
/etc/fstab
E adicione ou edite uma linha para a partição NTFS
Faça um ponto de montagem (se necessário)
Agora monte a partição
As opções que eu lhe dei,
auto
montam automaticamente a partição quando você inicializa eusers
permitem que os usuários montem e desmontem.Você pode usar chown e chmod na partição NTFS.
fonte
users
implica noexec , nosuid e nodev . não é? Como os usuários podem montar / desmontar comnoexec
a configuração?Além de definir o fmask e / ou dmask na resposta do htorque acima, se você deseja executar scripts na unidade, também tive que definir a opção de montagem "exec".
Portanto, o exemplo seria:
fonte
Você sempre pode chamar explicitamente o interpretador de scripts, caso em que não são necessárias permissões de execução. Se o script usar bash , como pode ser verificado observando a primeira linha do script, basta executar
Observe que o script chama outros scripts ou binários na mesma partição, isso não funcionará. Observe também que a estratégia não funciona com binários, em vez de arquivos de script de texto escritos em Bash Script, Perl, Python ou similares.
fonte
/lib64/ld-linux-x86-64.so.2 ./program.bin
para programas de 64 bits e programas/lib/ld-linux.so.2 ./program.bin
de 32 bits.De acordo com a seção Propriedade e permissões da documentação do NTFS-3G, podemos usar as opções de montagem para controlar o acesso e a criação de arquivos . As combinações são muito complicadas (veja as duas tabelas lá). Também não leio e entendo todos eles. Por exemplo, não sei se as ACLs POSIX estão selecionadas no momento da compilação ou não do pacote binário NTFS-3G. Mas o melhor que saí é usar um arquivo de Mapeamento de Usuário combinado com algumas opções de montagem para aproximar um mapeamento plausível de propriedade e permissões de arquivo entre Windows e Linux.
Aviso : É apenas o que funciona melhor para compartilhar uma partição de dados NTFS (unidade
D:
no Windows) entre o Windows 8 com inicialização dupla e o Kubuntu 14.04. As instruções são registradas em retrospecção cuidadosa, mas não exaustivamente testadas. É muito cansativo e tedioso repetir todo o procedimento novamente. Portanto, siga-o por sua conta e risco. Mas, se o fizer, compartilhe sua experiência. Se você decidir seguir as instruções, leia-as completamente para ter uma imagem completa antes de realmente agir. Boa sorte!Tudo bem, aqui está você! As instruções detalhadas consistem em três partes. A parte 1 deve ser realizada no Windows, enquanto a parte 2 no Linux. A parte 3 é para teste.
Parte 1
A seção Mapeamento do Usuário da documentação do NTFS-3G especifica duas versões para configurar o mapeamento do usuário entre Windows e Linux, uma versão do Windows e uma versão do Linux. Minha experiência foi que a versão Linux acabou com uma falha . A conta do Linux não foi mapeada para a minha conta do Windows, mas uma conta desconhecida apareceu em um SID . O resultado foi uma bagunça, pois essa conta desconhecida se apropria de todos os arquivos da minha conta do Windows. Nessa situação, a menos que você tenha um privilégio administrativo para recuperar sua propriedade, os arquivos na sua conta do Windows se tornam inacessíveis. Mas mesmo se você sarna, ainda éum mapeamento errado. Isso significa que, mais tarde, quaisquer arquivos que você criar no Linux serão atribuídos a essa conta desconhecida no Windows e aqueles no Windows serão atribuídos à raiz no Linux (se bem me lembro). Portanto, no Windows, você precisa retomar a propriedade e no Linux, mudar de propriedade. Não é isso que esperamos que seja. Após várias tentativas desesperadas de corrigir o problema, desisti e me virei para a versão do Windows. Aquele funcionou. A seguir, instruções detalhadas extraídas da seção relevante da documentação do NTFS-3G:
Baixe a ferramenta usermap , extraia-a em algum lugar (no meu caso, drive
C:
), melhor fora da partição NTFS (no meu driveD:
) para ser compartilhada.Abra a linha de comando do Windows. Mude para o diretório extraído
tools
(por padrão) dausermap
ferramenta. Em seguida, execute o seguinte comando:Isso gera um modelo e o redireciona para um arquivo chamado
UserMapping
. Abra o arquivo com um editor de texto, digamos Bloco de Notas, você deverá ver as seguintes linhas:Presumivelmente, o primeiro
SID
deve ser o SID do usuário e o segundo o SID do grupo. Você pode verificá-los respectivamente pelos comandoswhoami /user
ewhoami /groups
.Depois de verificar se os SIDs estão corretos, siga as instruções no comentário, ou seja, altere
user
auser::SID
linha para o seu nome de usuário egroup
a:group:SID
linha para o nome do seu grupo principal no Linux. No Ubuntu, eles são os mesmos. Além disso, adicione o nome do seu grupo Linux também após os primeiros dois pontos dauser::SID
linha. Portanto, a linha deve ser algo parecidouser:group:SID
. Parece que, se não o fizer, os arquivos criados no Windows serão atribuídosuser:root
no Linux.Salve o arquivo. Mova-o para um diretório chamado
.NTFS-3G
(crie-o se ainda não existir) na partição NTFS a ser compartilhada (no meu casoD:
).Esta etapa é para teste na Parte 3. Na partição NTFS compartilhada, crie um novo diretório e um novo arquivo.
Parte 2
Agora inicialize no Linux.
sudo
edite o arquivo/etc/fstab
. Adicione ou modifique a linha da partição NTFS compartilhada para algo como o seguinte:O essencial é definir o
umask
(dmask
efmask
também pode funcionar, mas não testado). Escolha um valor paraumask
você, embora eu tenha escolhido077
. Parece que sem essa configuração, as permissões totais serão concedidas aoso
arquivos recém-criados.Salve o arquivo. Agora
sudo mount
ou remonte (sudo umount
e depoissudo mount
) a partição NTFS compartilhada (no meu caso/data
):Parte 3
Agora (ainda no Linux)
cd
até o ponto de montagem (no meu caso/data
),ls -l
os arquivos lá. Verifique se a propriedade e as permissões correspondentes, respectivamente, que você especificou noUserMapping
arquivo e asumask
que definiu/etc/fstab
(a correspondência entre permissões eumask
requer algum cálculo de complemento, consulte man (1) umask para obter mais informações). Se o fizerem, parabéns, metade da meta é alcançada. Caso contrário, pobre você. Pergunte ao Ubuntu ou Windows.Em seguida, crie um novo diretório e um novo arquivo.
ls -l
para verificar sua propriedade e permissões. A propriedade deve ser seu nome de usuário e grupo principal, como de costume. As permissões devem corresponder aoumask
. Agora reinicie o computador e inicialize no Windows. Localize na partição NTFS compartilhada o diretório e o arquivo que você acabou de criar no Linux. Verifique suas propriedades para ver se elas estão atribuídas à sua conta do Windows. Se estiverem, parabéns, está tudo pronto. Caso contrário, azar. Pergunte ao Windows ou Ubuntu.EOF
fonte
Thread antigo, eu sei, mas ainda relevante e faltando uma dica de caso de uso específica, composta de sugestões diferentes em vários outros fóruns / threads e testada no Ubuntu GNOME 13.04, onde eu queria uma unidade externa para armazenar uma biblioteca Steam ...
Quando a partição NTFS está em uma unidade USB externa, por exemplo - o que significa que a partição é montada rapidamente durante a conexão -, você pode usar o método a seguir para fazer o udev montar partições NTFS com direitos de execução.
Abra uma janela do terminal e faça:
Em seguida, cole esta linha no que deve ser um arquivo em branco / novo (caso contrário, saia do nano e emita novamente o comando, mas inicie o nome do arquivo com um número maior, como 91 -...):
Salve e feche. Desconecte a unidade e faça no terminal:
Em seguida, conecte a unidade novamente e aproveite :)
fonte
Todas as etapas:
Instalar
ntfs-3g
:Desmonte a partição NTFS :
Use
ntfs-3g.usermap
para gerar seuUserMapping
arquivo:ou
Remonte a partição NTFS para adicionar o
UserMapping
arquivo:Atualize seu
fstab
arquivo:Atualize a linha de montagem :
#
no início.UUID=34A0456DA04536A0 /mnt/windows ntfs defaults,uid=1000,gid=1000 0 0
UUID=34A0456DA04536A0 /mnt/windows ntfs-3g defaults 0 0
(Usentfs-3g
e somentedefault
opção)Deve ser algo como isto:
#UUID=34A0456DA04536A0 /mnt/windows ntfs defaults,uid=1000,gid=1000 0 0
UUID=34A0456DA04536A0 /mnt/windows ntfs-3g defaults 0 0
Por fim, remonte usando o seu
fstab
:Faça isso uma vez para cada partição NTFS que você possui!
AVISO COM O SO WINDOWS!
Verifico com o Windows 7+ e as permissões afetam o sistema operacional Windows! Altero as permissões do meu diretório inicial na partição do Windows e, quando usei o Windows novamente, pude ver que o usuário estava com defeito!
fonte
Não há perguntas relacionadas a dispositivos USB. Esta resposta fornece um truque feio se você deseja montar todos os dispositivos USB automaticamente com permissões de execução.
fonte
Montar partição NTFS em uma unidade USB com permissões personalizadas e proprietário
No Linux, o modo NTFS (e FAT32) é determinado pelas opções de montagem da partição . Você não pode alterá-lo via chmod.
Assunção: o drive USB é visto como
sdb1
, modificar para coincidir com a letra de unidade e número da partição no seu caso . A sintaxe geral ésdxn
, ondex
está a letra da unidade en
é o número da partição, como visto por exemplosudo lsblk -f
Preparando
Desmonte a partição NTFS.
Crie um ponto de montagem personalizado (somente se você desejar um novo ponto de montagem), por exemplo, com
Verifique o
uid
número do seu ID de usuário (geralmente é 1000, às vezes 1001 ou 1002 ...)e use esse número se desejar obter a propriedade (o padrão é
root
).Monte a partição NTFS
Exemplo 1 (sem permissões de execução para arquivos, sem acesso para 'outros'),
Nesse caso, você pode executar o script
this-script
comExemplo 2 (com permissões de execução para arquivos, sem acesso para 'outros'),
Nesse caso, você pode executar o script
this-script
come você também pode executar programas executáveis a partir desse local (não recomendado).
Exemplo 3 (permissões completas para todos, o que é conveniente, mas não seguro, quando há vários usuários),
fonte
/media$ sudo mkdir -p sdb1
/media$ sudo mount -o rw,users,umask=000,exec /dev/sdb1 ./sdb1/ mount: block device /dev/sdb1 is write-protected, mounting read-only
chkdsk /f X:
acordo com este link ubuntuforums.org /… - Se ainda não tiver sorte, faça backup dos dados e tente de acordo com askubuntu.com/questions/144852/…