74058


`chmod 455 file` で指定のファイルを  
`-r--r-xr-x`としたいのですが  
`-r-xr-xr-x`となってしまい、ユーザの実行のパーミッションの変更が出来ません。  
ファイルオーナーは自分です。

ちなみに書き込みのパーミッションだけは変更が出来て、  
`chmod 000`をあてても  
`-r-xr-xr-x`  
となり、111でも444でも555でも同じ結果が返ってきてしまいます。書き込み権限はu、g、oで変更可能なのを確認したので書き込みの権限だけ変更できる状態になってると思われます。

[code]

    $ chmod 000 file
    $ ls -la
    total 0
    drwxrwxrwx 1 ユーザ名 .
    drwxrwxrwx 1 ユーザ名 ..
    -r-xr-xr-x 1 ユーザ名 file
    
[/code]

というかんじです、よろしくお願いします。  
環境は Windows10 で、bash on windows (WSL) を使用しています。


CC BY-SA 4.0
2021-02-16T14:44:58.673
74055
2021-03-07T05:33:39.297
2021-02-18T00:09:20.983
3060
43995
question
linux wsl
chmod でアクセス権限の変更ができない


### WSL (Bash ON Windows) の場合

コメントにある URLが参考になるでしょう。  
(ファイルシステム内に, chmodで扱う情報を, 基本持っていない点においては以下の情報も参考になることもあるかも)

### (Git) Bash for Windows の場合

UNIX系 OSの場合, ファイルシステムにパーミッションを持ちます。  
たとえば Linux の ext-fs (現在は ext4など)  
しかし Windowsの FATなどは, パーミッション(owner/userとか groupとか otherなど)ではなく, ReadOnly とか
System とか(？) 限られた情報しか持ちません。(起源がもともと個人ユーザーという面もあるのでしょう)

参考: Windows コマンド [attrib](https://docs.microsoft.com/ja-jp/windows-
server/administration/windows-commands/attrib)

なので, `chmod` で FAT系ファイルシステムにアクセスしても UNIXと同等には扱えません。  
ext4の USBメモリーなど用意しマウントすればもしかするとパーミッションにアクセス可能になるかもしれません  
(bash for windows のコマンドの中身が手抜きでない限り)

また, Linux上から, FATの USBメモリーにアクセスした場合も, 同様に, 変更できそうに見えて変更できないことが多々あります。  
そもそも FATを `mount`するときに, 次のようなオプションを指定するくらいなので

> uid=value と gid=value  
>  すべてのファイルの所有者とグループを設定する (デフォルトはカレントプロセスの uid と gid)。


CC BY-SA 4.0
2021-02-16T15:56:16.593
74058
2021-03-07T05:33:39.297
2021-03-07T05:33:39.297
43025
43025
74055
answer