Questions tagged «su»

替代用户命令


7
以没有nologin shell的用户身份运行脚本
我所需要做的就是以具有nologin/false指示的shell 的特定用户身份运行特定脚本/etc/passwd。 我将以root用户身份运行脚本,并且应该以其他用户身份运行。运行: ~# su -c "/bin/touch /tmp/test" testuser 可以,但是我需要测试用户的有效外壳。我知道我可以使用禁用密码passwd -d testuser并保留外壳,/bin/bash这样可以确保一点安全,但是我需要nologin/false外壳。 基本上,我需要的是crontab将作业设置为以特定用户身份运行时的操作,无论该用户是否具有nologin/false外壳。 ps我发现了该线程以nologin用户身份执行命令,但是我不知道concatenate该命令如何执行su -s /bin/sh $user我需要运行的脚本。
87 linux  bash  shell  su  login 

2
以nologin用户身份执行命令
我最近设置了服务器,以使我的suPHP“虚拟”用户无法通过使用本文登录 现在的问题是,当我rake为在服务器上运行的Ruby on Rails应用程序运行命令之前,我曾经从那里su进入www-data并执行命令-显然,由于没有登录,我再也不能这样做了。 因此,作为root用户,即使他们没有登录,我如何也可以像其他用户一样执行命令?

2
为什么将“脚本”重定向到/ dev / null /允许“屏幕”在被另一个用户使用时工作?
我被吸引到一个用户中以运行特定的长时间运行的脚本。我想使用屏幕,但收到错误消息“无法打开终端'/ dev / pts / 4'-请检查。” 因此,我在Google上四处搜寻,并遇到了一条指示运行的论坛帖子$ script '/dev/null/'。我这样做了,然后我可以进行筛选。 为什么这样做?su在该屏幕上无法作为被su用户运行吗?为什么将'script'重定向到/ dev / null可以避免这种情况呢?是否使用脚本以原始用户身份将日志写入某处?
36 linux  bash  gnu-screen  su 

1
sudo su-postgres和sudo -u postgres有什么区别?
缺省情况下,PostgreSQL用户在unix套接字上对等身份验证,其中unix用户必须与PostgreSQL用户相同。因此人们经常使用su或sudo成为postgres超级用户。 我经常看到人们使用如下构造: sudo su - postgres 而不是 sudo -u postgres -i 我想知道为什么。同样,我已经看到: sudo su - postgres -c psql 代替 sudo -u postgres psql 如果您使用的是没有的旧平台,那么如果没有领先版本,sudo这些su版本将具有一定的意义sudo。但是,为什么您要在不到先行的UNIX或Linux上使用sudo su呢?
35 postgresql  shell  sudo  su 

2
以Linux“系统”用户身份运行命令(shell = / bin / false)
我在Ubuntu 11.04(adduser --system)中创建了一个“系统”用户来运行某些cron作业,但有时我想通过以该用户手动运行命令的方式来进行测试。最简单的方法是什么? su不起作用,因为用户/bin/false将其作为外壳程序(对于cron来说很好)。我一直在手动更改外壳以/bin/bash进行测试,然后再次将其重新更改,但我想知道还有没有更简单的方法?
29 linux  ubuntu  shell  cron  su 

4
BASH脚本,用于单个命令的su到www-data
正如我写的这篇博客文章所述,我正在致力于自动创建Subversion存储库和相关网站。我遇到了一些问题,我需要向www-data用户运行以下命令: svnadmin create /svn/repository 脚本开头会进行检查,以确保脚本以root或sudo的身份运行,并且此命令之后的所有内容都需要以root身份运行。有什么好方法可以将一个命令作为www-data运行,然后切换回root来完成?
26 ubuntu  bash  svn  su 

2
在su期间将“无法设置终端进程组”作为另一个登录用户
注意:请阅读本文中途附近的以“ EDIT”开头的更新信息-此问题的环境和背景已更改 我在这里安装了标准的Debian 6.0沼泽,我决定将其降级到Debian Testing信息库。我这样做是通过在我的sources.list中换掉对Squeeze仓库的引用来代替使用Testing仓库。 软件包安装并重新启动后,尝试向其他用户输入su时出现以下错误: root@skaia:~# su joebloggs - bash: cannot set terminal process group (-1): Inappropriate ioctl for device bash: no job control in this shell 如果我省略-,则不会发生。 请注意,用户可以正确地成为root用户,这似乎仅在从root用户切换到其他人并使用-获得该用户的环境时才会发生。 Google在这里几乎没有用。我唯一能找到的是2011年关于sux软件包的,该文献似乎在此期间已得到修复。 这看起来和闻起来很像是升级错误,可以通过以正确的方式调整正确的软件包来修复。我只是不知道从哪里开始-除此之外,我的系统完全可以正常运行,并且符合预期。 编辑 我现在在Debian马stable上发生这种情况如上所述机。这次无需升级或执行任何操作,只需稳定即可。 是的,一年后。仍然不知道问题到底在哪里。 现在是这样(没有太大变化): bash: cannot set terminal process group (-1): Inappropriate ioctl for device bash: no job …


3
“ sudo su-”被认为是不良做法吗?
背景 我知道其中的差别之间su -,sudo su -以及sudo <command>: su - -将用户切换为root,需要root密码 sudo su - -将用户切换为root,仅需要当前用户的密码 sudo <command>-仅授予针对特定命令的root访问权限;只需要当前用户的密码 我的问题是sudo su -在生产环境中使用是否安全。 一些想法: 通过允许sudo su -根目录帐户访问取决于单个用户密码,似乎允许存在安全风险。当然,可以通过执行严格的密码策略来缓解这种情况。我认为su -没有什么比这更好的了,因为它需要管理员共享实际的root密码。 允许用户完全切换到root帐户使跟踪谁对系统进行更改变得更加困难。我在日常工作中看到了多个用户被授予sudo su -访问权限的情况。sudo su -在开始工作之前,用户在登录系统时要做的第一件事就是运行。然后,有一天发生了什么事,无法追溯谁rm -rf *在错误的目录中运行。 问题 考虑到上述问题,允许用户使用sudo su -甚至su -根本禁止使用是个好主意吗? 是否有一个管理员将配置用户帐户以任何理由sudo su -或su -代替sudo <command>(除了懒惰)? 注意:当root用户禁用直接ssh访问时,我忽略了用户正在运行sudo su -或su -管理员需要进行系统更改的情况。
13 linux  unix  sudo  su 

8
在shell脚本中使用su
我正在自动化一个部署过程,我希望能够仅在计算机上调用一个.sh文件,让它进行构建并将.zip上载到服务器,然后在服务器上做很多工作。我需要做的一件事就是要求我扎根。所以,我要做的是: ssh user@172.1.1.101 <<END_SCRIPT su - #password... somehow... #stop jboss service server_instance stop #a bunch of stuff here #all done! exit END_SCRIPT 这有可能吗?
12 ssh  bash  sudo  su 

4
使用特权Docker容器进行内核调整
我正在建立一个容器来调整负载均衡器的内核设置。我宁愿使用单个特权容器将这些更改部署到映像中的主机。例如: docker run --rm --privileged ubuntu:latest sysctl -w net.core.somaxconn=65535 在测试中,更改仅对那个容器生效。我的印象是,使用具有完全特权的容器时,对/ proc的更改实际上会更改底层的OS。 $docker run --rm --privileged ubuntu:latest \ sysctl -w net.core.somaxconn=65535 net.core.somaxconn = 65535 $ docker run --rm --privileged ubuntu:latest \ /bin/bash -c "sysctl -a | grep somaxconn" net.core.somaxconn = 128 这是特权容器应该如何工作的吗? 我只是在做傻事吗? 进行持久更改的最佳方法是什么? 版本信息: Client version: 1.4.1 Client API version: …
10 linux  docker  su  sysctl 

2
通过ssh执行su -c
我正在尝试通过SSH检查服务器的BIOS版本,该命令需要root特权: ssh remote-server su -c dmidecode 但这当然会失败,并显示以下错误: 中的标准必须是tty 我该如何工作?我无法使用sudo,并且当我尝试以root @ remote-server身份登录时,它将不接受用于'su'命令的密码。我正在使用RedHat Enterprise Linux 4。
10 ssh  unix  su 

2
在服务器管理中应该使用sudo还是su root?
哪种方法更好? 对于桌面使用,似乎sudo更好,因为: 作为普通用户,我可以拥有更一致的历史记录 不需要记住两个密码,当我不定期执行管理工作时,尤其如此。 无需在安装时创建其他根帐户。 但是关于服务器管理? 在服务器中,通常您已经创建了一个根帐户,并且您可能经常会做一些管理工作。因此sudo的优点似乎不再成立。 而且,在大多数发行版中,在命令行上配置su很容易,只需将用户添加到wheel组即可。(您甚至可以-G wheel在useradding 时通过。)因此,可以很容易地将su的配置自动化到shell脚本中。 但是对于须藤?您需要先添加用户,然后才能visudo交互运行。这很糟糕,因为您无法将其自动化为shell脚本。 (嗯,可以。例如, echo '%wheel ALL=(ALL) ALL' >> /tmp/sudoers.tmp cp /etc/sudoers /etc/sudoers.old visudo -c -f /tmp/sudoers.tmp && mv /tmp/sudoers.tmp /etc/sudoers 但这至少不是那么容易。 那您有什么意见呢?对于服务器环境,您希望使用sudo还是su root?
8 unix  sudo  root  su 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.