我刚买了一台新的 MacBookPro。出于安全考虑,我创建了一个管理员用户 auser 和一个标准用户 suser。我将使用 auser 进行所有应用程序安装,并使用 suer 进行正常使用。
我确实需要在根目录中做一些工作,例如从终端在我的 HD 中创建一个新文件夹。与 suser 帐户一样,我尝试了以下操作:
$ sudo mkdir /MyApps
我尝试输入 auser 和 suser 的密码,但似乎都不起作用。我不确定标准用户登录时 supper user 指的是什么。是 root 用户吗?或者标准用户可以运行 sudo 命令吗?
答案1
除非你做了一些特殊准备,否则没有办法将自己从标准用户直接提升为 root 用户:按照@Daniel Beck 的建议编辑 /etc/sudoers,创建一个 suid shell(不是推荐),等等。但是,有一种方法可以分两步完成:使用 su 切换到管理员帐户,然后使用 sudo 切换到 root 帐户:
su auser -c "sudo somecommand"
这将要求输入两次密码(除非您在过去 5 分钟内使用过密码,那么它只会询问一次);两次都需要 auser 密码(su 总是要求输入您要切换到的帐户的密码,而 sudo 要求输入您要从其切换的帐户)。顺便说一句,如果您从 auser 没有读取权限的目录运行此命令,您将收到一条错误消息(“shell-init:检索当前目录时出错:getcwd:无法访问父目录:权限被拒绝”),但它仍然可以工作。
答案2
您需要sudo visudo
从您的管理员帐户运行并为您的常规用户帐户添加一个条目以允许执行sudo
。
man sudoers
并man visudo
会告诉你具体怎么做。简而言之:
添加如下行以允许普通用户使用简称简称执行所有操作:
shortname ALL=(ALL) ALL
您可以通过将最后一个命令替换为ALL
允许运行的程序名称来将其限制为特定命令,例如/bin/mkdir
。