linux指定nologin用户执行命令
1.为了安全,使用nologin账号来运行程序,
su -s /bin/bash -c "ls" www
这条命令到底做了什么呢?su -s 是指定shell,这里www用户是nologin用户,是没有默认的shell的,这里指定使用/bin/bash, -c 后面接需要运行的命令, 后面www是用www用户来运行
方法2:
sudo -u www command 这样也可以使用www用户来执行命令
crontab 使用其他用户做计划任务
如果是crontab -u -e
sudo su - www crontab -e
或者crontab -u www -e
或者直接编辑/etc/crontab文件
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
linux 普通用户设置某个命令执行权限:
1rpm -qa|grep –i sudo查看是否安装sudo包
2 vi /etc/sudoers添加下面一行配置
test QD-254.45=(ALL)NOPASSWD: /sbin/iptables,/sbin/ethtool
test普通用户名
QD-254.45代表主机名;ALL代表所有主机,否则以hostname命名仅指在本机上具有该sudo权限
(ALL)指该普通用户可以以所有用户的权限来执行命令,可以填其他用户
NOPASSWD: 使sudo执行命令时不再需要密码
/sbin/iptables 具体命令,多个以逗号间隔
使用:
切到普通用户下su – mike
sudo /sbin/iptables –nvL即可执行
此时如果没有NOPASSWD:设置的话,将会提示输入密码,此密码是普通用户自己的密码