Linux文件权限及其修改

Unix/Linux 是多用户多任务操作系统,因此对文件权限的了解和管理就显得很有必要。

1. 查看所有用户及所有的组

/etc/group 文件是用户组的配置文件,内容包括当前系统所有用户和用户组,并且能显示出用户是归属哪个用户组或哪几个用户组,因为一个用户可以归属一个或多个不同的用户组;同一用 户组的用户之间具有相似的特征。可以通过 cat 指令查询文件内容。

$ cat /etc/group
nobody:*:-2:
nogroup:*:-1:
wheel:*:0:root
daemon:*:1:root
kmem:*:2:root
sys:*:3:root
tty:*:4:root
operator:*:5:root
mail:*:6:_teamsserver
bin:*:7:
procview:*:8:root
procmod:*:9:root
owner:*:10:
everyone:*:12:
_taskgated:*:13:_taskgated
...

每个用户组一条记录,基本格式为:group_name:passwd:GID:user_list

每条记录分四个字段:第一个字段是用户组名称。第二字段是用户组密码。第三个字段是用户组ID。第四个字段是用户列表,每个用户之间用 , 号分割,这个字段可以为空,空字段表示用户组为GID的用户名。

2. 查看用户所在的组

如果想查看当前用户所属的组,可以使用 groups 指令,加上待查询的用户名即可。

$ groups root
wheel daemon kmem sys tty operator procview procmod everyone staff certusers 
localaccounts admin com.apple.sharepoint.group.1 _appstore _lpadmin 
_lpoperator _developer _analyticsusers com.apple.access_ftp 
com.apple.access_screensharing com.apple.access_ssh-disabled

3. 设置文件权限

当我们使用 ls -l 指令时,输出的信息中第一列是一段关于该文件或文件夹的权限的信息。

其格式为 (0-filetype)(1-3-user-authority)—(4-6-group-authority)—(7-9-other-user-authority)
分别是文件类型指示符,当前用户权限,当前用户所属用户组的权限,系统其他用户的权限。
r 表示其拥有读取的权限,w 表示其拥有写入的权限,x 表示其拥有执行的权限(若该文件可执行)。

$ ls -l ~ | grep Desktop
drwx------ 32 gcxyb  staff  1024 Mar 29 16:01 Desktop

了解了文件权限的含义,我们就可以根据需要自行设置文件的访问或执行权限,使用 chmod 指令。如果是文件夹且对子文件也有效可以加上参数 -R

比如

(a) 为 `test.py` 文件增加可执行权限 `$ chmod u+x test.py`

(b) 删除用户组的 `test.py` 可执行权限 `$ chmod g-x test.py`

(c) 使文件 `test.py` 的所有读写执行权限对所有用户开放 `$ chmod a+wx test.py`

4. 修改文件所属用户及用户组

有时候当我们从系统中其他用户的目录下拷贝一份数据过来后,文件所属的用户及用户组权限可能包含在内,如果我们想要将其修改为自己当前用户的所有权,可以使用 chown 指令。同样的,如果是文件夹且对子文件也有效可以加上参数 -R

$ chown -R root:root ./mydir

(全文完)


本文作者 :phillee
发表日期 :2021年3月30日
本文链接https://www.cnblogs.com/phillee/p/14598275.html
版权声明 :自由转载-非商用-非衍生-保持署名(创意共享3.0许可协议/CC BY-NC-SA 3.0)。转载请注明出处!
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。

感谢您的支持

¥ 打赏

微信支付

posted @ 2021-03-30 18:58  coffee_tea_or_me  阅读(309)  评论(0编辑  收藏  举报