linux给用户添加sudo权限:

有时候,linux下面运行sudo命令,会提示类似:

xxx is not in the sudoers file.  This incident willbe reported.(xxx 不在 sudoers 文件中。此事将被报告。)

这里,xxx是用户名称,然后导致无法执行sudo命令。

这时候,如下解决

进入超级用户模式。也就是输入"su - root",系统会让你输入超级用户密码,输入密码后就进入了超级用户模式。(当然,你也可以直接用root用户)


root用户下,给sudoers文件添加写权限,输入以下命令:

sudoers文件是只读权限
# ll /etc/sudoers
-r--r-----. 1 root root 3938 6月   7 2017 /etc/sudoers

授予属主写权限
#  chmod u+w /etc/sudoers
# ll /etc/sudoers
-rw-r-----. 1 root root 3938 6月   7 2017 /etc/sudoers


编辑/etc/sudoers文件:

vim /etc/sudoers",进入编辑模式
找到这一 行:"root ALL=(ALL) ALL"在起下面添加"xxx ALL=(ALL) ALL"(这里的xxx是你的用户名),然后保存退出。


在普通用户下查看/root目录下有哪些文件?
默认情况下普通用户是不能查看/root目录的
[test@SD ~]$ ls /root/
ls: 无法打开目录/root/: 权限不够


授予普通用户的sudo权限后,用sudo命令即可查看了:
[test@SD ~]$ sudo ls /root/    #用sudo执行查看命令
[sudo] test 的密码:             #输入普通用户的密码
nginx-1.12.2  #输入密码后,即可显示root目录下有哪些文件


最后撤销文件的写权限,输入命令:

chmod u-w /etc/sudoers

就行了。


tomcat项目就是用的root用户去管理配置并启动,现需要给其它人员一个普通用户登录到服务器,但这个普通用户需要去启停tomcat项目,因权限又是root用户,所以采用sudo命令来启停tomcat服务

#普通用户登录查看tomcat进程

[test@SD ~]$ ps -ef |grep java
root      4639     1  6 11:13 ?        00:00:23 /usr/java/jdk1.6.0_45/bin/java -Djava.util.logging.config.file=/opt/
tomcat-6.0-ws-8080/conf/logging.properties -Djav.util.logging.manager=org.apache.juli.ClassLoaderLogManager 
-Djdk.tls.ephemeralDHKeySize=2048 -Djava.endorsed.dirs=/opt/tomcat-6.0-6080/endorsed -classpath 
/opt/tomcat-6.0-ws-6080/bin/bootstrap.jar -Dcatalina.base=/opt/tomcat-6.0-8080 -Dcatalina.home=/opt/tomcat-6.0-ws-8080 
-Djava.io.tmpdir=/web/test-server/tomcat-6.0ws-8080/temp org.apache.catalina.startup.Bootstrap start
test     5193  5168  0 11:18 pts/1    00:00:00 grep --color=auto java

#切换到bin目录下
[test@SD ~]$ cd /opt/tomcat-6.0-ws-8080/bin

#sudo命令停止tomcat项目
[test@SD bin]$ sudo ./shutdown.sh 
[sudo] test 的密码:
Using CATALINA_BASE:   /opt/tomcat-6.0-ws-8080
Using CATALINA_HOME:   /opt/tomcat-6.0-ws-8080
Using CATALINA_TMPDIR: /opt/tomcat-6.0-ws-8080/temp
Using JRE_HOME:        /usr/java/jdk1.6.0_45
Using CLASSPATH:       /opt/tomcat-6.0-ws-8080/bin/bootstrap.jar

#停掉tomcat后,清除work缓存
[test@SD bin]$ sudo rm -rf ../work/

#sudo启动tomcat项目
[test@SD bin]$ sudo ./startup.sh 
Using CATALINA_BASE:   /opt/tomcat-6.0-ws-8080
Using CATALINA_HOME:   /opt/tomcat-6.0-ws-8080
Using CATALINA_TMPDIR: /opt/tomcat-6.0-ws-8080
Using JRE_HOME:        /usr/java/jdk1.6.0_45
Using CLASSPATH:       /opt/tomcat-6.0-ws-8080

#在次查看tomcat进程
[test@SD bin]$ ps -ef |grep java
root      5594     1 99 11:25 pts/1    00:00:14 /usr/java/jdk1.6.0_45/bin/java -Djava.util.logging.config.file=/opt/
tomcat-6.0-ws-8080/conf/logging.properties -Djav.util.logging.manager=org.apache.juli.ClassLoaderLogManager 
-Djdk.tls.ephemeralDHKeySize=2048 -Djava.endorsed.dirs=/opt/tomcat-6.0-ws-8080/endorsed -classpath /opt/tomcat-6.0-ws-8080
/bin/bootstrap.jar -Dcatalina.base=/opt/tomcat-6.0-ws-8080 -Dcatalina.home=/opt/tomcat-6.0-ws-8080 -Djava.io.tmpdir=/opt/
tomcat-6.0-ws-8080/temp org.apache.catalina.startup.Bootstrap start
test     5624  5168  0 11:25 pts/1    00:00:00 grep --color=auto java