У меня есть папка с моими примечаниями о системе внутри.
Я зарегистрирован как user1
cd masternotes
производит:
bash: cd: mastersnotes: permission denied
whoami
производит: user1
ls -l
производит:
drw-rw-rw-. 2 user1 user1 4096 Mar 26 20:47 masternotes
ls -l
в каталоге производит:
-rw-rw-rw-. 7 user1 user1 345 Oct 7 2006 crontab
-rw-rw-rw-. 7 user1 user1 348 Oct 7 2006 crontab~
-rw-rw-rw-. 7 user1 user1 3702 Oct 7 2006 grep_usage.txt
-rw-rw-rw-. 7 user1 user1 91868 Oct 7 2006 lvm-layout-10-14-03.tif
-rw-rw-rw-. 7 user1 user1 30 Oct 7 2006 mysql
-rw-rw-rw-. 7 user1 user1 35764 Oct 7 2006 notes
Я работал chmod -R 666 masternotes
на папке.
Я работал chown
базироваться и chgrp
базироваться и отступать снова к user1.
корень может убывать и ввести папку и открыть файл.
user1 не может.
Какие-либо подсказки относительно того, что продолжается здесь?
Это проблема с разрешениями , а не проблема владения.
Разрешения на выполнение (сокращенно x
и появляются там, где -
в rw-
) явно отсутствуют в разрешениях, которые вы нам показали.
Разрешения на выполнение для каталогов работают совсем иначе, чем для обычных файлов. Для каталогов разрешения на выполнение дают возможность ввести каталог (то есть, cd
к нему или открыть его в файловом менеджере). Они также дают возможность попытаться получить доступ к файлам в каталоге (хотя, будет ли это успешно, также зависит от других разрешений, иногда включая разрешения доступа к файлам).
root
может войти в каталог, потому что он на самом деле не связан с разрешениями обычным способом. Во многих отношениях команды и приложения, которые запускаются как root
, будут пытаться уважать разрешения, чтобы соответствовать пожеланиям пользователя. Но root
обладает способностью выполнять любую операцию (которую может выполнять ОС) с любым файлом или каталогом. В оболочке root
вход cd
в каталог, который не имеет каких-либо разрешений на выполнение, будет успешным.
Решение проблемы состоит в следующем:
chmod u+x masternotes
Это дает (+
) владельцу masternotes
(u
) разрешения на выполнение (x
]) в каталоге.
Тогда вы сможете войти в каталог и попытаться получить к нему доступ, как обычный пользователь.
Если вы хотите, чтобы члены владельца этой группы тоже могли это делать, вы можете запустить это вместо:
chmod ug+x masternotes
Но вы, вероятно, единственный член вашей пользовательской группы (которая владеет папкой).
Команда chmod
здесь не требует запуска как root
- умышленно, я не включил sudo
в любую команду. Вы владеете папкой, поэтому вы можете самостоятельно изменять ее разрешения - вам не нужно root
делать это за вас.
В случае, если вас интересует установка разрешений на выполнение численно , помните, что для каждой добавляемой вами цифры (начиная с нуля):
Например, , если вы хотите, чтобы каждый мог читать и выполнять some-file
, но только владелец мог писать, вы должны использовать:
chmod 755 some-file
Я рекомендую FilePermissions в документации сообщества для дальнейшего чтения о разрешениях файлов в Ubuntu, включая исполняемый бит и его особое значение для папок.