Разрешить пользователю root читать, писать, выполнять, владельцу папки - только чтение, а всем остальным не иметь доступа к папке Ubuntu.

3

Я делаю «варгейм», похожий на тот, что есть на overthewire.org. У меня есть пользователь root, Ubuntu, который может читать, записывать и выполнять файлы в папке. У меня есть один пользователь в папке, который должен иметь доступ только для чтения к файлам в этой папке, а все остальные не должны иметь доступа к папке. Что такое команда chmod для этого? Спасибо!

Bob monkeywarts
источник
Может ли пользователь только для чтения выполнять файлы?
Darren

Ответы:

0

Вы должны установить пользователя, чтобы быть владельцем chown -R <username> <foldername> (-R работает рекурсивно), затем установите права на чтение только для пользователя chmod -R 400 <foldername>, Root сможет читать и записывать файлы независимо от установленных прав доступа. Теперь проблема, с которой вы столкнетесь, заключается в том, что root не сможет выполнять какие-либо файлы, если не установлен хотя бы один бит выполнения, поэтому вам придется разрешить пользователю-владельцу также выполнять файлы с chmod -R 500 <foldername>,

Увидеть Вот для довольно хорошего объяснения прав доступа к файлам.

Darren
источник
0

У меня есть пользователь root, Ubuntu, […]

Я не знаю, ссылаетесь ли вы на root пользователь или для некоторых регулярный пользователь ubuntu который вы считаете пользователем root для вашей игры. Это не сильно изменится в моем ответе, хотя.

В Ubuntu каждый обычный пользователь по умолчанию имеет свою группу. Такая группа по умолчанию содержит только соответствующего пользователя. Это делает возможным следующий трюк:

sudo chown ubuntu:bob fileA
sudo chmod 740 fileA

Сюда ubuntu имеет все разрешения и bob (в качестве единственного члена bob группа) может только читать файл.

Вы могли бы сделать это наоборот:

# but don't! explanation below
sudo chown bob:ubuntu fileA
sudo chmod 470 fileA

но потом bob как владелец сможет chmod и дать себе чрезмерные разрешения или отнять их у ubuntu группа, или калечить с разрешениями "всех остальных". Любой ответ, который советует вам сделать bob владелец должен учитывать этот недостаток.

Возможно, вы захотите установить владельца каталога и разрешения аналогичным, но несколько другим способом. Вы можете сделать эти изменения рекурсивно. Обратите внимание, что chown -R влияет на каталоги и файлы, поэтому вам нужен подход, который может отличить их друг от друга. Увидеть этот ответ , Подход работает с chmod а также chown и другие инструменты. Приспособьте это к своим потребностям.

Чтобы рекурсивно дать каталогам права на чтение и выполнение:

find /path/to/base/dir -type d -exec chmod 755 {} +

Чтобы рекурсивно дать файлам права на чтение:

find /path/to/base/dir -type f -exec chmod 644 {} +
Kamil Maciorowski
источник
Не всегда учетные записи пользователей имеют свои собственные группы. во многих случаях пользователи находятся в пользователи группа. поэтому этот ответ является решением, но только для конкретных случаев.
Massimo