linux Centos 下非 root 用户执行shell的一些问题解决
1、在linux系统上只有root用户才可以访问1024以下的端口号,其余用户不能访问
今天在centos系统下,用非root用户启动 tomcat,默认端口是80,结果启动失败。
解决办法:
用sudo执行:
sudo ./startup.sh
结果报:
username is not in the sudoers file. This incident will be reported
需要设置 用户 可以用sudo执行命令
2、让用户能够以 sudo 执行命令
以 root 用户执行:
visudo
命令,编辑/etc/sudoers 文件。
在 root ALL=(ALL) ALL 下面添加一行
username ALL=(ALL) ALL
如果不想每次都输入密码可以用这一行
username ALL=(ALL) NOPASSWD:ALL
wq保存。
再次用 加入的用户执行以下命令:
sudo ./startup.sh
结果,每次都需要输入密码。
3、sudo执行脚本无需输入密码
执行:
visudo
编辑,将 #%wheel 前面的#去掉:
## Allows people in group wheel to run all commands %wheel ALL=(ALL) ALL ## Same thing without a password %wheel ALL=(ALL) NOPASSWD: ALL
wq保存。
将用户加入 wheel 组:
gpasswd -a YourUserName wheel
4、sudo执行脚本带不出环境变量
经过上面的设置,再次用该用户启动 tomcat,发现:
sudo ./startup.sh
找不到 JAVA_HOME 环境变量。
可以通过:
sudo -E ./startup.sh
执行解决。