在Linux系统上操作的时候,如果某些命令需要root权限才能执行,我们需要切换到root用户,这时我们有两种方法。
第一种: 直接切换到root用户,执行该命令。该命令不仅把用户身份切换为root,也把工作环境切换到了root。su - 与 su - root是同样的功能
[[email protected]129-232 ~]$ su - Password: Last login: Tue Jun 2 16:33:46 CST 2015 on pts/0 [[email protected]-129-232 ~]# whoami root[[email protected] ~]# pwd/root
第二种: 使用sudo。通过su - / su - root切换到root用户和环境后,可以进行任何操作,而通过sudo可以把某些超级用户root拥有的权限有限制的开放,也就是说sudo是有限制的su。sudo不要求用户知道root的密码,但需要授权许可。
sudo命令执行的流程是从当前用户切换到root用户,以root用户执行指定命令后,退回到切换前的用户。
[[email protected]129-232 ~]$ sudo docker images [sudo] password for yapei: yapei is not in the sudoers file. This incident will be reported.
sudo命令执行没有成功,表示该用户不能执行sudo命令,那么如何给某个指定用户授权?
su - / su - root切换到root用户后,vi /etc/sudoers文件,在该文件中加入一行 yapei ALL=(ALL) ALL后,退出root用户
[[email protected]129-232 ~]# cat /etc/sudoers | grep yapei yapei ALL=(ALL) ALL
再重新执行sudo命令,发现sudo命令执行成功,跟切换到root再执行命令的结果是一样的。
[[email protected]129-232 ~]$ sudo docker images [sudo] password for yapei: sudo: docker: command not found[[email protected] ~]$ whoamiyapei
这是切换到root执行命令的结果
[[email protected] ~]# whoamiroot[[email protected]129-232 ~]# docker images bash: docker: command not found...
时间: 2024-10-01 22:55:47