在linux中,有一些关于用户与用户组(工作组)或者文件权限有关的命令,在日常操作中经常会用到,我们这里汇总下,以供备忘。一般来说,以下命令常用:
- chmod, change mode,改变文件的权限
- chgrp , change group,改变文件的用户组
- chown, change owner,改变文件的用户归属
- useradd,添加新用户
- groupadd,添加新的用户组
还有以下文件也常常和用户,用户组和权限有关:
- /etc/group
- /etc/sudoers
命令
chmod
change mode,用于改变文件或者文件夹的权限,一般来说文件或者文件夹的权限分为三类:
- 对于本用户而言
- 对于本用户组而言
- 对于其他所有用户而言
一般表示为---(本用户权限),---(本用户组权限),---(其他用户权限),比如rwx,---,---就表示这个文件只对本用户可以访问(r, read),写入(w, write)和可执行(x, execute),而同组用户或者其他用户都不能访问(当然除了超级管理员例外,用了root权限的可以执行所有操作)。通过使用命令chgrp可以改变文件的用户组归属,chown可以改变文件的用户归属。通过这些命令的配合可以实现对文件权限的精确控制,隔离操作敏感危险的文件。
在使用过程中,用一个三位数编码权限。因为rwx,rwx,rwx是一个9位的编码,我们在某一位有效的情况下设为1,无效也就是-的时候,设为0,以三个为一组解释为二进制数值后,便是得到从0到7的数字了。比如权限rwx,---,---就是700,r-x,r-x,---就是550,依次类推。具体操作如:
[sudo] chmod authority [options] (file_name) # 命令通式
[sudo] chmod 700 file_A
[sudo] chmod 550 -R folder_A # 对于文件夹来说用-R选项表示递归执行所有内部文件
[]表示可选,有些时候需要用root权限才能对某些文件进行操作。
chgrpchange group, 改变文件的用户组归属,比如文件原来是属于用户user_A的,在没有指定用户组的情况下,默认文件的用户组归属也是user_A。如果想要改变文件的用户组归属,将其改为一个由几个小伙伴组成的工作组group_1,可以用chgrp命令实现。命令如:
[sudo] chgrp [options] (group_name) (file_name) # 命令通式
[sudo] chgrp group_1 file_A # 对文件进行操作
[sudo] chgrp -R group_1 folder_A # 对文件夹内所有文件进行操作
chown
change owner, 改变文件的用户归属,和chgrp
类似,直接给出例子。
[sudo] chown [options] (user) (file_name) # 命令通式
[sudo] chown user_A file_a
[sudo] chown -R user_A folder_a
useradd
用于添加新的用户
sudo useradd new_user
sudo passwd new_user # 为新用户设置密码
groupadd
添加新的用户组,其中有个选项-G
是使得某个用户user_A
添加入已存在的组group_A
中,如:
[sudo] groupadd group_A # 新建立一个组名为group_A
[sudo] groupadd -G group_A user_A
文件
/etc/group该文件管理这和用户组有关的信息,包括分组细节等。
/etc/sudoers该文件管理着所有的root用户,通过更改该文件可以设置某些人为root用户与否
总结
总的来说,掌握以上几个命令可以对linux文件进行更为细致的权限管理,是日常使用的必需掌握的知识。