详细异常
id: cannot find name for user ID 1000
id: cannot find name for group ID 1000
id: cannot find name for user ID 1000
原因
因为该用户没有权限读取/etc/passwd
和/etc/group
。
解决办法
赋予用户读取/etc/passwd
和/etc/group
的权限。
chmod o+r /etc/passwd
chmod o+r /etc/group
解读chmod命令
语法
chmod [-cfvR] [--help] [--version] mode file
[-cfvR]
- -c 若文件权限被更改,输出更改信息
- -f 当文件模式不能被更改,不会输出信息通知用户
- -v 无论是否修改成功,都会输出每个文件的信息
- -R 递归遍历子目录,即权限变动应用到目录下所有文件和子目录
慎用
mode
mode的构成
[ugoa] [+-=] [rwx]
[ugoa]
- -u 文件的拥有者
- -g 文件的拥护者所属的群体,即同一个用户组
- -o 除了ug包含的其他用户
- -a all 包含前三者
[+-=]
-
- 增加权限
-
- 取消权限
- = 唯一设定权限
[rwx]
- -r 可读取
- -w 可写入
- -x 可执行
示例
chmod o+r /etc/passwd
o代表其他用户,+ 代表增加权限,r 代表可读取,所以该命令作用是赋予其他用户读取/etc/passwd
的权限。
查看文件权限
命令ll
即可查看文件的权限,如:
# ll
# 输出
-rwxr--r-- 1 root root 965 May 30 11:03 kill_tomcat.sh
-rwxr--r-- 1 root root 1863 May 30 11:31 releaseNew.sh
字符权限表达式
-rwxr--r--
权限表达式一共是10位。
- 第1位,代表的是文件类型;
- 第2-4位,代表的是文件拥有者的权限;
- 第5-7位,代表的是用户组拥有的权限;
- 第8-10位,达标的是其他用户拥有的权限;
示例
当前使用用户是root
,kill_tomcat.sh
的权限是-rwxr--r--
。第一位是-
没有标明文件类型。2-5位为rwx
,代表root用户拥有读写执行权限。5-7位为r--
,代表root用户所在的用户组拥有读取权限。8-10位为r--
,代表除了root用户组内的其他用户拥有读取权限。
三位八进制表达式
我们也可以使用3位八进制数字(4 2 1)之和的形式来表示权限,其中4代表高位,2代表中位,1代表低位。那么rwxr--r--
改为数字表示就是744
。7为r(4)w(2)x(1)
4+2+1之和,4为r(4)-(0)-(0)
4+0+0之和。
chmod o+x /etc/passwd
也可以改为chmod 141 /etc/passwd
。