Сегодня я возвращаюсь с еще одним советом, который лично я использую очень часто: иметь возможность иметь общий каталог для нескольких пользователей на Linux. Я поставил их в ситуацию, когда моя жена дома, мы оба используем один компьютер с Arch Linux но у каждого свой пользователь. Итак, мы заметили проблему с теми папками, которыми мы делимся, например, музыкой или фотографиями, поскольку в каждой из них были свои файлы, дублирующие друг друга.
Тогда мы подумали сделать общую папку, но есть проблема с разрешениями. Если папка моя, она ее не видит, если файл, который я создаю, она не удаляет и так далее. Вначале патч заключался в том, что мы давали 777 разрешений этим файлам каждый раз, когда мы редактировали что-то для доступа другого, пока не нашли решение, Групповые разрешения!
Что такое разрешения группы?
Это лучшее, назначьте этот общий каталог и все его содержимое специальной группе с разрешениями на чтение и запись, с которым все члены группы будут иметь доступ к указанному каталогу. Затем это позволяет, просто добавляя наших пользователей в эту группу, мы уже можем взаимодействовать в этом каталоге.
А как мне его настроить?
Это лучшая часть, и я продолжу рассказывать вам, как я сделал это со своей женой. Первое, что нужно сделать - это создать каталог, который в примере я назову «поделился».
sudo mkdir /home/compartido
Я создаю его внутри / home и за пределами наших учетных записей, чтобы верхние каталоги не беспокоились о своих разрешениях. Теперь мы должны создать группу, которую мы поместим «общий»
sudo groupadd compartidos
И мы назначаем эту группу каталогу, который мы создали ранее, и мы также изменяем разрешения, чтобы все, что мы создаем внутри, будь то каталоги или файлы, также принадлежало этой группе.
sudo chgrp -R compartidos /home/compartido
sudo chmod g+s dirname
Кроме того, мы должны добавить в него наших пользователей. Затем мы должны повторить эту команду для каждого:
sudo usermod -G compartido sebastian
sudo usermod -G compartido mimujer
Пока у нас есть каталог «/ home / общий»Которая принадлежит к группе«общий«, С чем будут иметь доступ все пользователи-члены того же самого, и все, что создано в каталоге, будет принадлежать к группе, с чем любой из нас сможет их видеть.
Теперь нам нужен только один последний шаг, который может быть необязательным, но он заключается в изменении umask пользователей, чтобы гарантировать, что каждый новый файл, который мы создаем, может быть изменен другими членами группы. Это влияет на всех пользователей, а не только на каталог, поэтому они должны видеть, работает это для них или нет. В моем случае, поскольку систему используем только мы с женой, это нас не беспокоит, и мы назначаем umask 002, что означает, что каждый созданный файл начинается с 775 разрешений.
Редактирование маски
Чтобы отредактировать umask, каждый пользователь должен отредактировать файл .profile или .bashrc, который находится внутри дома пользователя, и изменить значение umask на желаемое число. Если опции нет, мы должны ее добавить.
Итак, в консоли ставим:
sebastian@multivacs ~> vim .profile
И мы увидим что-то вроде этого:
Итак, переходим к строке с надписью umask, нажимаем букву i чтобы иметь возможность редактировать, и мы удаляем #, чтобы удалить комментарий. Меняем номер на 002. Если строка не появляется, они должны ее добавить.
Закончив, нажимаем клавишу Esc чтобы выйти из режима редактирования, а затем мы пишем :+q+w. Что заставляет нас сохранить изменения и выйти из Vi.
Это будет выглядеть так:
И все! Если они закроют свою пользовательскую сессию и снова откроют ее, будут приняты изменения, с которыми общий каталог уже будет работать.
Отличный совет.
Гениальное.
Несколько лет назад я сам увидел необходимость сделать это, но я не знал, что это маска umask ... Вместо этого я поместил задачу в crontab 🙂
Спасибо за совет
Да, crontab тоже хорош. Что ставили, чтобы 775 разрешений на контент назначили?
Отличный совет .. ..сохраняется при необходимости;) ..
Хорошо, вы создаете папку / home / shared и назначаете ей группу «shared», но
Какому пользователю принадлежит эта папка? Другими словами, кто владелец? Я, другой человек или пользователь root, чья учетная запись отключена, поскольку я использую sudo?
С другой стороны, я обнаружил следующую проблему: файлы, которые я создаю, не могут быть удалены другим человеком, а файлы, которые создает другой человек, я не могу удалить.
Что я сделал не так?
При создании папки с помощью sudo вы должны оставить root в качестве владельца. Вы также можете изменить это с помощью команды chown, чтобы назначить другого пользователя.
С другой стороны, убедитесь, что файлы, которые вы создаете, имеют права доступа 775 (что дает umask 002). Если у них нет этих разрешений, могут быть неправильные настройки.
Аналогичным образом, стоит уточнить, что umask влияет на любой новый файл, который создается в каталоге, но если они перемещают или копируют контент из другого места, сохраняются исходные разрешения, а не те, которые мы установили для каталога.
Привет Вы правы.
Я искал, и проблема вызвана тем последним, что вы сказали: при перемещении файла из другого места в общую папку исходные разрешения сохраняются.
Есть ли этому решение?
Я мог бы использовать жемчуг.
В этом случае лучше всего было бы поставить crontab, как сказал KZKG ^ Gaara, в котором вы могли бы поместить команду для назначения группы и разрешений на содержимое папки каждый X раз.
То есть в crontab можно сказать примерно следующее:
sudo chgrp -R compartidos /home/compartido/*
chmod -R 775 /home/compartido/*
Чтобы все было по-новому, переходим в группу Shared с разрешениями 775.
Не обращайте внимания на * в конце каждой строки, я думал о другом, когда ставил это 😛
Спасибо друг.
Очень хороший пост, но я предпочитаю иметь отдельный раздел, в котором я могу разместить все, чем хочу поделиться. У меня есть большой диск на 500 ГБ, на котором я использую 100 ГБ с Linux и раздел на 400 ГБ (ntfs), в котором находится вся музыка, фотографии и т.д ... На моем компьютере мы два пользователя, и каждый может получить доступ к разделу ntfs и помещаем и удаляем то, что хотим, когда хотим. Если я не хочу ни чем делиться, у меня есть кое-что в моем имени пользователя. 🙂
Теперь это другой способ сделать это, но проблема не в том, где разместить файлы, а в том, чтобы настроить разрешения и контролировать доступ различных пользователей.
Вы можете разместить его на NTFS-разделе, правильно, но у вас также есть фрагментация, более медленная, чем EXT4, и меньшая безопасность, хотя, если это хорошо для вас, это также верно.
Хорошо! Хороший совет, но я бы все же добавил задачу по изменению разрешений на 775 новых файлов при каждом входе в систему и решить проблему с файлами, перемещенными из другой папки.
Кроме того, большое спасибо за то, что поделились!
Интересно, спасибо!
Я поднимаю кое-что относительно основной группы общего доступа некоторых дистрибутивов gnu / linux. Некоторые дистрибутивы создают пользователя с основной группой users, а не с использованием основной группы, равной имени пользователя.
Разница в том, что при использовании основной группы пользователей по умолчанию все совместно используется с группой пользователей, к которой будут принадлежать все пользователи, созданные в этом дистрибутиве, если вместо этого они созданы с той же группой, что и имя пользователя, по умолчанию ничего не будет делиться.
пример:
$ ls -l /home/user/*.txt
-rw-r - r– 1 карлос карлос 126 25 марта 2012 г. notes.txt
$ ls -l /home/user/*.txt
-rw-r - r– 1 carlos users 126 25 марта 2012 г. notes.txt
Я не рекомендую использовать основную группу пользователей, лучше создать свою собственную основную группу при создании пользователя.
#groupadd carlos
# useradd -g carlos -G lp, wheel, uucp, audio, cdrom, cdrw, usb, lpadmin, plugdev -m -s / bin / bash carlos
-G carlos указывает на использование родительской группы carlos.
Вы можете изменить основную группу пользователя с помощью # usermod -g, но это не изменит основную группу всех файлов и папок, которые уже находятся в / home / carlos, вам придется изменить их все.
Пример: измените пользователей основной группы с пользователя carlos на пользователя основной группы carlos, а затем измените
все права доступа к файлам и папкам пользователя Carlos, чтобы они оставались с Carlos Carlos
#groupadd carlos
# usermod -g пользователей карлос
# cd / home
# chown -R carlos: карлос карлос
Что касается совместного использования, вы можете создать пользователя с именем shared с вашей общей основной группой, и, чтобы не возникало проблем с разрешениями при копировании, вы сначала измените пользователя
с "$ su - shared" то, что вы хотите, копируется в / home / shared, после чего разрешения на то, что скопировано, станут общим пользователем.
Если уже есть копии файлов, принадлежащих другим пользователям и основным группам, вы должны изменить их все.
# cd / home
# chown -R shared: общий доступ
В подвешенном состоянии осталось только кое-что, что я не знаю, как это сделать, чтобы скопировать графически как общий пользователь, то есть без необходимости выполнять $ su - shared
Было очень глупо копировать графически, хе-хе, я использую pcmanfm здесь, в openbox, но вы можете использовать файловый менеджер, который у вас есть или который вам нужен, он выполняется только как общий пользователь, а не как пользователь root.
$ su - общий
$pcmanfm
$ дельфин
$ млн
и т.д. и т.п.
Я как раз собирался на это ответить. Если нет, то другой - crontab, который меняет владельца файлов каждый x раз с помощью
chown -R compartido:compartido compartido
Мне кажется, что команда «usermod -G thenewgroup theuser» в основном меняет группу пользователя на «thenewgroup». Чтобы добавить существующего пользователя в новую группу, я думаю, что правильным будет "usermod -aG elnuevogrupo elusuario"
Другое дело, что я вижу здесь, что некоторые люди рекомендуют выполнить команду «chmod -R 775», но это влияет не только на каталоги, но и на все файлы (делая их исполняемыми), что создает ненужный риск. Лучше сделать что-нибудь вроде «find / home / shared -type d -print0 | xargs -0 chmod 755 ", и при необходимости с файлами вы можете сделать что-то подобное, но используя" -type f "и предоставив разрешение 664.
Наконец, один из способов сделать несколько учетных записей доступными к файлу или папке независимо от того, кто является владельцем или группой, - это использовать команду "setfacl", которая находится в пакете acl (если я правильно помню). Его использование хорошо объяснено на странице руководства.
У меня следующая проблема. Я создал 4 пользователей (web1, web2, web3, web4), и я хочу создать папку группы доступа для пользователей веб-группы. Когда я создаю файл .htaccess, я знаю, что мне нужно поставить require valid-user, но если я поставлю require valid-user web1 web2 web3 web4, чтобы они могли получить доступ к папке со своим паролем, когда я пытаюсь получить доступ к папке он запрашивает у меня имя пользователя и пароль для каждого из них.Как мне получить запрос на ввод имени пользователя и пароля только того, кто хочет войти? потому что предполагается, что один не знает пароль другого.
Эй.
Четвертый терминал должен иметь «общий» множественное число:
sudo usermod -G общий Себастьян
sudo usermod -G поделился mywoman
Привет.
Густаво
Приветствия:
Мы переходим с Windows Server на CentOs 6 и все еще находимся в процессе адаптации. Мой вопрос: есть ли в CentOs графический интерфейс для обмена папками и предоставления пользователям доступа для изменения, редактирования и / или удаления файлов?
Спасибо за помощь.
Я также устанавливаю centos 6, и я хочу использовать его с samba, который позволяет мне обмениваться файлами из Linux и Windows, я немного знаю, я не использую Linux много, но на работе меня спросили, как я могу это сделать поделиться папками, но в графическом режиме ??.
Привет. Пожалуйста, помогите мне! ... Оказывается, сделав это в уме пользователя Linux, я потерял привилегии. Я не могу запускать что-нибудь вроде sudo. Я получаю следующее сообщение: «Извините, пользователь« username »не авторизован для выполнения command_to_run как root в« username »»
Я думаю, что когда я сменил своего пользователя на расшареную группу, я забрал привилегии, а теперь как мне их восстановить ???
Привет, друг, есть ли способ сделать то же самое, но поделиться файлами с другими людьми в локальной сети Интернета
Для этого вы должны использовать SAMBA в качестве файлового сервера. Ура
Привет. Когда я дошел до команды sudo chmod g + s dirname, она сообщила мне, что файл или каталог не существует. Вы знаете, в чем проблема?
Как мне создать группу в другой группе?
Линия:
sudo usermod -G общий Себастьян
должно быть:
sudo usermod -a -G общий Себастьян
первый способ удаляет остальные группы пользователя.
и если вы потеете, вы теряете свои привилегии