作为一名Linux系统管理员,我经常需要面试新人或培训团队成员。在这个过程中,我发现很多初学者对Linux命令和权限系统的理解存在不少误区。今天我就来分享一组精心设计的Linux命令与权限选择题,帮助大家系统性地掌握这些核心知识点。
以下哪个命令可以递归复制目录及其所有内容?
A) cp -r
B) cp -a
C) cp -v
D) cp -f
正确答案是A。这里需要解释的是:
实际工作中,我建议使用cp -a,因为它不仅能递归复制,还能保留文件的所有属性(权限、时间戳等)。这个选项在备份场景特别有用。
要统计文件的行数、单词数和字符数,应该使用:
A) wc
B) grep -c
C) awk '{print NR}'
D) sed -n '$='
正确答案是A。各选项分析:
提示:wc命令的常用参数组合是wc -l(仅统计行数),这在日志分析时特别实用。
文件权限rwxr-xr--对应的数字表示是:
A) 755
B) 754
C) 644
D) 654
正确答案是B。计算过程:
在实际服务器配置中,我通常会给可执行文件755权限,给配置文件640权限,这是比较安全的做法。
设置一个文件为"即使删除后也保留内容"应该使用:
A) chattr +i
B) chattr +a
C) chmod +t
D) chmod +s
正确答案是A。各选项解析:
这个功能在保护关键配置文件时非常有用,比如/etc/passwd。设置后即使是root用户也需要先取消属性才能修改。
创建一个新用户并同时创建家目录的正确命令是:
A) useradd -m
B) useradd -d
C) adduser
D) newuser
正确答案是A和C都正确。区别在于:
在自动化脚本中我推荐使用useradd -m,因为它更可控。而adduser适合手动操作时使用。
要让新建文件继承父目录的组权限,应该设置:
A) chmod g+s
B) chmod u+s
C) chmod o+t
D) chmod a+x
正确答案是A。这是SGID位的典型应用场景:
某开发团队需要共享/data/project目录,要求:
正确的权限设置步骤是:
这样设置后:
我在实际项目中发现,很多团队会忽略第3步,导致新建文件不属于共享组,造成权限问题。
某脚本无法执行,显示"Permission denied",但权限是-rwxr-xr-x,可能原因是:
A) 文件系统以noexec挂载
B) 脚本首行不正确
C) 磁盘空间不足
D) 内存不足
正确答案是A。排查思路:
这种情况在挂载外部设备时经常遇到,特别是某些安全策略严格的系统中。
要给特定用户额外权限而不影响原有权限,应该使用:
A) setfacl
B) chmod
C) chown
D) usermod
正确答案是A。ACL(访问控制列表)的优势:
在复杂的权限管理场景中,ACL比传统权限灵活得多。比如可以给某个用户单独开放日志目录的读取权限。
某服务无法访问其配置文件,常规权限正常,可能还需要检查:
A) ls -Z查看安全上下文
B) ps -Z查看进程上下文
C) 两者都需要
D) 都不需要
正确答案是C。SELinux问题排查步骤:
我在管理RHEL/CentOS服务器时,SELinux引起的"权限正确但访问被拒"问题相当常见。
这些选择题覆盖了Linux系统管理中最关键的权限知识。掌握它们不仅能帮助通过技术面试,更能避免实际工作中的各种权限问题。我在管理生产服务器时,几乎每天都会用到这些知识点。