Как использовать группы Linux, чтобы ограничить доступ для чтения, записи и выполнения другими пользователями к каталогу?
ОБНОВЛЕНИЕ: я понял, что я хотел сделать в конечном счете. Смотрите здесь: https://raspberrypi.stackexchange.com/questions/13401/locking-down-raspbian-to-only-allow-limited-features/58778
Я очень смущен этим ответом здесь: /questions/202676/kak-ya-mogu-podklyuchitsya-k-udalennomu-rabochemu-stolu-mashinyi-fedora-iz-drugo/202687#202687
Это говорит:
Пользователю понадобятся права на чтение / выполнение для выполнения любой команды (ls, оболочка входа и т. Д.), Поэтому вы не можете легко отобрать все права.
Обычно этого достаточно, чтобы убедиться, что они не могут связываться с домашними каталогами других пользователей. Для этого поместите пользователя в новую группу (например, "недоверенная"), выберите его домашний каталог и отмените группу и другие права на все домашние каталоги: chmod go-rwx /home/*/
Но я не очень понимаю, что он говорит. Кто-нибудь, пожалуйста, помогите мне. Вот что я получил до сих пор, некоторые из моих вопросов выделены жирным шрифтом ниже:
В полном объеме:
- Создайте нового пользователя с именем "гость":
sudo adduser guest
- Создайте новую группу под названием "Ненадежный":
sudo groupadd untrusted
- Добавить пользователя "гость" в группу "недоверенных":
sudo usermod -a -G untrusted guest
Убедитесь, что пользователь "гость" теперь входит в группу "недоверенный":
groups guest
Выход:
гость: гость ненадежный
Это означает, что пользователь "гость" является частью групп "гость" и "ненадежный". Хорошо.
- Возьмите на себя ответственность за любые каталоги, к которым у вас должен быть доступ "гость". Обратите внимание, что так как мы использовали
adduser
выше, гость уже имеет доступ к своей домашней папке "/ home / guest". Однако предоставить пользователю "гостя" из других каталогов можно следующим образом:sudo chown -hR guest /any/directory/you/want/guest/to/own
- ??? (правильно ли я делал вышеизложенное???) - Я все еще хочу, чтобы другие суперпользователи могли видеть файлы гостей. Какой смысл делать "ненадежную" группу в любом случае? Я не вижу, как это что- то меняет .
- Отмените права на чтение, запись и выполнение (rwx) Group и Other для всех остальных домашних каталогов: ??? Если я сделаю
chmod go-rwx /home/*/
тогда другие sudoers не могут даже читать каталоги гостя - это не то, что я хочу!- я просто хочу, чтобы гость не мог читать каталоги других, не совсем наоборот, хотя, если я сделаю guest2, он не должен Вы также не можете видеть каталоги guest1, и guest1 не должен видеть каталоги guest2, но sudoers должен иметь возможность видеть как каталоги guest1, так и guest2.
2 ответа
Я не знаю, зачем вам нужна "ненадежная" группа, если у вас есть только один "гость" (и обычно у вас должен быть только один гость). Группу "Гость" можно использовать как "недоверенную". В любом случае, я постараюсь быть кратким с объяснением, чтобы указать вам правильное направление:
??? (правильно ли я делал вышеизложенное???) - Я все еще хочу, чтобы другие суперпользователи могли видеть файлы гостей.
Любой, кто вошел в учетную запись "root", может сделать это. Либо использовать su -c "do something"
или же sudo do something
, Чтобы войти как root, используйте su root
(или просто su
так как по умолчанию это root без аргументов) или sudo -i
(но знайте, что вход в систему как root не рекомендуется для начинающих пользователей).
Какой смысл делать "ненадежную" группу в любом случае? Я не вижу, как это что-то меняет.
Точно. Однако, скажем, на файловом сервере, может быть очень полезно иметь определенные группы для определенных целей доступа. Среды разработки и тестирования могут выиграть от запуска процессов с меньшим количеством привилегий и тестирования ненадежных двоичных файлов (хотя для этого лучше использовать тюрьмы). Как правило, наличие ненадежного пользователя может быть полезно на предприятии, но не для стандартного рабочего стола или рабочей станции. Возможных вариантов использования может быть гораздо больше, поэтому перед тем как отступить, я на этом остановлюсь, а остальное оставлю на ваше усмотрение.
Отмените права на чтение, запись и выполнение (rwx) Group и Other для всех остальных домашних каталогов:??? Если я выполняю команду chmod go-rwx /home/*/, то другие sudoers не могут даже читать каталоги гостей - это не то, чего я хочу!- я просто хочу, чтобы guest не мог читать каталоги других пользователей
Нет, конечно нет. Отмена g (группового) доступа в этом случае может плохо испортить ситуацию и не достигнет ваших целей (для предотвращения путаницы гостей с домом других пользователей). Прочитайте это краткое объяснение:
По умолчанию добавление нового пользователя через adduser:
- Новый пользователь создан с соответствующим идентификатором основной группы.
- Новый пользователь получает домашнюю папку, обычно /home/USERNAME/, для которой этот пользователь имеет привилегии rwx.
- По умолчанию никакие другие привилегии не предоставляются, и никакие дополнительные группы не назначаются пользователю (я слышал, что некоторые конфигурации делают это, но это не "ванильное" поведение).
- Поэтому простое создание пользователя позволяет достичь всего, о чем вы заявили, чего вы хотите достичь. Другими словами, начните заново, удалив пользовательский и домашний каталог пользователя, и ничего не меняйте, пока не узнаете, что, если что-то нужно изменить. Вы можете увидеть группы аккаунта после его создания с помощью
id USER
, Таким образом, вы можете удалить любые группы, в которых вы не должны находиться, если ваша система имеет странное поведение по умолчанию.
Я просто хочу, чтобы гость не мог читать чужие каталоги
По умолчанию гость может только для чтения другие файлы. Если вы хотите сделать файлы приватными (видимыми только владельцу, группе и пользователю root), chmod -R o-rwx
их каталог. "О" означает "другой" или "мир". Этот флаг относится к любому, кто не является владельцем файла или членом группы, которой принадлежит файл (за исключением root, который в основном является вашим Всемогущим пользователем). 'ox' необходим, чтобы гарантировать, что списки каталогов не могут быть сделаны, поскольку каталоги являются исполняемыми (вне контекста)
Возьмите на себя ответственность за любые каталоги, к которым у вас должен быть доступ "гость" Обратите внимание, что поскольку мы использовали adduser выше, guest уже имеет доступ к своей домашней папке "/home/guest". Однако, предоставление пользователю "гостя" из других каталогов может быть сделано следующим образом: sudo chown -hR guest /any/directory/you/want/guest/to/own
Нет. Если вы хотите поделиться папками, создайте новую группу под названием "shareful" (это шутка, потому что вы должны быть "осторожны") и добавьте всех пользователей, которые будут использовать каталог в этой группе (usermod -aG shareful myuser
). Затем преобразуйте владение группой указанной папки в общую группу (chown -R :shareful /this/path/
) и chmod разрешения, поэтому группа имеет rwx (chmod -R g+rwx /this/path
). На этом этапе вы захотите заглянуть в umask, но это выходит за рамки этого поста.
Ниже приведена ссылка на информацию umask, но сначала, я думаю, вам нужно перечитать основные разрешения для файлов *NIX (первые две ссылки).
Права доступа к файлам: (Википедия) https://en.wikipedia.org/wiki/File_system_permissions(UNIX.com) http://www.unix.com/tips-and-tutorials/19060-unix-file-permissions.html
Linux и umask: (незнакомый источник) https://www.cyberciti.biz/tips/understanding-linux-unix-umask-value-usage.html
Надеюсь, что это проясняет вещи по крайней мере достаточно, чтобы достичь того, что вы хотите.
Читая ваш вопрос, кажется, вы заинтересованы только в разрешениях на /home
каталоги, а не другие способы ограничения прав пользователей. В этом случае вы близки.
Sudoers
Во-первых, не нужно беспокоиться о sudoers. Они не подчиняются разрешениям файла, которые вы видите. Вот как это сделать:
mkdir test
touch test/test_file
ls test # works!
chmod 000 test
ls test # can't open directory, permission denied
sudo ls test # works!
права доступа
Теперь давайте кратко повторим права доступа к файлам. Если вы делаете ls -l
вы увидите, что большинство каталогов drwxr-xr-x
разрешения. Это означает:
- Пользователь - разрешение rwx
- Группа - разрешение rx
- Другое - разрешение rx
d
просто означает, что этот "файл" является каталогом. Помните, что вам нужны права на выполнение для просмотра содержимого каталога.
Если бы эти разрешения были на /home/guest
затем разрешения "Прочее" позволяют любому просматривать содержимое этого каталога. Итак, вы хотите это:
chown guest:guest /home/guest # Change owner and group of directory to guest
chmod 750 /home/guest
Войдите в учетные записи guest1 и guest2 и попробуйте!
Необычные номера chmod
rwx
каждый соответствует немного. Преобразовав двоичные числа (база 2) в числа, которые люди используют (база 10), вы получите:
- г - 4
- w - 2
- х - 1
таким образом
- rwx = 7
- rx = 5