多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
su命令可以解决切换用户身份的需求,强烈建议在切换用户身份时添加减号(-)。这个意味着完全切换到新的用户,即把环境变量信息也变更为新用户的相应信息。 sudo命令用于给普通用户提供额外的权限来完成原本root管理员才能完成的任务,格式为“sudo \[参数\] 命令名称” **sudo服务的参数及作用** 参数 作用 -h 列出帮助信息 -l 列出当前用户可执行的命令 -u用户名或UID值 以指定的用户身份执行命令 -k 清空密码的有效时间,下次执行sudo时需再次进行密码验证 -b 在后台执行指定的命令 -p 更改询问密码的提示语 总结来说,sudo命令具有如下功能: - 限制用户执行指定的命令; - 记录用户执行的每一条命令; - 配置文件(/etc/sudoers)提供集中的用户管理、权限与主机等参数; - 验证密码的后5分钟内(默认值)无须再让用户再次验证密码 如果担心直接修改配置文件出现问题,则用**visudo命令**来配置用户权限。这个命令在配置用户权限时将禁止多个用户同时修改sudoers配置文件,还可以对配置文件内的参数进行语法检查,并在发现参数错误时进行报错。 注:只有root管理员才可以使用visudo命令编辑sudo服务的配置文件。 如:在第99行填信息 谁可以使用 允许使用的主机=(以谁的身份) 可执行命令的列表 visudo 96 ## 97 ## Allow root to run any commands anywhere 98 root ALL=(ALL) ALL 99 linuxprobe ALL=(ALL) ALL 然后切换到普通用户,就可以sudo -l查看所有可执行的命令。 在实际生产中不允许某个普通用户拥有整个系统的所有命令最高执行权,因此上面的ALL参数就有些不适合了。 注:让某用户使用root管理员身份执行指定的命令,一定要给出该命令的绝对路径。 可以用whereis查看命令的绝对路径,比如cat,whereis cat 可以把上面99行改成: 99 linuxprobe ALL=(ALL) /usr/bin/cat 保存后,su – linuxprobe cat /etc/shadow(结果是没有权限打开) sudo cat /etc/shadow (可以看到里面的内容了) 注:上面每次sudo都要验证下密码,可以添加NOPASSWD参数,使得用户执行sudo命令时不再需要密码验证。linuxprobe ALL=NOPASSWD : /usr/sbin/poweroff