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:設置的話,將會提示輸入密碼,此密碼是普通用戶自己的密碼
