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

749
Bob monkeywarts

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

3
Может ли пользователь только для чтения выполнять файлы? Darren 7 лет назад 0

2 ответа на вопрос

0
Darren

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

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

0
Kamil Maciorowski

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

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

В 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 {} + 
Не всегда учетные записи пользователей имеют свои собственные группы. во многих случаях пользователи входят в группу * users *. поэтому этот ответ является решением, но только для конкретных случаев. Massimo 5 лет назад 0