Skip to content

设置密码

交互式设置用户密码:

shell
passwd newuser
  • 非交互式设置密码(需root权限)
shell

echo "password" | passwd --stdin username  # 某些系统可能不支持
echo "username:password" | chpasswd

密码管理复杂度

  • 使用工具如 Keepass 管理密码复杂度。

切换用户

  • su:切换用户
    • su - 用户名:切换到指定用户并加载其环境变量。
    • exitctrl+d:退出当前用户登录。

MD5 校验

用于防止文件被篡改。步骤:

  1. 创建文件并写入内容:
plain
echo "内容" > file.txt
  1. 使用 md5sum 生成文件 MD5 值:
plain
md5sum file.txt > md5.log
  1. 修改文件内容后,再次使用 md5sum 生成新 MD5 值并与校验文件中的值比较。
  2. 使用 md5sum -c md5.log 进行批量校验:
plain
md5sum -c md5.log  # 校验

修改文件属主和属组

  • chown:修改文件属主和属组
    • chown 属主.属组 file:同时修改属主和属组。
    • chown 属主 file:只修改属主。
    • chown :属组 file:只修改属组。
    • -R:递归修改目录及其下所有文件的属主和属组。

示例:

plain
chown newowner.newgroup file.txt

sudo 提权

  • 给普通用户授权执行特定命令或所有命令时拥有 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:产生连续零流的设备文件。

示例总结

  1. **创建一个新用户 ****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
  1. 修改 **student** 用户的家目录/home/newstudent 并验证修改是否成功:
plain
usermod -d /home/newstudent student
ls -ld /home/newstudent
  1. 使用 **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  # 应提示失败
  1. **student** 用户授权执行 **ls****cat** 命令: 使用 visudo 编辑 /etc/sudoers 文件,在文件中添加:
plain
student ALL=(ALL) /bin/ls, /bin/cat
  1. 使用 student 用户登录,验证是否可以使用 sudo lssudo cat /etc/passwd 命令。

感谢阅读,欢迎交流!