Я - владелец папки, но не могу получить доступ к ней

У меня есть папка с моими примечаниями о системе внутри.

Я зарегистрирован как 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 не может.

Какие-либо подсказки относительно того, что продолжается здесь?

4
задан 27 March 2013 в 08:38

1 ответ

Это проблема с разрешениями , а не проблема владения.

Разрешения на выполнение (сокращенно x и появляются там, где - в rw-) явно отсутствуют в разрешениях, которые вы нам показали.

Разрешения на выполнение для каталогов работают совсем иначе, чем для обычных файлов. Для каталогов разрешения на выполнение дают возможность ввести каталог (то есть, cd к нему или открыть его в файловом менеджере). Они также дают возможность попытаться получить доступ к файлам в каталоге (хотя, будет ли это успешно, также зависит от других разрешений, иногда включая разрешения доступа к файлам).

root может войти в каталог, потому что он на самом деле не связан с разрешениями обычным способом. Во многих отношениях команды и приложения, которые запускаются как root, будут пытаться уважать разрешения, чтобы соответствовать пожеланиям пользователя. Но root обладает способностью выполнять любую операцию (которую может выполнять ОС) с любым файлом или каталогом. В оболочке root вход cd в каталог, который не имеет каких-либо разрешений на выполнение, будет успешным.

Решение проблемы состоит в следующем:

chmod u+x masternotes

Это дает (+) владельцу masternotes (u) разрешения на выполнение (x ]) в каталоге.

Тогда вы сможете войти в каталог и попытаться получить к нему доступ, как обычный пользователь.

Если вы хотите, чтобы члены владельца этой группы тоже могли это делать, вы можете запустить это вместо:

chmod ug+x masternotes

Но вы, вероятно, единственный член вашей пользовательской группы (которая владеет папкой).

Команда chmod здесь не требует запуска как root - умышленно, я не включил sudo в любую команду. Вы владеете папкой, поэтому вы можете самостоятельно изменять ее разрешения - вам не нужно root делать это за вас.

В случае, если вас интересует установка разрешений на выполнение численно , помните, что для каждой добавляемой вами цифры (начиная с нуля):

  • 4 для чтения.
  • 2 для записи.
  • 1 для выполнения.

Например, , если вы хотите, чтобы каждый мог читать и выполнять some-file , но только владелец мог писать, вы должны использовать:

chmod 755 some-file

Я рекомендую FilePermissions в документации сообщества для дальнейшего чтения о разрешениях файлов в Ubuntu, включая исполняемый бит и его особое значение для папок.

0
ответ дан 27 March 2013 в 08:38

Другие вопросы по тегам:

Похожие вопросы: