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

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

У меня есть папка с моими заметками о системе.

Я вошел в систему как пользователь1

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к пользователю root, затем chgrpк пользователю root и снова вернулся к пользователю user1.

root может войти в папку и открыть файл.

пользователь1 не может.

Есть ли какие-нибудь подсказки относительно того, что здесь происходит?

решение1

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

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

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

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

Решениедля решения проблемы нужно запустить:

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, включая бит исполнения и его особое значение для папок.

Связанный контент