我应该使用哪个命令从 Debian 的组中删除用户?
将用户添加到组时,可以通过以下方式完成:
usermod -a -G group user
Run Code Online (Sandbox Code Playgroud)
但是,我找不到用于从组中删除用户的类似命令(接受组和用户作为参数)。我能得到的最接近的是:
usermod -G all,existing,groups,except,for,group user
Run Code Online (Sandbox Code Playgroud)
是否有像usermod OPTION group userOPTION这样的命令可以使usermod(或类似程序)从组中删除用户?
我正在阅读的一些文档对用户是“系统”用户还是“普通”用户(默认为“普通”)有一个布尔开关。
这两种用户模式有什么区别?我不需要了解用户是什么或为什么需要他们(即使是“假”用户),但这种特殊的区别对我来说并不直观。
尝试system-config-users从命令行启动时,我收到以下警告,并且该工具未打开。我正在使用 CentOS 7 和 Mate 1.8.1。
警告**:枚举操作时出错:GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: 名称 org.freedesktop.PolicyKit1 未由任何 .service 文件提供
错误检查授权 org.freedesktop.policykit.exec: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: 名称 org.freedesktop.PolicyKit1 未由任何 .service 文件提供
yum 列表 polkit*
Installed Packages
polkit.x86_64 0.112-5.el7 @anaconda
polkit-devel.x86_64 0.112-5.el7 @base
polkit-docs.noarch 0.112-5.el7 @base
polkit-gnome.x86_64 0.105-6.el7 @epel
polkit-pkla-compat.x86_64 0.1-4.el7 @anaconda
Run Code Online (Sandbox Code Playgroud)
我的系统缺少什么导致此错误?
我正在寻找一种干净简单的方法来与同一台机器上的另一个用户共享 tmux 会话。我已经尝试过这个-S socket-path选项,但它需要在其他人可以连接到会话之前打开套接字路径的所有权限。它有效,但有点麻烦。例如:
# Me
$ tmux -S /tmp/pair
$ chmod 777 /tmp/pair
# Another user
$ tmux -S /tmp/pair attach
Run Code Online (Sandbox Code Playgroud)
这有效,但两个用户现在共享相同的 tmux 配置(发起会话的用户的配置)。有没有办法允许两个用户使用他们自己的 tmux 配置和他们自己的个人 tmux 键绑定?
对于奖励积分,理想情况下,将 tmux 会话的只读访问权限提供给其他用户也很好。
我最近一直在创建新用户并将他们分配给某些组。我想知道是否有一个命令可以显示分配给某个组的所有用户?我曾尝试使用“groups”命令,但是每当我使用它时,它都会显示“groups: not found”
假设我使用该adduser命令创建了一个名为“bogus”的用户。在不禁用帐户的情况下,如何确保该用户不是可行的登录选项。简而言之,我希望该帐户可通过 访问su - bogus,但我不希望它可通过常规登录提示访问。
四处搜索,似乎我需要禁用该用户的密码,但这样做passwd -d bogus并没有帮助。事实上,这让事情变得更糟,因为我现在甚至不用输入密码就可以登录到伪造的。
有没有办法禁用给定帐户的常规登录?
注意:为了清楚起见,我知道如何从图形登录屏幕(例如 gdm)的菜单选项中删除用户,但这些方法只是隐藏帐户,而实际上并未禁用登录。我正在寻找一种完全禁用常规登录的方法,包括文本模式。
有createuser&dropuser命令:
createuser - define a new PostgreSQL user account
dropuser - remove a PostgreSQL user account
Run Code Online (Sandbox Code Playgroud)
有没有相应的方法来列出用户帐户?
这两个命令不需要用户调用psql或了解使用它的细节。
该命令id可用于查找用户的uid,例如:
$ id -u ubuntu
1000
Run Code Online (Sandbox Code Playgroud)
是否有命令可以从 a 中查找用户名uid?我意识到这可以通过查看/etc/passwd文件来完成,但我问是否有一个现有的命令,特别是如果执行它的用户不是 root。
我不是在寻找当前用户的用户名,即我不是在寻找whoami或logname。
这也让我想知道在共享网络托管上这是否是一项安全功能,还是我只是没有正确理解某些内容?
为了检查,/etc/passwd来自共享网络主机的文件:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
news:x:9:13:news:/etc/news:
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
nscd:x:28:28:NSCD Daemon:/:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
pcap:x:77:77::/var/arpwatch:/sbin/nologin
rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin
mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin
smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin
oprofile:x:16:16:Special user account to be used by OProfile:/home/oprofile:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
avahi:x:70:70:Avahi daemon:/:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
xfs:x:43:43:X Font …Run Code Online (Sandbox Code Playgroud) 在我的/etc/passwd文件中,我可以看到www-dataApache 使用的用户,以及各种系统用户,都拥有/usr/sbin/nologin或/bin/false作为他们的登录 shell。例如,这里是选择的行:
Run Code Online (Sandbox Code Playgroud)daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin games:x:5:60:games:/usr/games:/usr/sbin/nologin www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin syslog:x:101:104::/home/syslog:/bin/false whoopsie:x:109:116::/nonexistent:/bin/false mark:x:1000:1000:mark,,,:/home/mark:/bin/bash
因此,如果我尝试切换到这些用户中的任何一个(有时我想这样做以检查我对他们权限的理解,并且可能还有其他至少一半合理的原因),我失败了:
mark@lunchbox:~$ sudo su www-data
This account is currently not available.
mark@lunchbox:~$ sudo su syslog
mark@lunchbox:~$
Run Code Online (Sandbox Code Playgroud)
当然,这并没有太大的不便,因为我仍然可以通过这样的方法为他们启动一个shell:
mark@lunchbox:~$ sudo -u www-data /bin/bash
www-data@lunchbox:~$ Run Code Online (Sandbox Code Playgroud)
但这只是让我想知道拒绝这些用户登录 shell 的目的是什么。环顾互联网寻求解释,许多人声称这与安全性有关,并且每个人似乎都同意更改这些用户的登录外壳在某种程度上是一个坏主意。以下是引用的集合:
将 Apache 用户的 shell 设置为非交互式通常是一种很好的安全实践(实际上,所有不必以交互方式登录的服务用户都应该将其 shell 设置为非交互式)。
-- https://serverfault.com/a/559315/147556
用户 www-data 的 shell 设置为 /usr/sbin/nologin,这是有充分理由的。
-- https://askubuntu.com/a/486661/119754
[系统帐户]可能是安全漏洞,特别是如果它们启用了 shell:
坏的
Run Code Online (Sandbox Code Playgroud)bin:x:1:1:bin:/bin:/bin/sh好的
Run Code Online (Sandbox Code Playgroud)bin:x:1:1:bin:/bin:/sbin/nologin
-- https://unix.stackexchange.com/a/78996/29001
出于安全原因,我创建了一个没有登录 shell …