Сбой mkdir, хотя каталог существует, и у меня, похоже, есть права на запись - PullRequest
0 голосов
/ 13 апреля 2020

Я использую GitBash в Windows 10. Я хотел бы создать папку в /c/Users/User.Name/Documents (косые черты выглядят так, как они появляются в GitBash. В Windows Исследователь они будут C:\Users\User.Name\Documents).

Если я cd в /c/Users/User.Name/Documents и наберу mkdir=test, произойдет сбой с mkdir: cannot create directory 'test': No such file or directory.

Разрешения для папки Documents: drwxr-xr-x. Я владелец папки: whoamI = User.Name, которая также является именем владельца папки Documents, в которой я пытаюсь создать подкаталог (видно при запуске ls -lh while in /c/Users/User.Name). Если я cd .. в /c/Users/User.Name и mkdir=test, то команда работает. Я являюсь владельцем и имею такие же разрешения в /c/Users/User.Name и /c/Users/User.Name/Documents. Путь /c/Users/User.Name/Documents - это фактический путь, я не пытаюсь получить доступ через символьную ссылку c.

Я могу создать папку test вручную в /c/users/User.Name/Documents с помощью Windows Explorer в этом случае я могу видеть это, когда я cd в Documents. Если я попытаюсь удалить его с помощью rm -r test, то произойдет сбой с rm: cannot remove 'test': Permission denied. Разрешения для папки drwxr-xr-x, она принадлежит мне.

Полагаю, я не правильно понимаю права собственности / разрешения. Кто-нибудь может посоветовать, как это решить? Я нашел подобный вопрос здесь, где они предлагают изменить права доступа к папке, но, насколько мне известно, у меня есть полные права и я владею папкой: mkdir-doesnt-work-when-im-in-my-documents-but -does-работа-при-им-in c.

1 Ответ

0 голосов
/ 13 апреля 2020

Разрешения drwxr-xr-x более или менее объясняют, что происходит. Только владелец может писать в этот каталог, что обозначено w в первой группе разрешений.

Чтобы создать там каталог, вы можете использовать chmod для изменения разрешений. 766 позволит всем читать и писать. Здесь хорошее описание разрешений Linux здесь .

Однако вполне вероятно, что любая команда chmod завершится неудачно, поскольку терминал gitbash считает, что root является владельцем каталога документов. Чтобы доказать это, запустите ls -al в каталоге выше документов, чтобы увидеть владельца. Если root является владельцем, вам, вероятно, нужно добавить sudo перед командой mkdir или chmod. Или вы можете изменить владельца, что делается с помощью команды chown, но может привести к непредвиденным последствиям в Windows.

...