用户
查看
查看系统所有用户
cat /etc/passwd
getent /etc/passwd
用户组
用户可以属于多个组,但只有一个主要组。主要组通常是用户登录时所属的组,而额外的组则提供了对该用户的其他权限集合的访问。
查看
查看系统所有用户组
cat /etc/group
列出的行数据比如:root:x:0:,其中root是组名称;x为密码占位符,表示该组有一个密码,但实际上密码被加密存储在/etc/gshadow文件中;0为组的ID(GID);最后一个:后面代表属于该组的用户列表,如果后面没有内容表示没有列出任何特定于该组的用户,但是实际上,但这并不意味着没有用户属于该组;
getent group
查看当前用户所属组
groups
查看特定用户所属组
groups username
编辑
更改用户主要组
usermod -g new_primary_group username
new_primary_group替换为组名或组GID,username替换为用户名
增加用户额外的组
usermod -aG additional_group username
new_primary_group替换为组名或组GID,username替换为用户名
文件/文件夹所属用户/用户组
查看
查看(名称)
ls -l 文件名
如果是文件夹名,则显示该文件夹所有文件列表
stat -c "%U %G" 文件夹名/文件名
查看(ID)
ls -ln 文件名
将显示用户的UID和组的GID。
如果是文件夹名,则显示该文件夹所有文件列表
编辑
更改文件所有者
chown root file.txt
更改文件所有组
chgrp root file.txt
更改文件所有者和组
chown root:root file.txt
:前的是用户,:后的是组
文件/文件夹权限
权限说明
设置对应权限,对应的用户/组的所有用户才能对此文件进行对应权限的操作。
权限分为三种类型:
- 读(r):允许查看文件内容或列出目录内容。
- 写(w):允许修改文件或目录。
- 执行(x):允许执行文件或搜索目录。
其中r等同于4,w等同于2,x等同于1。(用在八进制设置法)
查看
查看
ls -l 文件名
-rw-r--r--表示文件权限,分四部分查看:
- -:表示普通文件
- rw-:文件所有者的权限,-表示无对应权限。
- r--:文件所属组的权限,-表示无对应权限。
- r--:其他用户的权限,-表示无对应权限。
设置
设置(符号参数)
#给文件所有者添加执行权限
chmod u+x file
#从文件所属组移除写权限
chmod g-w file
#设置其他用户的权限为只读
chmod o=r file
#设置文件所有者拥有读写执行权限,所属组和其他用户分别拥有读和执行权限
chmod u=rwx,g=rx,o=r file
#设置文件所有者,所属者,其他用户都有执行权限;其中a可以不写
chmod a+x file
chmod +x file
u,g,o,a表示的意思:
- u:文件所有者
- g:文件所属组
- o:其他用户
- a:所有用户(u、g 和 o 的总和)
+,-,=表示的意思:
- +:增加
- =:赋予,与+的区别时,其他没写的权限都会被移除
- -:移除
设置(八进制参数)
#设置文件所有者拥有读写执行权限(7),所属组和其他用户拥有读和执行权限(5)
chmod 755 file
#设置文件所有者拥有读写权限(6),所属组和其他用户拥有只读权限(4)
chmod 644 file
八进制法,需要传入3位数字的参数,比如755,对应的数字对应关系:
- 第一个数字:文件所有者的权限
- 第二个数字:所属组的权限
- 第三个数字:其他用户的权限
数字的大小规则为通过将r/w/x相应的值相加得到,比如7表示4+3+1,即拥有读写执行三个权限。
参数不一定要是3位数的,如果只有一个,代表设置的是其他用户的权限,其他权限将移除;如果有两个,代表设置是所属组和其他用户的权限,所属用户权限将移除。
特殊
- 如果使用的是root权限,那么即使待操作的文件不属于root和root组,且无读写执行权限,那么还是进行读,写。执行的话,比较特殊,需要至少给其他用户的执行权限才可以有权限运行(所有者和组没有不影响)。
- 只有文件的所有者或 root 用户可以更改文件权限(即使无读写权限也不影响)。
- 如果只有写权限,用vi命令会提示权限不足,但不影响编辑保存。
- 对于sh脚本类,执行除了要给w权限,还需要r权限,不然会提示权限不足;真正的程序则不用给r权限。