面试题答案
一键面试- 创建用户组:
- 假设项目组名为
project_group
,使用以下命令创建用户组:
sudo groupadd project_group
- 假设项目组名为
- 添加用户到用户组:
- 对于需要参与项目的用户,例如
user1
和user2
,使用以下命令将他们添加到project_group
:
sudo usermod -a -G project_group user1 sudo usermod -a -G project_group user2
- 用户需要重新登录才能使新的组关系生效。
- 对于需要参与项目的用户,例如
- 设置目录权限和所有权:
- 将
/project
目录的所有权设置为project_group
,并给予组读写执行权限,其他用户无任何权限:
sudo chown -R :project_group /project sudo chmod -R g+rwX /project sudo chmod -R o-rwx /project
g+rwX
中的X
表示仅当文件是目录或者已有可执行权限时,赋予组可执行权限,这样既保证了目录可进入,又不会随意赋予文件可执行权限。
- 将
- 设置文件默认权限掩码(umask):
- 为了确保新创建的文件和目录自动获得合适的权限,可以设置
umask
。对于project_group
中的用户,合适的umask
值为0002
,这会使得新创建的文件默认权限为-rw-rw-r--
,新创建的目录默认权限为drwxrwxr-x
。 - 可以在用户的
~/.bashrc
文件中添加以下行来设置umask
:
umask 0002
- 然后执行
source ~/.bashrc
使设置生效。这样,无论系统重启与否,用户创建的新文件和目录都会继承合适的权限。
- 为了确保新创建的文件和目录自动获得合适的权限,可以设置
- 粘滞位(针对共享目录下防止误删除):
- 如果
/project
目录下有共享文件,为防止用户误删除他人文件,可以设置粘滞位。粘滞位使得只有文件所有者、目录所有者或root用户才能删除或重命名该目录下的文件。
sudo chmod +t /project
- 粘滞位设置后,即使系统重启,只要目录权限未被修改,该功能依然有效。
- 如果