思路为:因为root用户可以对所有文件有可读可写的权限,故将mysuer用户提权,可以使用root的权限,而其他人都只可读mod文件。
登录root用户创建/a1目录,并设置权限为chmod 777 a1
切换到hellen用户,创建/a1/mod文件touch /a1/mod
切换root设置mod文件权限为chmod 444 mod
使用visudo
或vim /etc/sudoers
修改/etc/sudoers配置文件,将myuesr用户可以使用root的权限
在第100行下的位置输入myuser ALL=(ALL) ALL
无误后,保存退出
重新加载/etc/sudoers配置文件bash
使用source /etc/sudoers
有些提示,但不影响使用
bash: Defaults: command not found…
bash:默认值:找不到命令...
bash: /etc/sudoers: line 100: syntax error near unexpected token ‘(’
bash:/etc/sudoers:第 100 行:意外标记“(”附近的语法错误
bash: /etc/sudoers: line 100: root ALL=(ALL) ALL
bash: /etc/sudoers: 第 100 行: 'ROOT ALL=(ALL) ALL
切换至myuser用户,使用命令cat mod
看见mod文件为空
而echo "hello world" | tee -a mod
系统提示我们权限不够
现在使用命令echo "hello world" | sudo tee -a mod
输入myuser用户密码,通过安全验证后,发现就可以向mod里面添加文字了
不要使用sudo echo “hello world” >> mod
会提醒权限不够,其实是sudo只赋予echo超级管理员权限,而没有赋予 >>超级管理员权限。