Я хочу предоставить доступ к 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
С просто нормальными полномочиями UNIX (пользователь, группа, все), Вы не можете сделать этого легко. Если Вам не нужен доступ к каталогу еще, можно возможно изменить владельца каталога другу, который допустим на некоторых Нельдах, но большинстве из них, это не.
Однако - если у Вас есть ACLs, включил на Linux, можно сделать это, если Вы - владелец файла. Просто выполните команду setfacl -m user:friend:rwx filename
где друг является именем учетной записи Вашего друга, и имя файла является файлом. Можно проверить, что это вступило в силу путем выполнения getfacl filename
, необходимо видеть триаду user:friend:rwx
в списке. Я не видел слишком много систем Linux, которым включили ACLs все же.
Это - что-то, что мы обсудили назад в школе.
Идет примерно как это,
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.
CoverDir
'доступ как 'rwx--x--x
',Obscure
', в нем и дают полный доступ для чтения с'rwxr-xr-x
',ls BasePath/CoverDir/Obscure
'ls BasePath/CoverDir
'.Я сделал бы новую группу для Вас и Вашего друга и установил бы полномочия папки на полный для владельца, и группа вместе с setgid укусила для каталога.
Но в зависимости от Ваших потребностей Вам, вероятно, также придется изучить изменение Вас и Ваших друзей umask, таким образом, оно автоматически устанавливает группу для сможения изменения новые файлы.
# groupadd bestfriends
# chmod 2770 dir
# chgrp bestfriends dir
# usermod -G bestfriends FRIENDLOGIN
Списки управления доступом являются лучшим способом сделать это.
Однако (если я помню правильно), файловая система должна быть инициализирована с ACLs (например, "/dev/sda6 / размещает ext3 значения по умолчанию, acl"), через/etc/fstab, и это - что-то, что только может сделать суперпользователь...
Ryan был на на самом деле 100% корректен, просто назад. Так как Вашему другу (вероятно), связали уникальную группу с его изменением имени пользователя владение группы рассматриваемого каталога той группе, скорее всего, имя пользователя друга. Чтобы смочь совместно использовать содержание между двумя из Вас, необходимо сохранить владение как, пользователь:
chown -R youruser:friendgroup ~/foo/bar
Затем присвойте соответствующие полномочия каталогу, зависящему от того, какой доступ Вы хотите, чтобы другой пользователь имел:
chmod -R 770 ~/foo/bar
предоставил бы вам обоим полный rwx доступ к каталогу и его всему содержанию.
Обратите внимание на то, что это предполагает, что никакой другой пользователь не был добавлен к группе Вашего друга. Система не имела бы, вероятно, сделали это присвоение, однако, как был упомянут прежде, пользователь root может сделать то, что они выбирают. Можно использовать команду групп для наблюдения каждой группы, которой друг или произвольный пользователь, принадлежат. Кроме того, если полномочия не были изменены по некоторым причинам, необходимо смочь просмотреть/etc/group файл, который содержит присвоения группы для каждой группы в системе.
По умолчанию у каждого пользователя в системе Ubuntu также есть связанная группа того же имени. Таким образом, если можно добавить друга для группы и затем отметить рассматриваемую папку как g+rwx
, Вы будете установлены. Я неопределенно помню этот вариант использования, процитированный в качестве причины создать группу для каждого пользователя.
Как насчет Dropbox? Можно установить его без административных привилегий и обеих ссылок на ту же учетную запись.
Выезд, Как Установить Dropbox В Совершенно основанной на тексте Среде Linux
не попробовали это, но как насчет общедоступного читаемого каталога с зашифрованным FS пространства пользователя внутри (например, encfs). Затем можно ли совместно использовать тот пароль с другом, и никто больше не может использовать те данные (хорошо, я предполагаю, что они могли получить данные и выполнить взломщика пароля офлайн?).
Чтобы дать Linux то же Изящество как окна в полномочиях файла, необходимо вложить группы. Создайте одну группу, которая имеет доступ к Вашей папке, поскольку Вы хотели бы, чтобы Ваш друг имел. Добавьте его к той группе или группе, в которой он находится той группе. Например,
/ нечто папка, которую Вы хотите совместно использовать. Создайте группу FooGroup, который имеет желаемый доступ к папке. Добавьте группы и пользователей этой группе, которая Вы хотите сказать доступ к этой папке.
Это - большая боль, чтобы иметь группу для каждой папки или файла, но это - лучший способ ограничить доступ на том же уровне как Windows.