Unix: Как я могу позволить только одному человеку видеть свою папку в ту же фс?

Я хочу предоставить доступ к dir для друга. У него есть доступ к файловой системе, где dir расположен. Я не хочу устанавливать полномочия на всех пользователей. Как я могу позволить только человеку видеть dir? Ни один из нас не суперпользователь.

[ПРОБЛЕМА ЩЕДРОСТИ] Ни одна из работы ответов, с помощью Ubuntu:

1. Подход jamuraa, не работающий

$ setfacl -m user:friend:rwx classroom.xml 
setfacl: classroom.xml: Operation not supported

2. Подход nik, не работающий: не может получить доступ к несуществующему файлу

3. Подход ba, не работающий: Я не могу создать группы, не корень.

4. Подход ToK, не работающий, пользователи находятся в двух группах: "пользователи" и "поле"

chown -R myFriend:users ~/TEST
chown: changing ownership of `/u/myFriend/TEST/you_see_it': Operation not permitted
chown: changing ownership of `/u/myFriend/TEST': Operation not permitted
9
задан 24.11.2010, 04:31

11 ответов

С просто нормальными полномочиями UNIX (пользователь, группа, все), Вы не можете сделать этого легко. Если Вам не нужен доступ к каталогу еще, можно возможно изменить владельца каталога другу, который допустим на некоторых Нельдах, но большинстве из них, это не.

Однако - если у Вас есть ACLs, включил на Linux, можно сделать это, если Вы - владелец файла. Просто выполните команду setfacl -m user:friend:rwx filename где друг является именем учетной записи Вашего друга, и имя файла является файлом. Можно проверить, что это вступило в силу путем выполнения getfacl filename, необходимо видеть триаду user:friend:rwx в списке. Я не видел слишком много систем Linux, которым включили ACLs все же.

12
ответ дан 07.12.2019, 13:06

Это - что-то, что мы обсудили назад в школе.
Идет примерно как это,

  1. Создайте каталог (названный data, для ссылки здесь)
    • полномочия изменения как"chmod 711 data"
    • группа и другие имеют только x - доступ для ввода каталога
    • они не могут перечислить каталог
    • Теперь, создайте каталог difficult-name-here (это могло быть хешированной строкой),
    • полномочия изменения как"chmod a+rx difficult-name-here"
    • содержание этого каталога безопасно, в то время как внешний каталог не может быть перечислен
    • люди, которые знают "трудное имя", могут вскочить в этот второй каталог
      • "cd path/to/data/difficult-name-here"
      • другие не видят имя и не могут получить доступ к содержанию каталога
      • Однако root может всегда получать доступ ко всему (который не является проблемой здесь),
    • совместно используйте difficult-name-here с людьми Вы хотите дать эти данные
    • Сохраните совместно используемые файлы в этом втором каталоге

Довольно сырой, но если бы это может быть повреждено без поломки управления доступом Unix, я хотел бы знать.


Обновление на комментарии от dmckee,
Это - точно вывод, который мы сделали!
"безопасность с помощью мрака" ограничила безопасность.

Однако при разработке защиты для данных,
важно определить свое значение.

Необходимо быть нацелены для,

  • Стоимость повреждения безопасности, которое выше, чем,
  • Стоимость защищенного содержания,
  • Фактором, пропорциональным Вашей паранойе

В этом случае, если root решает перечислить дерево каталогов где-нибудь в открытом доступе,
Ваш секрет отсутствует! Но, Вы защищаете от корня или их потенциальной безответственности?
Если это так, Вы имеете намного больше для волнения о затем совместно используемых файлах.


Обновление о не работавшем примечании в вопросе.
Я использовал это в первые годы Linux, чтобы знать, что он работает.
Если Вы добираетесь'cannot access non-existant file'вместо 'permissions denied'Вы очень вероятно сделали ошибку в последовательности. То, что Вы хотите, должно быть похожим на это,

 755      711      755     whatever     --=== Access permissions

 BasePath/CoverDir/Obscure/protectedFile.txt
          |        |       ^^^^^^^^^^^^^^^^^ Can't be seen without 
          |        ^^^^^^^ Directory Name         read access to 
          ^^^^^ Public     shared with friend.    Obscure directory.
                accessible 
                directory.
  1. Если Вы устанавливаете'CoverDir'доступ как 'rwx--x--x',
    группа и другие могут только ввести каталог, но не могут считать его содержание.
  2. Теперь, если Вы используете неясное имя каталога,
    'Obscure', в нем и дают полный доступ для чтения с'rwxr-xr-x',
    любой knowning это имя может перечислить его содержание.
  3. Этот доступ должен будет быть сделан снаружи с'ls BasePath/CoverDir/Obscure'
    Поскольку люди в Вашей группе и другие не смогут к'ls BasePath/CoverDir'.
11
ответ дан 07.12.2019, 13:06

Я сделал бы новую группу для Вас и Вашего друга и установил бы полномочия папки на полный для владельца, и группа вместе с setgid укусила для каталога.

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

# groupadd bestfriends
# chmod 2770 dir
# chgrp bestfriends dir
# usermod -G bestfriends FRIENDLOGIN
4
ответ дан 07.12.2019, 13:06

Списки управления доступом являются лучшим способом сделать это.

Однако (если я помню правильно), файловая система должна быть инициализирована с ACLs (например, "/dev/sda6 / размещает ext3 значения по умолчанию, acl"), через/etc/fstab, и это - что-то, что только может сделать суперпользователь...

2
ответ дан 07.12.2019, 13:06

Ryan был на на самом деле 100% корректен, просто назад. Так как Вашему другу (вероятно), связали уникальную группу с его изменением имени пользователя владение группы рассматриваемого каталога той группе, скорее всего, имя пользователя друга. Чтобы смочь совместно использовать содержание между двумя из Вас, необходимо сохранить владение как, пользователь:

chown -R youruser:friendgroup ~/foo/bar

Затем присвойте соответствующие полномочия каталогу, зависящему от того, какой доступ Вы хотите, чтобы другой пользователь имел:

chmod -R 770 ~/foo/bar

предоставил бы вам обоим полный rwx доступ к каталогу и его всему содержанию.

Обратите внимание на то, что это предполагает, что никакой другой пользователь не был добавлен к группе Вашего друга. Система не имела бы, вероятно, сделали это присвоение, однако, как был упомянут прежде, пользователь root может сделать то, что они выбирают. Можно использовать команду групп для наблюдения каждой группы, которой друг или произвольный пользователь, принадлежат. Кроме того, если полномочия не были изменены по некоторым причинам, необходимо смочь просмотреть/etc/group файл, который содержит присвоения группы для каждой группы в системе.

5
ответ дан 07.12.2019, 13:06

RBACS как grsec/selinux требуется..

2
ответ дан 07.12.2019, 13:06

По умолчанию у каждого пользователя в системе Ubuntu также есть связанная группа того же имени. Таким образом, если можно добавить друга для группы и затем отметить рассматриваемую папку как g+rwx, Вы будете установлены. Я неопределенно помню этот вариант использования, процитированный в качестве причины создать группу для каждого пользователя.

2
ответ дан 07.12.2019, 13:06

Как насчет Dropbox? Можно установить его без административных привилегий и обеих ссылок на ту же учетную запись.

Выезд, Как Установить Dropbox В Совершенно основанной на тексте Среде Linux

2
ответ дан 07.12.2019, 13:06

не попробовали это, но как насчет общедоступного читаемого каталога с зашифрованным FS пространства пользователя внутри (например, encfs). Затем можно ли совместно использовать тот пароль с другом, и никто больше не может использовать те данные (хорошо, я предполагаю, что они могли получить данные и выполнить взломщика пароля офлайн?).

2
ответ дан 07.12.2019, 13:06

Чтобы дать Linux то же Изящество как окна в полномочиях файла, необходимо вложить группы. Создайте одну группу, которая имеет доступ к Вашей папке, поскольку Вы хотели бы, чтобы Ваш друг имел. Добавьте его к той группе или группе, в которой он находится той группе. Например,

/ нечто папка, которую Вы хотите совместно использовать. Создайте группу FooGroup, который имеет желаемый доступ к папке. Добавьте группы и пользователей этой группе, которая Вы хотите сказать доступ к этой папке.

Это - большая боль, чтобы иметь группу для каждой папки или файла, но это - лучший способ ограничить доступ на том же уровне как Windows.

2
ответ дан 07.12.2019, 13:06

Вы могли зашифровать каталог с gpg. И затем попытайтесь запутать местоположение как как предложенный nik.

1
ответ дан 07.12.2019, 13:06

Теги

Похожие вопросы