所以基本上我希望能够使用 stfp 写入数据,但当我使用它时。它说权限被拒绝。我希望能够在这个目录中执行此操作,/home/user
因此当我使用ls -l
命令时,它有以下输出
total 8
drwxr-xr-x 2 root root 4096 Apr 22 21:43 FOLDER1
drwxr-xr-x 2 root root 4096 Apr 22 22:00 FOLDER2
我如何才能看到谁是这个目录的所有者。我知道我可以使用此命令chmod a+rw user
为每个人授予读写权限,但我只想将其授予一个用户。系统中只有一个用户,但我将来可能会创建更多用户。我想了解所有者和组的概念。其他问题:- 如何查看有哪些组。如何创建组以及如何将用户添加到该组。
答案1
非常好且正确的答案韋茲
唯一可以改进的是实际的例子(尽管这是暗示)。由于我可能还没有发表评论(声誉点数不足),因此我不得不写一个额外的答案来提供例子。
简化命令语法:
sudo chown username[:[groupname]] <filename>
sudo chown username[:[groupname]] <dirname>
对于以下示例,这些是参数
- 用户名:杰克
- 登录组名称:定时器
- 团队名字:账户
- 文件名:富
- 目录名称:客户
该文件存在于目录中名为共享的foo
系统上。server
data
clients
IE //sever/data/clients/foo
示例:更改文件所有权
1. admin@server:/data$ sudo chown jack clients/foo
2. admin@server:/data$ sudo chown jack: clients/foo
3. admin@server:/data$ sudo chown jack:accounts clients/foo
- 更改所有者文件命名
foo
杰克 - 更改所有者文件命名
foo
杰克和组定时器。杰克是登录组命名定时器. 在此示例中登录组暗示使用:
所有者姓名后 - 更改所有者文件命名
foo
杰克并分组至accounts
示例:更改目录所有权
4. **admin@server:/data$** sudo chown jack clients
5. admin@server:/data$ sudo chown jack: clients
6. admin@server:/data$ sudo chown jack:accounts client
7. admin@server:/data$ sudo chown -R jack:accounts client
- 更改所有者目录命名
clients
杰克 - 更改所有者目录命名
clients
杰克和组定时器 - 更改所有者目录命名
clients
杰克并分组至accounts
- 更改所有者目录以及目录中的所有
clients
文件杰克并分组至accounts
如需更多帮助,请参阅:
chown --help
man chown
info chown
答案2
在您的ls -l
输出中,第 3 列和第 4 列分别是用户(所有者)和组(所有者),因此您的文件夹都归 root 拥有。
如果您运行chmod +006 yourfile
,这将授予所有用户对 的读写权限yourfile
。在本例中,root
拥有该文件夹,因此您需要使用sudo
(或其他方法以 root 身份发出命令)。如果您只希望单个用户或少数用户具有访问权限,则可以使用chown userowner[:groupowner]
(使用sudo
)使该用户或组成为该文件的所有者,并使用chmod +600
授予所有者读写权限,chmod +060
授予组所有者读写权限。
要列出当前用户所属的组,请使用groups username
。要列出所有组,您可以使用cat /etc/group
。getent group
也有效。
要创建新组,请使用groupadd
。
要将用户添加到组,请使用usermod -Ga groupname username
。如果不使用标志-a
,则用户username
将从所有当前组中删除,并且仅存在于新组中groupname
。