提示:在Linux中有多个用户共享目录

终端

今天,我返回另一个提示,我个人使用了很多: 能够在Linux上的多个用户之间拥有共享目录。 我把它们放在一种情况下,因为我和妻子在家里,我们俩都使用同一台PC 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的值。 如果该选项不存在,则必须添加它。

您还可以编辑/ etc / profile文件,这样更改将影响所有用户

因此,在控制台中,我们输入:

sebastian@multivacs ~> vim .profile

我们将看到如下所示:

VI-PROFILE2。

因此,我们转到显示umask的行,我们按字母 i 为了能够进行编辑,我们删除了#以删除评论。 我们将数字更改为002。如果没有出现该行,则必须添加它。

完成后,我们按键 ESC 退出编辑模式,然后我们写 :+q+w。 是什么使我们保存更改并退出Vi。

它看起来像这样的图像:

vi配置文件

就是这样!如果他们关闭了用户会话并重新打开,则将进行更改,因此共享目录将起作用。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   拉夫

    大提示。

  2.   KZKG ^ Gaara

    和煦。

    几年前,我发现自己需要这样做,我不知道是umask ...而是将任务放在crontab中🙂

    谢谢你的提示

    1.    Thalskarth

      是的,crontab也很好。 您为将775权限分配给内容做了什么?

  3.   原始基础

    大提示....如果需要的话保存;)..

  4.   路易斯

    好的,您创建文件夹/ home / shared并为其分配“共享”组,但是

    该文件夹属于哪个用户? 也就是说,谁是所有者? 我,其他人或由于我使用sudo而被禁用帐户的root用户?

    另一方面,我发现自己遇到以下问题:他人无法删除我创建的文件,而他人无法删除自己创建的文件。

    我做错了什么?

    1.    Thalskarth

      使用sudo创建文件夹时,应以root作为所有者。 您也可以使用chown命令对其进行修改,以分配其他用户。

      另一方面,检查所创建的文件是否具有775权限(这赋予umask 002)。 如果他们没有这些权限,则可能是某些错误的设置。

      同样,值得澄清的是,umask会影响目录中创建的每个新文件,但是如果它们移动或从另一个位置复制内容,则将保留原始权限,而不是我们设置给目录的权限。

      1.    路易斯

        嘿! 你是对的。

        我一直在寻找,问题是由您说的最后一句话引起的:将文件从另一个位置移动到共享文件夹时,将保留原始权限。

        有针对这个的解决方法吗?

        我可以用珍珠。

      2.    Thalskarth

        在这种情况下,最好的办法是放置一个像KZKG ^ Gaara所说的crontab,在其中可以放置一个命令,以便每X次为文件夹内容分配组和权限。
        就是说在crontab中是这样的:
        sudo chgrp -R compartidos /home/compartido/*
        chmod -R 775 /home/compartido/*

        为了获得所有新功能,请转到权限为775的共享组。

      3.    Thalskarth

        忽略每行末尾的*号,我在考虑时会想到其他内容😛

      4.    路易斯

        谢谢你的朋友。

  5.   埃内斯托

    很好的帖子,但是我更喜欢有一个单独的分区,在其中可以放置所有想要共享的内容。 我有一个很大的500 GB磁盘,其中我在Linux上使用100GB,在其中包含所有音乐,照片等的400GB分区(ntfs)。在我的电脑上,我们有两个用户,每个用户都可以访问ntfs分区并在需要时放置和删除我们想要的东西。 如果我不想共享任何内容,则我的用户名中包含一些内容。 🙂

    1.    路易斯

      这已经是另一种实现方法,但是问题不在于文件放置位置,而是配置权限和控制不同用户的访问。

      您可以将它放在NTFS分区上,这是正确的,但也有碎片,比EXT4慢,并且安全性较低,尽管以这种方式对您有好处,但它同样有效。

  6.   雷纳格

    好的! 很好的提示,但我仍然会添加一个任务,以在每次登录时将新文件的权限更改为775,并解决文件从另一个文件夹移动的问题。
    另外,非常感谢您的分享!

  7.   华金

    有趣,谢谢!

  8.   匿名

    我正在提出一些与某些gnu / linux发行版的主要共享组有关的东西。 一些发行版使用主要组用户创建用户,而不使用与用户名相同的主要组。
    区别在于,使用主组用户时,默认情况下,所有内容都与该发行版中创建的所有用户所属的组用户共享,如果使用与用户名相同的组来创建,则默认情况下不什么都不会共享。

    例如:
    $ ls -l /home/user/*.txt
    -rw-r – r– 1 carlos carlos 126 25年2012月XNUMX日notes.txt

    $ ls -l /home/user/*.txt
    -rw-r – r– 1个carlos用户126 25年2012月XNUMX日

    我不建议使用主要组用户,最好在创建用户时创建自己的主要组。

    #groupadd卡洛斯
    #useradd -g carlos -G lp,wheel,uucp,音频,cdrom,cdrw,usb,lpadmin,plugdev -m -s / bin / bash carlos

    -g carlos表示使用父组carlos。
    您可以使用#usermod -g更改用户的主要组,但不会更改/ home / carlos中已经存在的所有文件和文件夹的主要组,您必须全部更改。

    示例:将主要组用户从用户carlos更改为主要组carlos,然后进行更改
    用户carlos的所有文件和文件夹权限,以便他们保留为carlos carlos。

    #groupadd卡洛斯
    #usermod -g carlos用户
    #cd /主页
    #chown -R carlos:卡洛斯·卡洛斯

    关于共享,您可以创建一个与共享主组共享的用户,这样在复制时不会出现权限问题,请先更改该用户
    使用“ $ su-shared”,然后将您想要的内容复制到/ home / shared,这样,复制内容的权限将成为共享用户。
    如果已经存在属于其他用户和主要组的复制文件,则必须全部更改它们。

    #cd /主页
    #chown -R共享:共享共享

    边缘中只剩下一些东西,我不知道该如何以共享用户的身份进行图形复制,即不必执行$ su-shared

  9.   匿名

    以图形方式进行复制是一件很愚蠢的事情,嘿,我在openbox中使用pcmanfm,但是您可以使用拥有或想要的文件管理器,它仅以共享用户的身份执行,而不是以root用户的身份执行。

    $ su-共享
    $pcmanfm
    $海豚
    $麦克
    等等等等

    1.    Thalskarth

      我正要回答这个问题。 如果不是,则另一个是crontab,它每隔x次用a更改文件的所有者。
      chown -R compartido:compartido compartido

  10.   雨果

    在我看来,命令“ usermod -G thenewgroup elusuario”实际上是将用户的组更改为“ thenewgroup”。 要将现有用户添加到新组中,我认为正确的做法是“ usermod -aG elnuevogrupo elusuario”

    另一件事是,我在这里看到有人建议使用“ chmod -R 775”,但这不仅会影响目录,还会影响所有文件(使它们可执行),这会带来不必要的风险。 最好做类似“查找/家庭/共享-type d -print0 | xargs -0 chmod 755“,如果需要,可以对文件进行类似的操作,但使用” -type f“并授予权限664。

    最后,一种使多个帐户都可以访问文件或文件夹的方法,而不管所有者或组是谁,方法是使用acl软件包中的“ setfacl”命令(如果我没有记错的话)。 手册页上对它的用法进行了详细说明。

  11.   乌奈马丁

    我有以下问题。 我已经创建了4个用户(web1,web2,web3,web4),并且我想为该Web组的用户创建一个访问组文件夹。 当我创建.htaccess文件时,我知道必须输入要求有效用户的密码,但是如果输入要求有效用户的密码,则当我尝试访问该文件夹时,他们才能使用密码访问该文件夹问我每个用户的用户名和密码,我如何只询问要输入的用户名和密码? 因为假定一个人不知道另一个人的密码。

  12.   古斯塔沃·帕雷德斯

    嘿。

    第四个终端应具有“共享”复数:

    sudo usermod -G共享塞巴斯蒂安

    sudo usermod -G分享了我的女人

    问候。

    古斯塔沃

  13.   伊万

    干杯

    我们正在从Windows Server迁移到CentOs 6,我们仍在适应过程中。 我的查询:CentO中是否有图形界面来共享文件夹并为用户提供修改,编辑和/或删除文件的权限?还是应该执行上述所有步骤。

    谢谢您的帮助。

    1.    拉斐尔

      我也在安装centos 6,我想与samba一起使用它,使我可以从linux和Windows共享文件,我已经学到了一点,我使用的不是很多,但是在工作中有人问我如何共享文件夹,但处于图形模式??。

  14.   Ricardo

    你好请帮助我!...事实证明,通过在Linux中以我的用户身份执行此操作,现在我失去了特权。 我不能像sudo一样运行。 我收到以下消息“对不起,用户”用户名“无权执行” command_to_run“以root用户身份登录”用户名“”

    我认为,当我将用户更改为共享组时,我取消了特权,现在如何还原它们?

  15.   吉列尔莫

    嘿,朋友有什么办法可以做,但是可以与Internet LAN上的其他人共享文件

  16.   费边

    为此,您必须将SAMBA用作文件服务器。 干杯

  17.   David

    你好当我使用命令sudo chmod g + s dirname时,它告诉我该文件或目录不存在。 你知道是什么问题吗?

  18.   哈维尔·基罗加·阿尔梅达

    如何在另一个组中创建一个组?

  19.   罗德里戈·赫尔南·拉莫斯(Rodrigo Hernan Ramos)

    该行:
    sudo usermod -G共享的塞巴斯蒂安

    应该:
    sudo usermod -a -G共享塞巴斯蒂安

    第一种方法是删除用户的其余组。
    如果出汗了,就会失去特权