ОБНОВЛЕНИЕ: я понял, что я хотел сделать в конечном счете. Смотрите здесь: https://raspberrypi.stackexchange.com/questions/13401/locking-down-raspbian-to-only-allow-limited-features/58778#58778

Я очень смущен этим ответом здесь: https://stackoverflow.com/a/527976/4561887

Это говорит:

Пользователю понадобятся права на чтение / выполнение для выполнения любой команды (ls, оболочка входа и т.д.), Поэтому вы не можете легко отобрать все права.

Обычно этого достаточно, чтобы убедиться, что они не могут связываться с домашними каталогами других пользователей. Для этого поместите пользователя в новую группу (например, "недоверенная"), выберите его домашний каталог и отзовите группу и другие права на все домашние каталоги: chmod go-rwx / home / * /

Но я не очень понимаю, что он говорит. Кто-нибудь, пожалуйста, помогите мне. Вот что я получил до сих пор, некоторые из моих вопросов выделены жирным шрифтом ниже:

В полном объеме:

  1. Создайте нового пользователя с именем "гость": sudo adduser guest
  2. Создайте новую группу под названием " Ненадежный ": sudo groupadd untrusted
  3. Добавить пользователя "гость" в группу "ненадежный": sudo usermod -a -G untrusted guest
  4. Убедитесь, что пользователь "гость" теперь является частью группы "недоверенный": groups guest

    • Выход:

      гость: гость ненадежный

    • Это означает, что пользователь "гость" является частью групп "гость" и "ненадежный". Хорошо.

  5. Возьмите на себя ответственность за любые каталоги, к которым у вас должен быть доступ "гость". Обратите внимание, что поскольку мы использовали adduser выше, гость уже имеет доступ к своей домашней папке "/home/guest". Однако, предоставление пользователю "гостя" из других каталогов может быть сделано следующим образом: sudo chown -hR guest /any/directory/you/want/guest/to/own
  6. ??? (Правильно ли я делал вышеизложенное до сих пор?) - Я все еще хочу, чтобы другие суперпользователи могли видеть файлы гостей. Какой смысл делать "ненадежную" группу в любом случае? Я не вижу, как это что- то меняет .
  7. Отмените права на чтение, запись и выполнение (rwx) Group и Other для всех остальных домашних каталогов: ???Если я chmod go-rwx /home/*/ , то другие пользователи не смогут даже читать каталоги гостя - это не то, чего я хочу! - я просто хочу, чтобы гость не мог читать каталоги других пользователей, не совсем с другой стороны, хотя, если я сделаю guest2, он также не сможет видеть каталоги guest1, равно как и guest1 не сможет увидеть каталоги guest2, но sudoers должен иметь возможность видеть как каталоги guest1, так и guest2.

2 ответа2

1

Читая ваш вопрос, кажется, вас интересуют только разрешения для /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
1

Я не знаю, зачем вам нужна "недоверенная" группа, если у вас есть только один "гость" (и обычно у вас должен быть только один гость). Группа "гость" может использоваться как "недоверенная". В любом случае, я постараюсь быть кратким с объяснением, чтобы указать вам правильное направление:

??? (Правильно ли я делал вышеизложенное до сих пор?) - Я все еще хочу, чтобы другие суперпользователи могли видеть файлы гостей.

Любой, кто вошел в учетную запись "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:

  1. Новый пользователь создан с соответствующим идентификатором основной группы.
  2. Новый пользователь получает домашнюю папку, обычно /home /USERNAME /, для которой этот пользователь имеет привилегии rwx.
  3. По умолчанию никакие другие привилегии не предоставляются и никакие дополнительные группы не назначаются пользователю (я слышал, что некоторые конфигурации делают это, но это не "ванильное" поведение).
  4. Поэтому простое создание пользователя позволяет достичь всего, о чем вы заявили, чего вы хотите достичь. Другими словами, начните заново, удалив пользовательский и домашний каталог пользователя, и ничего не меняйте, пока не узнаете, что, если что-то нужно изменить. Вы можете увидеть группы аккаунта после его создания с id USER . Таким образом, вы можете удалить любые группы, в которых вы не должны находиться, если ваша система имеет странное поведение по умолчанию.

Я просто хочу, чтобы гость не мог читать чужие каталоги

По умолчанию гость может только для чтения другие файлы. Если вы хотите сделать файлы приватными (видимыми только владельцу, группе и пользователю root), chmod -R o-rwx их каталог. "О" означает "другой" или "мир". Этот флаг относится к любому, кто не является владельцем файла или членом группы, которой принадлежит файл (за исключением root, который в основном является вашим Всемогущим пользователем). 'ox' необходим, чтобы гарантировать, что списки каталогов не могут быть сделаны, поскольку каталоги являются исполняемыми (вне области видимости)

Возьмите на себя ответственность за любые каталоги, к которым у вас должен быть доступ "гость". Обратите внимание, что поскольку мы использовали adduser выше, гость уже имеет доступ к своей домашней папке "/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

Надеюсь, что это проясняет вещи по крайней мере достаточно, чтобы достичь того, что вы хотите.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .