要求任何人在/project/jishshubu目录中创建的文件都要能自动属于jishubu组所有
时间: 2024-09-20 19:15:54 浏览: 38
在Linux或Unix系统中,如果你想确保任何人在`/project/jishubu`目录及其子目录下创建的文件都自动归属于特定用户组`jishubu`,你可以设置该目录的权限和默认所有者。这通常通过修改目录的`setgid`标志以及所有者设置来完成:
1. **修改目录权限**:
- 使用`chmod`命令,将`g+w`(组写权限)添加到目录权限上,以便让组成员可以写入:
```
sudo chmod g+rw /project/jishubu
```
- 如果你想进一步限制只能在目录下创建文件而不能直接写入子目录,可以只给予执行权限:
```
sudo chmod go+x /project/jishubu
```
2. **设置目录的setgid属性**:
- 使用`chown`命令,将目录的所有权设为用户(通常是root或其他管理员账户)和`jishubu`组:
```
sudo chown root:jishubu /project/jishubu
```
- 然后使用`chmod`命令将`g+s`(set group ID on execution)添加,这样当在这个目录下创建新文件时,它们会继承当前目录的组所有权:
```
sudo chmod g+s /project/jishubu
```
现在,每当用户在`/project/jishubu`目录及其子目录创建文件时,文件将默认属于`jishubu`组。
相关问题
4、建立目录/project/jishubu,设置权限为770,把属主更改为peter,属组为jishubu. 要求任何人在/project/jishubu目录中创建的文件都要能自动属于jishubu组所有, 要求jishubu组中人员创建的文件,不能被相互删除, 复制/var/log/messages文件到/root目录,并设置权限为755, 使用vim打开/root/messages文件,复制1-5行到结尾, 在文件末尾输入"this is a end",给/root/messages文件增加a属性并查看是否成功, 尝试删除/root/messages, 通过echo命令追加‘---------------’到文件末尾。linux
好的,以下是解答:
1. 建立目录/project/jishubu,设置权限为770,把属主更改为peter,属组为jishubu:
```
mkdir /project/jishubu
chmod 770 /project/jishubu
chown peter:jishubu /project/jishubu
```
2. 任何人在/project/jishubu目录中创建的文件都要能自动属于jishubu组所有:
```
chmod g+s /project/jishubu
```
3. 要求jishubu组中人员创建的文件,不能被相互删除:
```
chmod g+t /project/jishubu
```
4. 复制/var/log/messages文件到/root目录,并设置权限为755:
```
cp /var/log/messages /root/
chmod 755 /root/messages
```
5. 使用vim打开/root/messages文件,复制1-5行到结尾,在文件末尾输入"this is a end":
```
vim /root/messages
1,5t$
$ put = "this is a end"
```
6. 给/root/messages文件增加a属性并查看是否成功:
```
chattr +a /root/messages
lsattr /root/messages
```
7. 尝试删除/root/messages:
```
rm /root/messages
```
删除时会提示:Operation not permitted。这是因为我们给文件增加了a属性,即使是root用户也不能删除或修改该文件。
8. 通过echo命令追加‘---------------’到文件末尾:
```
echo "---------------" >> /root/messages
```
Linux命令只有项目组成员才能在/public/project1下创建,修改文件,项目下的所有文件只有root或者其所有者才能删除
您可以使用以下命令来实现只有项目组成员才能在 /public/project1 下创建和修改文件,而删除文件的权限仅限于 root 用户或文件所有者:
1. 首先,将 /public/project1 目录的所有权和组设置为 root 和 project1:
```
sudo chown root:project1 /public/project1
```
2. 接着,将 /public/project1 目录的权限设置为 2770,这样只有目录所有者和项目组成员才能创建和修改文件:
```
sudo chmod 2770 /public/project1
```
3. 然后,使用 setfacl 命令添加一个 ACL 条目,使得项目组成员可以写入 /public/project1 目录:
```
sudo setfacl -m g:project1:rwX /public/project1
```
4. 最后,使用 chmod 命令将 /public/project1 目录下的所有文件和子目录的权限设置为 660 和 770,这样只有文件所有者和项目组成员才能读写这些文件和目录:
```
sudo chmod -R 660 /public/project1/*
sudo chmod -R 770 /public/project1/*
```
这样,只有项目组成员才能在 /public/project1 目录下创建和修改文件,而删除文件的权限仅限于 root 用户或文件所有者。
阅读全文