Linux:如何在多用户系统(包括 LDAP 用户)上最佳地配置数据分区?

Linux:如何在多用户系统(包括 LDAP 用户)上最佳地配置数据分区?

如何设置 Linux 计算机,以便每个拥有本地或 LDAP 帐户的用户都可以使用相同的数据分区。

我需要以下行为:

每个用户都可以
1. 创建文件夹/文件
2. 仅删除自己创建的文件/文件夹
3. 读取/执行所有用户的所有文件

对于拥有本地帐户的用户,我这样做:

sudo mkdir /media/data 
sudo bash -c 'echo /dev/sdb1 /media/data ext4 defaults 0 0 >> /etc/fstab' 
sudo mount -a 
sudo chown :users /media/data
sudo chmod g+rw /media/data

对应于

# create a folder to mount data partition
# create fstab entry to mount data partition (/dev/sdb1) into that folder
# mount folder
# assign group 'users' to parent folder
# give group read write permissions

剩下唯一要做的事情就是手动将每个本地用户添加到用户组:

sudo adduser myUser users

现在我们将 LDAP 添加到机器中。有人知道如何保持所需的行为,而不必手动将每个 LDAP 用户(太多)分配给用户组吗?

答案1

您可以根据需要(动态地)pam_group将用户添加到users组中。(虽然这超出了您的问题范围,但如果您将其与pam_mkhome创建新用户的主目录结合起来,您就可以让系统几乎实现自我管理。)

PAM 子系统(可插入式身份验证模块)负责身份验证和授权。它具有极好的可扩展性(因此有些复杂),甚至可以运行 shell 脚本来验证某人的登录。在这种情况下,我们只需将用户组添加users到每个登录会话中即可。

您尚未指定您使用的是哪个 Linux 发行版,因此我将给出一个 Debian 的示例。我假设您能够将其映射到您的场景中。

  1. 打开 root shell 并让它保持打开状态,直到你知道这有效

    破坏 PAM 可能会阻止任何人或任何事物登录甚至运行su/ sudo。您可能需要此 root shell 来撤消破坏的更改。

  2. pam_group通过添加此规则进行配置/etc/security/group.conf

    # All services, all ttys, all users, any time
    *; *; *; Al; users
    
  3. 配置 PAM“身份验证”堆栈以使用pam_group。编辑文件/etc/pam.d/common-auth并在文件末尾添加此行。在 Debian 上,我在以下代码块后面添加了它pam-auth-update

    auth  optional  pam_group.so
    
  4. 测试登录(本地或 LDAP),并检查是否id显示users在您的组列表中。

    如果没有,请查看末尾/var/log/auth.log以查看 PAM 报告了什么错误消息。

答案2

由于您不想使用组,因此常规 Linux 文件权限的唯一选项是使其可由others(所有用户)写入:

chown root:root /media/data
chmod u=rwx,g=rwx,o=rwxt /media/data

这应用与目录相同的权限/tmp并满足 1) 和 2)。

3) 由用户决定,但将 umask 设置为 即可022,这是大多数 Linux 发行版的默认设置。

答案3

您正在描述/var/tmp

相关内容