Linux给普通⽤户添加sudo权限
⼀、linux给⽤户添加sudo权限:
有时候,linux下⾯运⾏sudo命令,会提⽰类似:
xxxis not in the sudoers file. This incident will be reported.
这⾥,xxx是⽤户名称,然后导致⽆法执⾏sudo命令,这时候,如下解决:
进⼊超级⽤户模式。也就是输⼊"su -",系统会让你输⼊超级⽤户密码,输⼊密码后就进⼊了超级⽤户模式。(当然,你也可以直接⽤root ⽤)
添加⽂件的写权限。也就是输⼊命令"chmod u+w /etc/sudoers"。
编辑/etc/sudoers⽂件。也就是输⼊命令"vim /etc/sudoers",进⼊编辑模式,到这⼀⾏:"root ALL=(ALL) ALL"在起下⾯添加"xxx ALL= (ALL) ALL"(这⾥的xxx是你的⽤户名),然后保存退出。
撤销⽂件的写权限。也就是输⼊命令"chmod u-w /etc/sudoers"。
然后就⾏了。
⼆、设置sudo为不需要密码
有时候我们只需要执⾏⼀条root权限的命令也要su到root,是不是有些不⽅便?这时可以⽤sudo代替。默认新建的⽤户不在sudo组,需要编辑/etc/sudoers⽂件将⽤户加⼊,该⽂件只能使⽤visudo命令,
1) ⾸先需要切换到root, su - (注意有- ,这和su是不同的,在⽤命令"su"的时候只是切换到root,但没有把root的环境变量传过去,还是当前⽤乎的环境变量,⽤"su -"命令将环境变量也⼀起带过去,就象和root登录⼀样)
2) 然后 visudo 或者 vi /etc/sudoers, visudo 这个和vi的⽤法⼀样,由于可能会有⼈不太熟悉vi,所以简要说⼀下步骤
移动光标,到⼀⾏root ALL=(ALL) ALL的下⼀⾏,按a,进⼊append模式,输⼊
your_user_name ALL=(ALL) ALL
然后按Esc,再输⼊:w保存⽂件,再:q退出
这样就把⾃⼰加⼊了sudo组,可以使⽤sudo命令了。
3) 默认5分钟后刚才输⼊的sodo密码过期,下次sudo需要重新输⼊密码,如果觉得在sudo的时候输⼊密码⿇烦,把刚才的输⼊换成如下内容即可:
your_user_name ALL=(ALL) NOPASSWD: ALL
⾄于安全问题,对于⼀般个⼈⽤户,我觉得这样也可以的。
4)如果你想设置只有某些命令可以sudo的话,your_user_name ALL= (root) NOPASSWD: /sbin/mount, (root) NOPASSWD: /bin/umount, (root) NOPASSWD: /mnt/mount, (root) NOPASSWD: /bin/rm, (root) NOPASSWD: /usr/bin/make, (root) NOPASSWD: /bin/ln, (root) NOPASSWD: /bin/sh, (root) NOPASSWD: /bin/mv, (root) NOPASSWD: /bin/chown, (root) NOPASSWD: /bin/chgrp, (root) NOPASSWD:
/bin/cp, (root) NOPASSWD: /bin/chmod
注意:有的时候你的将⽤户设了nopasswd,但是不起作⽤,原因是被后⾯的group的设置覆盖了,需要把group的设置也改为nopasswd。
group_name ALL=(ALL) NOPASSWD: ALL
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论