如果我ps aux | grep su在切换用户几次后我目前有以下内容:
fmaster 24811 0.0 1.3 10652 7000 pts/3 S 23:11 0:00 -su
root 24932 0.0 0.2 5352 1464 pts/3 S 23:12 0:00 su - root
root 24941 0.0 0.8 7772 4256 pts/3 S 23:12 0:00 -su
fmaster 27148 0.0 0.2 5352 1436 pts/3 S 23:28 0:00 su - fmaster
fmaster 27155 0.0 1.3 10652 7044 pts/3 S 23:28 0:00 -su
root 27284 0.0 0.2 5352 1468 pts/3 S 23:29 0:00 su -
root 27293 …Run Code Online (Sandbox Code Playgroud) 我在通过 /etc/sudoers 文件将用户添加到 sudoers 列表时遇到问题。
$ whoami
iain
Run Code Online (Sandbox Code Playgroud)
然后他们说我疯了!
$ which visudo
/usr/sbin/visudo
$ ls -la /usr/sbin/visudo
---x--x--x 1 root wheel 186768 23 Jun 2009 /usr/sbin/visudo
$ sudo su -
Password:
macbook:~ root# whoami
root
macbook:~ root# visudo
Run Code Online (Sandbox Code Playgroud)
该文件在 vi 中打开:
# this line is the one I added to sudoers
# I gave ALL as access to try and get this to work
# it's the same setting as my account, which works.
%yvonne ALL=(ALL) ALL
Run Code Online (Sandbox Code Playgroud)
我保存文件。它在这里显示“未更改”,因为我已经完成了。
visudo: /etc/sudoers.tmp …Run Code Online (Sandbox Code Playgroud) 我不小心将 /etc/ 的权限设置为 400 sudo chmod 400 /etc/。现在我无法再撤消它,因为当我 sudo 时,它说unknown UID 1000 - who are you?,大概是因为 sudo 无法再访问该目录。有没有办法撤销这个?
如何从 Ubuntu 的 cmd 以 root 权限运行 .sh 脚本?有些脚本需要输入密码。我想避免这种情况。
在大多数用户都sudo可以访问其他用户 ID的 UNIX 环境中,如何保护我的密码列表(例如在不同的数据库中)?
我的脚本 ( main.sh) 中有以下内容$HOME:
$ cat main.sh
mysql --skip-column-names -hmysql_host -umy_user -pmy_password -ADmysql_db << EOF >> /home/my_user/mysql.log
select current_date;
EOF
Run Code Online (Sandbox Code Playgroud)
当另一个用户 ( another_user) 尝试sudo su - my_user,他/她就能看到我的 MySQL 数据库密码。
即使我输入密码.bashrc并通过脚本中的某个变量访问它,他/她也将能够在.bashrc文件中看到我的密码。
如何保护我的 MySQL 密码免受该用户的侵害another_user?
我想正确设置我的 SSH 连接。正如很多教程告诉我的那样,不建议使用 Ubuntu 服务器的 root 帐户。所以我宁愿使用我的标准帐户“西蒙”来上传文件和传输终端命令。
当我运行“sudo su”时,系统会提示我为我的用户帐户 Simon 输入标准密码以获得 root 权限。我很确定,我应该被要求输入 root 密码,不是吗?我怎样才能解决这个问题?
我正在尝试启用无密码 sudo 以在 RHEL 机器上更新 yum。我在 sudo visudo 中有以下行。
myuser ALL=(ALL) NOPASSWD: /usr/bin/yum update
Run Code Online (Sandbox Code Playgroud)
在 myuser 下执行此操作后,如果不提供我的 sudo 密码,我仍然无法更新 yum。
/usr/bin/env sudo yum -y updatesudo yum -y update我需要这样做的原因是因为在 Capistrano 3 中它说这是最好的方法。它似乎不再允许 sudo 提示。
如果您考虑一下,即使您刚刚登录机器并输入密码,sudo 也会询问您的密码,这有点愚蠢。
我意识到 sudo 和 /bin/login 是两种完全不同的机制,但是如果您的登录会话少于 30 秒,如果 sudo 不要求输入密码,那就太好了。
默认情况下,sudo 每 5 分钟不会要求输入密码超过一次。类似于将屏幕保护程序设置为在 5 分钟不活动后启动,这是 sudo 的合理默认设置。
有没有办法伪造 sudo 以便它认为我登录时超时尚未到期?
我想使用/etc/sudoers.d.
所以我做了以下事情:
visudo -f /etc/sudoers.d/99-php
Run Code Online (Sandbox Code Playgroud)
并输入此 sudo 规则:
www-data ALL = (root) NOPASSWD: /etc/my_script.sh
Run Code Online (Sandbox Code Playgroud)
在/etc/my_script.sh脚本中,我在/tmp再次删除它们之前创建了一个文件夹和几个文件。
去测试:
su www-data
/etc/my_script.sh
Run Code Online (Sandbox Code Playgroud)
这给了我很多这样的权限错误:
rm: cannot remove «/tmp/my_file.txt»: Access denied
Run Code Online (Sandbox Code Playgroud)
暗示我的脚本实际上根本没有以 root 身份运行。
那么我该怎么做才能让它发挥作用?