linux文件属性基础
Linux文件属主和属组
通过命令ls 可以查看文件属性:
zc@argo-MS-7D53:~/Desktop/parent_ceshi$ ll -lh
total 16K
drwxrwxr-x 2 zc zc 4.0K 1月 10 13:59 ceshi/
drwxrwxr-x 2 zc zc 4.0K 1月 10 13:59 ceshi02/
以上展示命令的意思:
每个文件的属性由左边第一部分的 10 个字符来确定(如下图)。
具体可参考
对于linux一切皆为文件,文件夹其实也可以理解成文件,只是作用不一样而已……
对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。
同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。
文件所有者以外的用户又可以分为文件所属组的同组用户和其他用户。
因此,Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。
在以上实例中,ceshi文件是一个目录文件,属主和属组都为 zc,属主有可读、可写、可执行的权限;与属主同组的其他用户有可读和可执行的权限;其他用户也有可读和可执行的权限。
对于 root 用户来说,一般情况下,文件的权限对其不起作用。
另外,对于该级别的文件夹和文件,其权限由上级父目录的权限指定。
综上所述,要共享某个用户的本地文件夹,只需要创建一个group,将需要共享的用户和属主用户添加进来,然后把这个文件夹的属组改为该group即可。
共享某用户的本地文件夹
# 新建group 删除group是命令 groupdel
(base) zc@argo-MS-7D53:~/Desktop/parent_ceshi$ sudo groupadd share
# 新建将要共享的文件夹
(base) zc@argo-MS-7D53:~/Desktop/parent_ceshi$ mkdir ceshi
# 将要共享的两个用户添加进入该group
(base) zc@argo-MS-7D53:~/Desktop/parent_ceshi$ sudo usermod -a -G share zc
(base) zc@argo-MS-7D53:~/Desktop/parent_ceshi$ sudo usermod -a -G share bqs
# 更改刚刚创建的文件夹的属组
(base) zc@argo-MS-7D53:~/Desktop/parent_ceshi$ chgrp share ceshi
# 查看文件属性
(base) zc@argo-MS-7D53:~/Desktop/parent_ceshi$ ll -lh
total 16K
drwxrwxr-x 4 zc zc 4.0K 1月 10 13:59 ./
drwxr-xr-x 5 zc zc 4.0K 1月 10 13:58 ../
drwxrwxr-x 2 zc share 4.0K 1月 10 13:59 ceshi/
drwxrwxr-x 2 zc zc 4.0K 1月 10 13:59 ceshi02/
# 此时,文件属组具有rwx权限,若属组没有rwx权限,可在该文件的属主账户下或者加sudo通过chmod -R g=rwx ceshi 赋予
# 但是,如果直接此文件夹下创建文件,依然属组的其他用户无法具有这些子文件的rwx权限,解决这个通过:
# 即将属组用户赋予+s的属性,官方解释是在文件执行时把进程的属主或组ID置为该文件的文件属主
# 通俗点说就是:+s是为了确保之后添加进去的文件夹文件等也继承同样的权限
(base) zc@argo-MS-7D53:~/Desktop/parent_ceshi$ chmod g+s ceshi
# 以上 在ceshi文件夹下文件,切换其他用户也具有rwx权限,比如其他用户也可以删除。
一些其他注意事项:
将一个用户添加到用户组中,千万不能直接用:
usermod -G groupA
这样做会使你离开其他用户组,仅仅做为 这个用户组 groupA 的成员。
应该用 加上 -a 选项:
usermod -a -G groupA user
-a 代表 append, 也就是 将自己添加到 用户组groupA 中,而不必离开 其他用户组。