我想知道运行$userA: command line
和$userB: sudo -u userA command line
在 linux 终端中的区别。
是否有任何特定的事情导致文件被创建。与创建 deb 文件一样,运行 dpkg-buildpackage 时不应使用 sudo 权限。
您需要记住的是,当运行命令时,有两件事会起作用:
当您以特定用户身份登录时,您会更改这两个方面,但是当您使用时,sudo -u
您只需更改第一个方面。
考虑这一点,假设全新安装:
(以用户A身份运行):
vim /home/userA/test
(现在作为用户B):
sudo -u userA vim /home/userA/test
这两个命令都可以完美运行,直到很久以后您才可能注意到错误。因为在这两种情况下都vim
需要为其配置文件创建一个目录。它以userA 的权限运行,因此它将成为目录的所有者,但在第一种情况下,目录将在正确的位置创建:/home/userA/.vim
,但在后一种情况下会出现问题,环境仍然指向userB 的主目录,因此/home/userB/.vim
使用错误的权限创建。
如果您尝试启动一些其他应用程序,例如文件管理器(创建缩略图、日志等),您将到处都有许多文件,这些文件的所有者和权限都错误。
您可以注意到pwd
显示您的主目录并在您的计算机上尝试以下操作:
作为用户A:
pwd
sudo -u userB pwd
两者都应该给你/home/userA/
,即使第二个以 userB 身份运行
但是,以 userB 身份登录,然后:
pwd
你现在会看到 /home/userB/
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句