use*_*629 3 linux permissions sudo files
是否可以将粘性位分配给 sudo 以便以普通用户身份执行任何命令?
假设我们有用户测试,然后:
test@test$ apt-get update
Run Code Online (Sandbox Code Playgroud)
但我不想使用 sudo 也不想修改 sudoers 文件,这可能只使用粘性位吗?
Arc*_*mar 12
简短回答:你不能在没有任何一个的情况下执行任意管理命令
龙答:你必须拥有NOPASSWD
的/etc/sudoers
,或以root身份登录。请参阅https://askubuntu.com/questions/147241/execute-sudo-without-password。
visudo
Run Code Online (Sandbox Code Playgroud)
然后添加一行
username ALL=(ALL) NOPASSWD: ALL
Run Code Online (Sandbox Code Playgroud)
根据要求,如果您想以 root 身份运行特定的二进制文件,您可以使用
chown root:wheel /usr/binary
chmod u+s /usr/binary
Run Code Online (Sandbox Code Playgroud)
但是,如果您想在没有 sudo 的情况下以 root 身份运行的程序是 shell(或 python、awk、perl),则不能。
当心陷阱,在我的主要 ubuntu 上/usr/bin/shutdown
有一个指向/sbin/systemctl
.
在应用上面的 chmod/chown 之前,我需要将后者复制到前者。
Nag*_*shi 10
如果您的帐户有sudo
权限,那么就没有必要弄乱粘滞位。以下假设 Bash 作为您的交互式 shell,因此您可能需要根据您使用的内容修改步骤 2 和 3。
USERNAME HOST_NAME = (root) NOPASSWD: /usr/bin/apt-get
USERNAME HOST_NAME = (root) NOPASSWD: /usr/bin/shutdown
Run Code Online (Sandbox Code Playgroud)
alias shutdown='sudo shutdown'
alias apt-get='sudo apt-get'
Run Code Online (Sandbox Code Playgroud)
$ source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
$ apt-get update
$ apt-get upgrade
$ shutdown -h now
Run Code Online (Sandbox Code Playgroud)