我有幾個bash腳本正在以指定的時間添加到cron作業,但它需要以root用戶身份執行。我試圖運行這些腳本,即crob作業,但它需要root用戶權限,因爲我在root用戶受限的ubuntu ec2實例中運行此作業。以root用戶身份運行這些腳本的工作是什麼?如何以用戶身份運行cron作業而不是root用戶
感謝
我有幾個bash腳本正在以指定的時間添加到cron作業,但它需要以root用戶身份執行。我試圖運行這些腳本,即crob作業,但它需要root用戶權限,因爲我在root用戶受限的ubuntu ec2實例中運行此作業。以root用戶身份運行這些腳本的工作是什麼?如何以用戶身份運行cron作業而不是root用戶
感謝
有幾種可能性:
1)將腳本添加到root的crontab。要做到這一點,你需要做的sudo su -
或su -
成爲root,然後用crontab -e
2)允許非root用戶使用crontab中添加cron作業,而cron作業添加到用戶的crontab,由使用crontab -e
和設置你的腳本集的uid標誌並改變所有權爲root,所以它會執行爲根chmod +s scriptname; chown root scriptname
可以使腳本執行以root身份通過setuid flag,這使得運行作爲其所有者的腳本:
chmod +s yourscript
chown root yourscript
只是要yourscript
來看,你想以root身份運行任何命令。
請注意,使用此方法,任何用戶都可以運行該腳本。
出於安全原因,許多平臺都會忽略腳本文件中的'setuid'。 – tripleee
巴西爾對他的評論是正確的。如果您想在Ubuntu中運行root
,請使用sudo
。
如果你想擁有超級用戶權限,而無需再輸入密碼自動執行腳本(或者一些命令),運行
sudo visudo
編輯sudoers文件。爲了使sudo
停止要求特定腳本(或命令)密碼插入
username ALL = NOPASSWD: /path/to/script
其中username
是用戶調用須藤的名稱。
我不知道理解的問題。也許'super'或'sudo'命令可以幫助你? –
這屬於ServerFault,而不是StackOverflow。 – Amy
你已經足夠長時間知道這不屬於這裏。如果你想知道如何在不同的用戶帳戶下在cron上使用bash腳本,請嘗試[unix.se]。如果EC2在這方面發揮重要作用,請嘗試[sf]。 – Will