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.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:产生连续零流的设备文件。
示例总结
- **创建一个新用户 **
**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
命令。