Appearance
设置密码
交互式设置用户密码:
shell
passwd newuser- 非交互式设置密码(需root权限):
shell
echo "password" | passwd --stdin username # 某些系统可能不支持
echo "username:password" | chpasswd密码管理复杂度
- 使用工具如 Keepass 管理密码复杂度。
切换用户
- su:切换用户
su - 用户名:切换到指定用户并加载其环境变量。exit或ctrl+d:退出当前用户登录。
MD5 校验
用于防止文件被篡改。步骤:
- 创建文件并写入内容:
plain
echo "内容" > file.txt- 使用
md5sum生成文件 MD5 值:
plain
md5sum file.txt > md5.log- 修改文件内容后,再次使用
md5sum生成新 MD5 值并与校验文件中的值比较。 - 使用
md5sum -c md5.log进行批量校验:
plain
md5sum -c md5.log # 校验修改文件属主和属组
- chown:修改文件属主和属组
chown 属主.属组 file:同时修改属主和属组。chown 属主 file:只修改属主。chown :属组 file:只修改属组。-R:递归修改目录及其下所有文件的属主和属组。
示例:
plain
chown newowner.newgroup file.txtsudo 提权
- 给普通用户授权执行特定命令或所有命令时拥有 root 权限。
- 编辑
/etc/sudoers文件(建议使用visudo命令,有语法检测功能)。
格式:
plain
username ALL=(ALL) COMMAND示例:
plain
oldboy ALL=(ALL) /usr/bin/cat # 给 oldboy 用户授权执行 cat 命令使用 sudo 执行命令时,首次可能需要输入用户密码。
通配符
*:匹配任意长度的任意字符。?:匹配任意单个字符。[abc]:匹配方括号内的任意单个字符。[a-z]、[0-9]:匹配范围内的任意单个字符。!:取反(在find命令中常用)。
示例:
plain
ls *.txt # 列出所有 .txt 文件
ls a?.txt # 列出 a 开头、第二个字符任意的 .txt 文件
ls [ab].txt # 列出 a 或 b 开头的 .txt 文件其他知识点
- history:显示历史执行过的命令。
- !:调用最后一次执行过的命令(或指定编号的命令)。
- $():先执行里面的命令。
- ;、&&、||:命令分隔符,分别表示顺序执行、前命令成功则执行后命令、前命令失败则执行后命令。
- >、>>:重定向输出到文件(覆盖、追加)。
- 2>、2>>:重定向错误输出到文件(覆盖、追加)。
- /dev/null:空设备文件,丢弃所有写入其中的数据。
- /dev/zero:产生连续零流的设备文件。
示例总结
- **创建一个新用户 **
**student**,UID为1003,属于students组,家目录为/home/student,默认 shell 为/bin/bash,并设置密码为student123:
plain
groupadd -g 1002 students
useradd -u 1003 -g students -m -s /bin/bash student
echo "student123" | passwd --stdin student- 修改
**student**用户的家目录 为/home/newstudent并验证修改是否成功:
plain
usermod -d /home/newstudent student
ls -ld /home/newstudent- 使用
**md5sum**生成文件**example.txt**的 MD5 值 并保存到md5.log中,然后修改example.txt内容,验证 MD5 值是否变化:
plain
echo "Example content" > example.txt
md5sum example.txt > md5.log
echo "New content" >> example.txt
md5sum -c md5.log # 应提示失败- 给
**student**用户授权执行**ls**和**cat**命令: 使用visudo编辑/etc/sudoers文件,在文件中添加:
plain
student ALL=(ALL) /bin/ls, /bin/cat- 使用
student用户登录,验证是否可以使用sudo ls和sudo cat /etc/passwd命令。