嘿,我login到我的SSH客户端作为root用户,因为我不知道如何做任何其他方式,然后为什么我试图运行这个脚本使用普通老
./filename.ext
生成一个错误日志,说它不能作为root用户运行。 我想知道如何才能做到这一点,因为它不是根用户运行? 我正在运行debian
谢谢 :)
sudo -u <another_user> /path/to/filename.ext
广义而言,您将需要创build一个非root用户,然后让他们运行该程序。
adduser fred mkdir /home/fred chown fred:users /home/fred passwd fred
一旦你完成了,你可以尝试用sudo来运行你的命令
sudo -u fred ./filename.ext
一般来说,最好是创build和使用非root帐户,然后使用sudo来运行需要root权限的命令。
第一:
特别是不在networking上。
以root身份login是一个糟糕的想法 – 有一天,你会犯一个正常的用户相当无伤大雅的错字,但可以作为根源灾难。
您应该为自己创build一个普通的非root用户,并以该用户身份login。 这个程序从分配到分配都是不同的。 这个用户也应该能够运行有问题的命令(因为它们不是root),这就解决了你的问题。
其次,和半相关:正如其他人所build议的,考虑用sudo来运行你需要以root身份运行的东西(几乎每个linux发行版都默认安装了它,或者你可以从你的软件包pipe理器中获取它)。 这需要一些configuration(您需要将用户添加到sudoers文件中,或者在某些Linux发行版上,只需将其添加到admin组即可)。
或者,您可以简单地使用su命令在需要时切换到根。 这缺乏sudo的灵活性,但不需要在Linux系统上进行configuration – 有关更多详细信息,请参见su的手册页 。
看看sudo 。
sudo将是我的build议,如果你是用户,需要以root身份运行脚本(sudo需要configuration,在使用之前)。
反之亦然,卑躬屈膝,将权限更改为普通用户:使用“su”。
su -c“./filename.ext”$ username
或者获得具有用户权限的loginshell:
su - $用户名
(将$用户名更改为所需的用户名)