Днес се връщам с още един съвет, който лично аз използвам много: да може да има споделена директория между няколко потребители на Linux. Поставям ги в ситуация, с жена ми вкъщи и двамата използваме един и същ компютър Arch Linux но всеки със свой потребител. И така, забелязахме проблема с тези папки, които споделяме като музика или снимки, тъй като всяка от тях имаше свои собствени файлове, дублиращи неща.
Тогава си помислихме направете споделена папка, но има проблем с разрешенията. Ако папката е моя, тя не я вижда, ако файлът я създам, тя не я изтрива и т.н. В началото кръпката беше, че давахме 777 разрешения на тези файлове всеки път, когато редактирахме нещо, за което другият да има достъп, докато намерим решението, Групови разрешения!
Какви са груповите разрешения?
Това е най-доброто, задайте тази споделена директория и цялото й съдържание на специална група с разрешения за четене и запис, с което всички членове на групата ще имат достъп до посочената директория. Тогава това позволява, че просто добавяйки нашите потребители към споменатата група, ние вече можем да взаимодействаме в тази директория.
И как да го конфигурирам?
Това е най-добрата част и продължавам да ви разказвам как го направих със съпругата си. Първото нещо е да създадете тази директория, която за примера ще нарека «споделено".
sudo mkdir /home/compartido
Създавам го вътре / вкъщи и извън нашите акаунти, за да избегна, че горните директории се притесняват със собствените си разрешения. Сега трябва да създадем групата, която ще сложим «споделено»
sudo groupadd compartidos
И ние присвояваме тази група на директорията, която създадохме преди, и също така променяме разрешенията, така че всичко, което създаваме вътре, независимо дали са директории или файлове, също принадлежи към тази група.
sudo chgrp -R compartidos /home/compartido
sudo chmod g+s dirname
Също така, ние трябва да добавим нашите потребители към него. След това трябва да повторим тази команда за всяка една:
sudo usermod -G compartido sebastian
sudo usermod -G compartido mimujer
Засега имаме директорията «/ начало / споделено»Кой принадлежи към групата«споделено«, С това, до което всички членове на същите потребители ще имат достъп и всичко, което е създадено в директорията, ще принадлежи към групата с това, което всеки от нас ще може да ги види.
Сега липсва само една последна стъпка, която може да е незадължителна, но е да се промени umask на потребителите, за да се гарантира, че всеки нов файл, който създаваме, може да се променя от останалите членове на групата. Това засяга целия потребител, а не само директорията, така че те трябва да видят дали тя работи за тях или не. В моя случай, тъй като само жена ми и аз използваме системата, тя не ни притеснява и ние си задаваме umask от 002, което означава, че всеки създаден файл започва със 775 разрешения.
Редактиране на umask
За да редактирате umask, всеки потребител трябва да редактира .profile или .bashrc файл, който се намира в дома на потребителя, и да промени стойността на umask с желаното число. Ако опцията не е налице, трябва да я добавим.
И така, в конзолата поставяме:
sebastian@multivacs ~> vim .profile
И ще видим нещо подобно:
И така, отиваме на реда, който казва umask, натискаме писмото i за да можем да редактираме и премахваме #, за да премахнем коментара. Променяме номера на 002. Ако редът не се появи, те трябва да го добавят.
След като приключим, натискаме клавиша Esc за да излезете от режим на редактиране и след това пишем :+q+w. Какво ни кара да запазваме промените и да излизаме от Vi.
Ще изглежда така:
И това е! Ако затворят потребителската си сесия и я отворят отново, ще бъдат взети промените, с които споделената директория вече ще работи.
Страхотен съвет.
Страхотно.
Преди няколко години видях необходимостта да направя това сам, това, което не знаех, беше umask ... Вместо това поставих задача в crontab 🙂
Благодаря за бакшиша
Да, crontab също е добър. Какво сложихте, за да присвоите 775 разрешения на съдържанието?
Страхотен съвет .. .. запазен при нужда;) ..
Добре, вие създавате папката / дома / споделено и му присвоявате групата "споделено", но
На кой потребител принадлежи тази папка? Тоест кой е собственикът? Аз, другият човек или основният потребител, чийто акаунт е деактивиран, тъй като използвам sudo?
От друга страна имам следния проблем: Файловете, които създавам, не могат да бъдат изтрити от другия човек, а файловете, които другият човек създава, не мога да изтрия себе си.
Какво сгреших?
Когато създавате папката със sudo, трябва да останете с root като собственик. Можете също така да промените това с командата chown, за да зададете друг потребител.
От друга страна, проверете дали файловете, които създавате, го правят със 775 разрешения (което дава umask 002). Ако те нямат тези разрешения, може да има някои грешни настройки.
По същия начин си струва да се изясни, че umask засяга всеки нов файл, който е създаден в директорията, но ако те преместят или копират съдържание от друго място, се запазват оригиналните разрешения, а не тези, които сме задали в директорията.
Хей! Прав си.
Търсих и проблемът е причинен от последното нещо, което казвате: Когато премествате файл от друго място в споделената папка, оригиналните разрешения се запазват.
Има ли решение за това?
Бих могъл да използвам перли.
В този случай най-доброто би било да поставите crontab като KZKG ^ Gaara, в който можете да поставите команда за присвояване на групата и разрешенията към съдържанието на папката всеки X път.
Това ще рече нещо подобно в crontab:
sudo chgrp -R compartidos /home/compartido/*
chmod -R 775 /home/compartido/*
За да получите всичко ново, преминете към споделената група с разрешения 775.
Игнорирайте * в края на всеки ред, мислех за нещо друго, когато го сложих 😛
Благодаря приятел.
Много добър пост, но предпочитам да имам отделен дял, в който да мога да сложа всичко, което искам да споделя. Имам щедър 500 GB диск, в който използвам 100 GB с Linux и 400 GB дял (ntfs), в който е цялата музика, снимки и т.н. ... На моя компютър сме двама потребители и всеки може да има достъп до дяла ntfs и поставяме и премахваме това, което искаме, когато искаме. Ако не искам да споделям нищо, имам някои неща в потребителското си име. 🙂
Вече е друг начин да го направите, но проблемът не е къде да поставите файловете, а да конфигурирате разрешенията и да контролирате достъпа на различните потребители.
Можете да го имате на NTFS дял, правилно, но имате и фрагментация, по-бавна от EXT4 и по-малко сигурност, въпреки че ако е добре за вас да го имате по този начин, той е еднакво валиден.
Добре! Добър съвет, но все пак бих добавил задача за промяна на разрешенията на 775 от новите файлове при всяко влизане и решаване на проблема с файловете, преместени от друга папка.
Също така, благодаря ви много за споделянето!
Интересно, благодаря!
Вдигам нещо по отношение на основната група за споделяне на някои gnu / linux дистрибуции. Някои дистрибуции създават потребителя с потребители на основната група и не използват основна група, равна на името на потребителя.
Разликата е, че при използване на потребителите на основната група по подразбиране всичко се споделя с потребителите на групата, към които ще принадлежат всички потребители, създадени в този дистрибутор, ако вместо това те са създадени със същата група като името на потребителя, по подразбиране не нищо ще бъдат споделени.
Пример:
$ ls -l /home/user/*.txt
-rw-r - r– 1 carlos carlos 126 25 март 2012 бележки.txt
$ ls -l /home/user/*.txt
-rw-r - r– 1 потребители на carlos 126 25 март 2012 бележки.txt
Не препоръчвам да използвате потребителите на основната група, по-добре да създадете своя собствена основна група, когато създавате потребителя.
#groupadd carlos
# useradd -g carlos -G lp, колело, uucp, аудио, cdrom, cdrw, usb, lpadmin, plugdev -m -s / bin / bash carlos
-G carlos показва използването на родителската група carlos.
Можете да промените основната група на потребителя с # usermod -g, но това няма да промени основната група от всички файлове и папки, които вече са в / home / carlos, ще трябва да ги промените всички.
Пример: променете потребителите на първична група от потребителски карлос на първични групови групи и след това променете
всички разрешения за файлове и папки на потребителя carlos, така че те да останат от carlos carlos.
#groupadd carlos
# usermod -g carlos потребители
# cd / home
# chown -R carlos: carlos carlos
Що се отнася до споделянето, можете да създадете потребител, наречен споделен с вашата споделена основна група, и за да няма проблеми с разрешението при копиране, първо променяте потребителя
с "$ su - shared" след това, което искате, се копира в / home / shared, с това разрешенията на копираното ще станат споделен потребител.
Ако вече има файлове за копиране, принадлежащи на други потребители и първични групи, трябва да ги промените всички.
# cd / home
# chown -R споделено: споделено споделено
Остава само нещо в неизвестност, което не знам как да направя, за да копирам графично като споделен потребител, тоест без да се налага да правя $ su - споделено
Беше много глупаво да копирам графично, хе-хе, аз използвам pcmanfm тук в openbox, но можете да използвате файловия мениджър, който имате или искате, той се изпълнява само като споделен потребител, а не като root потребител.
$ su - споделено
$pcmanfm
$ делфин
$mc
и т.н. и т.н.
Тъкмо щях да отговоря на това. Ако не, другият е crontab, който променя собственика на файловете всеки x път с a
chown -R compartido:compartido compartido
Струва ми се, че командата "usermod -G thenewgroup elusuario" това, което прави, по същество променя потребителската група на "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 файла, знам, че трябва да поставя изискване valid-user, но ако поставя изисквам valid-user web1 web2 web3 web4, за да имат достъп до папката с паролата си, когато се опитвам да вляза в папката, тя ме пита за потребителя и парола на всеки от тях. Как да получа само запитване за потребителско име и парола на този, който иска да влезе? защото се предполага, че единият не знае паролата на другия.
Здравейте.
Четвъртият терминал трябва да има "споделено" множествено число:
sudo usermod -G сподели себастиан
sudo usermod -G сподели mywomen
Поздрави.
Gustavo
Наздраве:
Мигрираме от Windows Server към CentOs 6 и все още сме в процес на адаптация. Моята заявка: Има ли графичен интерфейс в CentOs за споделяне на папки и предоставяне на достъп на потребителите за модифициране, редактиране и / или изтриване на файлове? Или трябва да направя всички горепосочени процедури.
Благодаря за помощта.
Също така инсталирам centos 6 и искам да го използвам със samba, която ми позволява да споделям файлове от linux и windows, знам малко, не използвам linux много, но на работа ме попитаха как мога да споделя папки но в графичен режим ??.
Здравей Моля, помогнете ми! ... Оказва се, че като направя това в моя потребител в съзнанието на Linux, сега загубих привилегии. Не мога да тичам нещо като судо. Получавам следното съобщение "Извинете, потребителят" потребителско име "не е упълномощен да изпълнява" command_to_run "като корен в" потребителско име ""
Мисля, че когато смених потребителя си в споделената група, отнех привилегии и сега как да ги възстановя ???
Ей приятелю, има ли начин да направиш същото, но да споделяш файлове с други хора в интернет локалната мрежа
За това трябва да използвате SAMBA като файлов сървър. Наздраве
Здравей Когато стигнах до командата sudo chmod g + s dirname, тя ми казва, че файлът или директорията не съществуват. Знаете ли какъв е проблемът?
Как да създам група в друга група?
Линията:
sudo usermod -G сподели себастиан
би трябвало:
sudo usermod -a -G споделен себастиан
първият начин премахва останалите групи на потребителя.
и ако сте изпотени, губите привилегиите си